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

Apache Airflow Backfilling 이해하기

Data Jun 2025. 10. 20. 12:27

1. Backfill이란?

Airflow를 운영하다 보면 시스템 다운타임이나 일시적인 오류로 인해 특정 기간의 DAG가 실행되지 않는 경우가 있습니다.
이때 Backfill 기능을 활용하면 지정한 기간 동안 누락된 DAG 실행을 “과거로 되돌아가” 수행할 수 있습니다.

즉, 지정된 시간 구간(start_date ~ end_date)에 대해 DAG를 재실행하여 누락된 데이터를 채워 넣는(filling in) 과정입니다.

 

📅 예를 들어 아래 그림처럼,
2024년 11월 1일부터 3일까지의 DAG가 실행되지 않았을 때,
backfill 명령을 통해 이 기간의 태스크를 다시 실행할 수 있습니다.

✅ 오늘 날짜(2024-11-04) 기준으로 이전의 모든 DAG 런을 다시 채워 넣는 기능입니다.

 

 

2. 명령어 사용법

터미널에서 다음과 같은 형식으로 명령을 실행합니다.

airflow dags backfill <dag_id> -s <start_date> -e <end_date>

예시:

airflow dags backfill my_dag -s 2024-11-01 -e 2024-11-03

 

 

3. 유용한 옵션(Arguments)

옵션 설명
--mark-success 해당 DAG 런을 성공 처리로 표시(실제 실행 없이 성공으로 간주)
--reture-falied-tasks 실패한 태스크만 재실행
--reset-dagruns 기존 DAG 런 기록 초기화 후 다시 실
--disable-retry 태스크 재시도 기능 비활성화
--continue-on-failures 일부 태스크 실패 시에도 나머지 태스크 계속 실행

 

 

정리하면

 

Backfill은 Airflow DAG 관리에서 매우 중요한 유지보수 기능 중 하나입니다.
데이터 누락이나 오류로 인한 공백을 자동으로 메우며,
데이터 파이프라인의 연속성정확성을 보장하는 핵심 도구입니다.