왜 Airflow를 시작하게 되었는가 ? (작성 중)

박성현·2024년 5월 26일
0

Airflow

목록 보기
1/28

목표 :

  1. 작업 단위를 세분화하여 운영/유지보수를 편리하게 하기 위함
  2. 선/후 작업 간 다양한 조건을 활용하여 워크플로우를 관리
  3. 작업 상태를 실시간 모니터링하고 이슈 발생 시 메일/메신저 알람을 받고자 함
  4. 클러스터로 구성하여 선/후 관계가 없는 작업을 병렬로 수행하고자 함

As-was :

Process :

  1. Data ETL을 통해 Lake영역에 7시에 Data 들어옴(30분 소요)
  2. 8시에 Dataset을 생성하도록 Procedure Crontab 스케쥴(30분 소요)
  3. 9시에 예측 모델을 수행 ( Crontab 9시 스케쥴, 10분소요)
  4. 예측 결과 Taget 시스템으로 ETL ( 9시 30분 스케쥴 )

Process Issue :

  1. Lake 영역에 Data ETL이 지연되어 8시까지 완료 되지않음.
  2. Data Lake에 Data가 없음에도 Procedure수행 -> Dataset에 빈 값이 들어감
  3. 비어있는 Dataset을 사용해 예측 모델 수행 -> 당연히 이상한 결과 값이 생성됨
  4. 이상한 값이 전달됨

Architecture Issue :

  1. 데이터 마트생성, 모델 수행이 하나의 .py파일에서 수행됨 -> Error발생 시 원인찾는데 많은 시간이 소요 됨
  2. 시간조건 Crontab으로만 수행되어 앞 작업의 수행결과와 상관없이 수행됨

As-is :

Dag 단위 작업 분리 / Trigger 활용하여 선행 작업이 수행되지 않으면 후행작업 진행 x / 이슈 발생시 알람


To-be :

  1. 여러서버를 Airflow Cluster로 구성하여 병렬처리 가능하도록 함
profile
다소Good한 데이터 엔지니어

0개의 댓글