홍카나의 공부방

[DE 데브코스] 06.21 TIL - Airflow, backfill, start_date와 execution_date, catchup 본문

Data Engineering

[DE 데브코스] 06.21 TIL - Airflow, backfill, start_date와 execution_date, catchup

홍문관카페나무 2023. 6. 21. 15:59

airflow를 DE가 왜 사용하는가?

  • backfill을 관리하기 쉬운 tool이라서 그렇다.
  • backfill이란 실패한 데이터 파이프라인을 재실행하거나, 읽어온 데이터들의 문제로 다시 읽어옴을 의미한다.
  • full refresh의 경우 backfill은 그냥 다시 실행하면 끝이나, incremetal update의 경우, backfill의 난이도가 올라간다.

 

start_date와 execution_date

중요!

  • airflow의 start_date는 DAG의 시작 날짜라기 보다는 DAG가 처음 읽어와야 하는 데이터의 날짜다.
  • DAG의 실제 첫 실행날짜는 start_date + DAG의 실행주기다.
  • execution_date는 읽어와야 하는 데이터의 날짜와 시간이다. airflow가 자동으로 정한다.
  • 즉, 위 그림에서 start_date를 11월 7일로 설정하면 DAG는 11월 7일의 데이터를 읽어와야 하는 11월 8일에 실행된다.
  • 예를 들어, 하루에 한 번 실행되는 job을 8월 6일 00시로 start_date를 잡고 오늘 날짜가 8월 14일 20시라고 가정하면, job이 실행되는 순간 해당 job은 catchup 파라미터의 값에 따라 8번 자동 실행된다. ( 잘 모르겠으면, catchup은 False로 설정하는게 안전. )
  • -> 8월 6일 00시부터 8월 14일 00시까지 daily로 한 번씩 실행되어 총 8번 실행된다.
  • catchup은 DAG가 처음 활성화된 시점이 start_date보다 미래라면, 그 사이 실행이 안된 것들을 모두 가져올 것인지 결정하는 파라미터이다.
  • end_date는 보통 필요하지 않은 값인데, Backfill을 날짜 범위에 대해 진행하는 경우에만 필요한 파라미터다.
반응형