Airflow DAG start_date 제대로 알기

snooby·2022년 7월 28일
0

🌌 Airflow

목록 보기
3/6
post-thumbnail

airflow를 이용하여 DAG를 정기적으로 구동시키려면
다음을 주의해야한다.

  1. start_date
    DAG 구동의 기준점이 될 시간
  2. schedule_interval
    어느 주기로 실행할지

많이들 헷갈리는 개념이 start_date이다.
start_date를 직역해서 받아들이면
우리가 생성한 dag 인스턴스가 시작되는 시점이라고 이해하기 쉽다.

하지만!!!!

그렇게 생각하면 머리가 복잡해지기 시작한다.
어.. 만약 start_date가 과거시간이면 현 시점보다 과거인데 그건 실행이 어떻게 되는거야?
실행이 되? 무시하고 현재부터 가? 등등

결론부터 말하자면, start_date는 schedule_interval에 의해 처음 구동될 시간을 정하게 된다.
즉, dag가 처음 구동할 시간이 아니라는 거다!!

우리가 정의한 주기에 의해 주기에 따를 때 처음 구동가능한 시간에 구동된다는 것.

dag run = start_date + schedule_interval

예를 들어보자.
start_date=datetime(2022.7.1)
schedule_interval=@monthly
이렇게 dag를 생성했다고 가정하자.

그리고 오늘은 7/28 5:48이다.
7/1은 과거이고 실행주기는 매월 1일 자정 12시이니 우선 어제 자정은 지났다.
그럼 실행주기 매월 1일 자정 기준으로 볼때 처음 실행가능한 시간은?
8/1 자정이다.

즉, 매월 1일 자정 구동되는 애플리케이션이라면, 7/1 분의 태스크 처리는 8/1에 수행될 것이라고 감안하고 만드는 것이다.

오늘도 생각치 못한 옥에 티 해결!

profile
DevOps 🐥

0개의 댓글