We-Co

[We-Co] Airflow Backfill에 대해서 알아보자! 본문

Python/Airflow

[We-Co] Airflow Backfill에 대해서 알아보자!

위기의코딩맨 2024. 11. 7. 16:33
반응형

안녕하세요. 위기의 코딩맨입니다.

오늘은 Airflow의 Backfill에  대해서 간단하게 알아보도록 하겠습니다.

 

[ Backfill ]

Backfill의 주요 기능은

연결한 데이터 파이프 라인에서 실행 되지 않았던 작업을

다시 실행시켜 공백을 채워주는 기능을 합니다.

 

예를들면 저번 시간에 올렸던 포스팅에서

DAG를 작성하고 일정 기간동안 반복 시켰을 때,

중간에 결함이 발생했을 경우, 

작업을 다시 실행 시킬수 있는 기능이라고 생각해주시면 됩니다.

 

물론, 전체 파일을 다 가져와서 새로 적용하는 작업에는 필요없고

아래 작업에 주로 사용됩니다.

  • 데이터 누락이나 결함 발생
  • DAG 변경 이후, 과거 데이터의 재처리
  • 초기 데이터 로드
  • 데이터 공백 보완

그리고 실행하기 위해선 몇가지 실행 조건이 있습니다.

  • start_date, end_date의 설정이 필요
  • catchup의 파라미터가 True로 설정되어야 실행

 

또한, retries, rety_delay 같은 조건으로 다시 실행할수 있습니다.

밑에는 말씀드린 DAG에 적용한 간단한 소스입니다.

# DAG 설정
default_args = {
    ...
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    …
}

# 백필을 위한 DAG 생성
with DAG(
    …
    start_date=datetime(2024, 11, 1),
    catchup=True,  # 백필 설정
    …
 ) as dag:

 

이렇게 설정으로 적용할 수 있지만,

커맨드에서 직접 설정을 할수 있습니다.

[start_date]와 [end_date]에는 날짜로 변경해서 적용해야합니다. 대괄호는 빼고~!

airflow dags backfill -s [start_date] -e [end_date] backfill_example

 

이렇게 커맨드에 적용하면

설정한 날짜에 대해서 백필을 실행합니다.

 

백필을 사용하게되면, 일관성과 자동화에 조금더 관리가 용이해 지며,

데이터의 재처리, 공백 채우기 데이터 관리에도 도움을 줄수 있습니다.

 

 

오늘은 간단하게 backfill에 대해서 알아보았습니다.

다음부턴 조금 더 심화된 내용으로 찾아뵙도록 하겠습니다. 

 

반응형