15분
Catchup vs Backfill: 과거 데이터 처리
Day 3: 매일 새벽 3시에 자동 실행
Catchup vs Backfill: 과거 데이터 처리
Apache Airflow - 워크플로우 오케스트레이션 > Day 3: 매일 새벽 3시에 자동 실행
학습 목표
catchup 옵션의 동작을 이해한다 backfill 명령어를 사용할 수 있다
Catchup: 자동 과거 실행
에디터 로딩 중...
오늘이 1월 10일이고 DAG를 처음 켰다면?
catchup=True:
- 1월 1일 ~ 1월 9일 모든 날짜에 대해 실행
- 9개의 DAG Run이 생성됨
catchup=False:
- 과거 실행 건너뜀
- 다음 스케줄부터 실행
언제 catchup=True?
써야 할 때:
- 신규 DAG 배포 후 과거 데이터 처리 필요
- 장애 복구 후 놓친 기간 자동 처리
쓰면 안 될 때:
- 실시간/최신 데이터만 필요한 경우
- 과거 실행이 부담되는 무거운 작업
권장: 대부분 catchup=False로 설정하고, 필요시 수동 Backfill
Backfill: 수동 과거 실행
에디터 로딩 중...
catchup vs backfill 비교:
| 항목 | catchup=True | backfill |
|---|---|---|
| 실행 시점 | DAG 활성화 시 자동 | 수동 명령 |
| 범위 | start_date ~ 현재 전체 | 지정한 기간만 |
| 제어 | 불가능 | 세밀하게 가능 |
실무 팁
에디터 로딩 중...
max_active_runs: 동시에 실행되는 DAG Run 수 제한
- catchup=True여도 한 번에 하나씩만 실행
- 리소스 과부하 방지