1. 데이터 경로

    1)C:\Users\user\Desktop\RAW_LOG\TC6\yyyymmdd

    2)C:\Users\user\Desktop\RAW_LOG\TC7\yyyymmdd

    3)C:\Users\user\Desktop\RAW_LOG\TC8\yyyymmdd

    4)C:\Users\user\Desktop\RAW_LOG\TC9\yyyymmdd

    → yyyymmdd는 년도월일을 뜻함

    → 제한 날짜 : 20251001 ~ 20251220 로 제한

    → TC6은 FCT1, TC7은 FCT2, TC8은 FCT3, TC9는 FCT4로 변환되어 그 안에 있는 파일들은

    컬럼 station의 속성값으로 삽입

    → 해당 경로 안에 BadFile, GoodFile이 있고 그 안에 모든 txt 파일이 타겟 데이터화 파일

    예시) C:\Users\user\Desktop\RAW_LOG\TC6\20251001\GoodFile

    C:\Users\user\Desktop\RAW_LOG\TC6\20251001\BadFile

    C:\Users\user\Desktop\RAW_LOG\TC7\20251002\BadFile

    C:\Users\user\Desktop\RAW_LOG\TC7\20251002\GoodFile

  2. 파일명 ‘_’가 시작되기 전까지의 데이터를 컬럼 barcode_information의 속성값으로 삽입할 것

    예시) BA1WJ25273503681SJ8T-14F014-AE_20251001014641_FCT_P → BA1WJ25273503681SJ8T-14F014-AE

    → 파일명 첫번째 ‘’와 두번째 ‘’는 yyyymmddhhmiss를 의미, yyyymmdd는 컬럼 end_day의 속성값으로, hhmiss는 컬럼 end_time의 속성값으로 삽입

    예시) BA1WJ25273503681SJ8T-14F014-AE_20251001014641_FCT_P → 20251001014614

    → 파일명의 18번째 자리가 ‘J 또는 S’일 경우 ‘PD’로 분류, 18번째 자리가 ‘J 또는 S’가 아닐 경우 ‘Non-PD’로 분류하여 새로운 컬럼 remark의 속성값으로 넣을 것

    예시) BA1WJ25274500738USJ8T-14F014-AE > 18번째 자리 ‘S’ → ‘PD’로 속성값 기입

  3. 파일 내용 14줄에 숫자 데이터는 TEXT 형태로 만들어 컬럼 run_time의 속성값으로 저장

    → 예시) Run Time :27.0 → run_time : 27.0

    컬럼 step_description, value, min, max, result를 만들어 파일 내용 19번째 줄부터 대입할 것

    예시) 1.01 Test Input Voltage(V) , 14.67, 14.60, 14.80, [PASS]

    step_description : 1.01 Test Input Voltage(V) (41자리 까지 읽을것)

    value : 14.67, min : 14.60, max : 14.80

    result : PASS (’[]’제외할 것)

  4. 아래과 같이 dataframe이 아래의 경로로 저장될 것

    DB 접속 경로

    DB_CONFIG = { "host": "localhost", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}

    스키마 : a2_fct_table, 테이블 : fct_table

    컬럼 [barcode_information, remark, station, end_day, end_time, run_time, step_description, value, min, max, result, file_path]

  5. 파싱 시 절차 및 정보, 시작시간 종료시간이 기입될 것

    멀티프로세스 : 최대

    “청크 단위 즉시 INSERT (예: 200,000 rows마다 flush)” 방식으로 바꾼 “대용량 안정 버전”도 같은 사양