[Airflow] 5. Backfill?

2024. 11. 12. 19:24·데이터/Airflow

Backfill?

  • 실패한 데이터 파이프라인을 재실행 or 읽어온 데이터의 문제로 다시 읽어와야하는 경우를 의미
  • Airflow에서의 Backfill
    • 과거 특정 날짜에 대한 DAG 실행을 수동으로 수행하여 데이터 파이프라인을 다시 실행하는 과정
    • 새로운 DAG를 추가하거나, DAG의 설정을 변경한 후, 누락된 과거 데이터를 처리하기 위해 사용

Backfill의 주요 목적

  • 데이터 누락 방지 : 과거 DAG가 실행되지 않아서 누락된 데이터를 채우는 데 사용
  • 데이터 갱신 : 과거 DAG에 에러가 발생한 경우, 과거 데이터를 갱신하기 위해 사용
  • 데이터 재처리 : 데이터 처리 로직이 변경된 후 과거 데이터를 새 로직에 맞게 재처리하기 위해 사용

Backfill 관련 Airflow 변수

  • start_date
    • DAG가 처음 실행되는 날짜가 아닌, DAG가 처음 읽어와야하는 데이터의 날짜 / 시간
    • 실제 첫 실행 날짜는 start_date + DAG의 실행주기
  • catchup
    • DAG가 처음 활성화 된 시점이 start_date보다 미래일 경우, 그 사이에 실행되지 않은 작업의 실행 여부를 결정하는 파라미터
    • True가 Default -> Backfill 실행
    • False일 경우 -> Backfill 미실행 및 실행되지 않은 작업 무시
  • end_date : 보통 필요하지 않지만, Backfill을 날짜 범위를 지정하여 하는 경우에 필요
  • execution_date : DAG가 읽어와야하는 데이터의 날짜 / 시간

Backfill 실행 방법

  • [airflow dags backfill] 명령을 통해 특정 날짜 범위의 과거 실행을 수동으로 트리거 가능

필수 조건

  1. 데이터 소스의 backfill 방식 지원 필수
  2. catchup - True로 설정
  3. execution_date를 통해 Incremental update의 구현 O

예시

  • -s : 시작 날짜
  • -e : 종료 날짜
  • <dag_id> : backfill을 실행할 DAG의 ID
% airflow dags backfill -s 2024-11-01 -e 2024-11-07 <dag_id>


Backfill 주의사항

  • 중복 처리 주의 : 이미 처리된 데이터가 있는 경우, 재실행 시 중복될 수 있으므로 DAG의 Task에 중복 방지 로직을 추가 고려 필요
  • 리소스 부담 : 과거 데이터 양이 많을 경우 backfill 작업에 리소스를 많이 소모할 수 있기에, 리소스 유의 필요
저작자표시 (새창열림)

'데이터 > Airflow' 카테고리의 다른 글

[Airflow] 7. DAG Trigger?  (0) 2024.11.19
[Airflow] 6. Slack Alert  (0) 2024.11.18
[Airflow] 4. Airflow.cfg?  (1) 2024.11.11
[Airflow] 3. Python Operator / Task Decorator  (1) 2024.11.10
[Airflow] 2. XCom?  (1) 2024.11.10
'데이터/Airflow' 카테고리의 다른 글
  • [Airflow] 7. DAG Trigger?
  • [Airflow] 6. Slack Alert
  • [Airflow] 4. Airflow.cfg?
  • [Airflow] 3. Python Operator / Task Decorator
김줘
김줘
김줘와 같이 데이터, 컴퓨터, IT 공부
  • 김줘
    초보개발자 김줘의 코딩일기
    김줘
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 데이터 엔지니어링 데브코스
      • 데이터
        • Airflow
        • Spark
        • Kafka
        • dbt
      • TroubleShooting
      • Docker
      • AWS
      • 크롤링, 스크래핑, 시각화
        • Selenium
        • 시각화
      • 코딩테스트
        • 프로그래머스
        • 입출력과 사칙연산
        • 정렬
      • Django
      • 자바 공부
      • 끄적끄적
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터 엔지니어링 데브코스
    Azure
    부트캠프
    Airflow
    Java
    에어플로우
    cloud
    Python
    aws
    TiL
    오블완
    프로그래머스
    데브코스
    파이썬
    티스토리챌린지
    프로그래밍
    초보개발자
    데이터 엔지니어
    데이터 엔지니어링 데브코스 4기
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
김줘
[Airflow] 5. Backfill?
상단으로

티스토리툴바