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에 시작됩니다.
'컨테이너·워크플로우 자동화 > Airflow로 워크플로우 자동화하기' 카테고리의 다른 글
| Airflow의 Backfill & Catchup 이해하기 (0) | 2025.10.19 |
|---|---|
| Airflow schedule_interval 완벽 정리 (0) | 2025.10.19 |
| Airflow로 Star Wars API 데이터를 PostgreSQL에 적재하기 (0) | 2025.10.19 |
| Airflow ExternalTaskMarker 이해하기 (0) | 2025.10.19 |
| Airflow ExternalTaskSensor 이해하기 (0) | 2025.10.19 |