데이터 경로
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
파일명 ‘_’가 시작되기 전까지의 데이터를 컬럼 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’로 속성값 기입
파일 내용 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 (’[]’제외할 것)
아래과 같이 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]
파싱 시 절차 및 정보, 시작시간 종료시간이 기입될 것
멀티프로세스 : 최대
“청크 단위 즉시 INSERT (예: 200,000 rows마다 flush)” 방식으로 바꾼 “대용량 안정 버전”도 같은 사양
임시용 스크립트 DB 경로
DB_CONFIG = { "host": "192.168.108.162", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
factory 용 스크립트 DB 경로
DB_CONFIG = { "host": "192.168.108.162", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
[멀티프로세스] : 2개
[무한 루프 기능 ]: 1초마다 재실행
[윈도우] 제한 날짜 제외 후 유효 날짜 범위: 컬럼 end_day의 속성값이 현재 날짜 기준만 해당할 것
[실시간] 현재 시간 기준으로 60초 이내 새롭게 추가된 파일만 파싱
파일이 아직 저장 중일 때(미완성) 파싱 방지” 로직