데브코스 TIL/데이터 파이프라인, Airflow

Airflow Backfill 이해하기

예니ㅣ 2023. 12. 14. 11:27

강의

Backfill

"Backfill"은 실패한 데이터 파이프라인 혹은 이미 추출한 데이터의 오류로 인한  데이터 파이프라인 재실행을 말합니다.

  • Full Refresh : 단순 재실행
  • Incremental Update : 복잡 → Airflow Backfill 용이

 

날짜별 Backfill 결과 및 성공 여부 기록하여 ETL 인자로 제공합니다.

시스템이 지정해준 날짜 사용하면 Backfill을 구현할 수 있습니다.

 

Airflow Backfill 구현 방식

  1. ETL별 실행 날짜 및 결과 메타데이터 데이터베이스에 기록 
  2. 모든 DAG 실행에 execution_date 지정
  3. 데이터 갱신하는 코드 작성

 

Backfill 관련 Airflow 변수

  • start_date : DAG가 처음 추출해야하는 데이터의 날짜 및 시간
  • execution_date : DAG가 추출해야하는 데이터의 날짜 및 시간
  • catchup : DAG가 처음 활성화된 시점이 start_date보다 미래인 겨우 실행되지 않은 작업 실행 혹은 무시 결정
  • end_date : airflow dags backfill -s ... -e ...

 

Backfill 실행 조건

  • catchup = True
  • execution_date 사용한 코드 구현
  • 실행순서 랜덤 → 날짜순 지정 가능
default_args = {
	'depends_on_past': True,
    ...

 

Backfill cmd 실행

airflow dags backfill dag_id -s backfill_start_date -e backfill_end_date