컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

Airflow DAG Scheduling 이해

Data Jun 2025. 10. 19. 10:10

Airflow에서 DAG의 실행 시점을 헷갈리는 경우가 많아요.
start_date는 DAG이 “언제 실행되느냐”가 아니라,
“어떤 기간의 데이터를 처리할 것인가”를 의미합니다.

 

1. 핵심 개념 요약

  • Airflow Scheduler는 DAG 폴더를 주기적으로 감시하며(매 1분 정도),
    실행 조건이 충족된 Task를 자동으로 트리거합니다.
  • DAG은 schedule_interval 주기로 실행되지만,
    해당 기간이 끝난 직후에 실행됩니다.

 

2. 실행 타이밍 예시

설정 의미 실제 실행 시점
start_date = 2025-10-19 00:00 10/19일 데이터를 처리 2025-10-20 00:00
schedule_interval = '@daily' 매일 한 번 실행 하루가 끝난 직후 실행
chedule_interval = '@hourly' 매시간 실행 다음 시간(한 시간 뒤) 실행

즉,

DAG run은 “10월 19일 데이터를 처리하기 위해” 만들어지지만,
실제 실행은 10월 20일 00:00에 시작됩니다.

 

1️⃣ 공식으로 표현하면

실행 시점 = start_date + schedule_interval

 

2️⃣ Airflow의 내부 해석

  • DAG Run ID: 2025-10-19
  • 의미: 10월 19일 00:00 ~ 10월 20일 00:00 동안의 데이터를 처리
  • 실행 시점: 10월 20일 00:00 (기간이 끝난 직후)

 타임라인으로 보면

[10/19 00:00]───────────────[10/20 00:00]
       ▲                           ▲
   start_date                실제 실행 시간
   (처리 시작 시점)           (period 종료 후 실행)

 

 

정리하면

 

start_date는 “데이터 기준일”,
schedule_interval은 “실행 주기”,
Airflow는 주기가 끝난 시점(다음 주기 시작 시점) 에 DAG을 실행한다.

 

매일 자정에 어제 데이터를 처리하고 싶다면
start_date를 2025-10-19 00:00,
schedule_interval='@daily' 로 설정하면
첫 실행은 2025-10-20 00:00에 시작됩니다.