[Refactor/#22] Excel 서버 Csv Parser Schedular 컴포넌트 구현
📋 구현 내용
엑셀 서버에서 매일 같은 시각에 업데이트 된 csv 파일을 읽어, 데이터 베이스에 삽입하는 컴포넌트 구현
-
Csv Parsing Schedular Component
구현 -
Jdbc repository
delete
수행 메서드 추가 - 작업 완료 및 예외 처리 관련 로깅 구현
🎬 업데이트 프로세스
- 작업 추가 프로세스
- 매일 00시 00분 00초에 스케쥴링 된 업데이트 작업이 수행됨
-
/data
내 파일들을 검사하여 24시간 내 업데이트 된 파일 색출 - 해당 파일들을 작업 목록에 추가함(UPDATE_JOB 테이블에 저장)
- 작업 수행 프로세스
- 매 시 15분, 45분에 수행해야 할 작업 테이블에서 작업을 가져옴
- 작업 별로 대상 파일들을 백업 저장소에 복사하고, 복사한 파일을 읽어들이며 DB에 반영함
- 수행이 완료되면(예외 시에도) 해당 작업을 작업 목록에서 삭제함
백업 저장소 형식 =
"{year}/{month}/{day}/{origin_file_name}
날짜는 업데이트를 수행한 날짜
ex) 2023년 2월 28일에 202212.csv 파일을 업데이트에 사용하였음 -> 2023/02/28/202212.csv
로 백업됨****
🔍 테스트 케이스
- 다량의 데이터 삭제 + 삽입 과정에서 인덱스 삭제 및 재생성 효율을 측정하였음
- 기존 1296만건 데이터에 128만건의 새로운 데이터를 삭제 및 삽입 할 경우
- 인덱스 유지: 953seconds
- 인덱스 삭제 -> 데이터 삽입 -> 인덱스 생성: 92seconds(데이터 삽입) + 925seconds(인덱스 생성) = 1017seconds
📢 코멘트
- 따라서 인덱스를 삭제 후 재생성 하는 로직은 추가하지 않았음
Edited by 안태욱