Skip to content

[Refactor/#22] Excel 서버 Csv Parser Schedular 컴포넌트 구현

안태욱 requested to merge feat/#22 into dev

📋 구현 내용

엑셀 서버에서 매일 같은 시각에 업데이트 된 csv 파일을 읽어, 데이터 베이스에 삽입하는 컴포넌트 구현

  • Csv Parsing Schedular Component 구현
  • Jdbc repository delete 수행 메서드 추가
  • 작업 완료 및 예외 처리 관련 로깅 구현

🎬 업데이트 프로세스

  • 작업 추가 프로세스
  1. 매일 00시 00분 00초에 스케쥴링 된 업데이트 작업이 수행됨
  2. /data 내 파일들을 검사하여 24시간 내 업데이트 된 파일 색출
  3. 해당 파일들을 작업 목록에 추가함(UPDATE_JOB 테이블에 저장)

  • 작업 수행 프로세스
  1. 매 시 15분, 45분에 수행해야 할 작업 테이블에서 작업을 가져옴
  2. 작업 별로 대상 파일들을 백업 저장소에 복사하고, 복사한 파일을 읽어들이며 DB에 반영
  3. 수행이 완료되면(예외 시에도) 해당 작업을 작업 목록에서 삭제함

백업 저장소 형식 = "{year}/{month}/{day}/{origin_file_name} 날짜는 업데이트를 수행한 날짜

ex) 2023년 2월 28일에 202212.csv 파일을 업데이트에 사용하였음 -> 2023/02/28/202212.csv로 백업됨****

🔍 테스트 케이스

  • 다량의 데이터 삭제 + 삽입 과정에서 인덱스 삭제 및 재생성 효율을 측정하였음
  • 기존 1296만건 데이터에 128만건의 새로운 데이터를 삭제 및 삽입 할 경우
    • 인덱스 유지: 953seconds
    • 인덱스 삭제 -> 데이터 삽입 -> 인덱스 생성: 92seconds(데이터 삽입) + 925seconds(인덱스 생성) = 1017seconds

📢 코멘트

  • 따라서 인덱스를 삭제 후 재생성 하는 로직은 추가하지 않았음

@woody @Aiden @Tobi

Edited by 안태욱

Merge request reports