Post

Airflow DAG 파라미터 옵션 정리

Apache Airflow DAG 작성 시 자주 사용하는 파라미터 옵션들을 공식문서를 기반으로 정리

Airflow DAG 파라미터 옵션 정리

Apache Airflow에서 DAG(Directed Acyclic Graph)를 정의할 때, 단순히 태스크의 순서를 지정하는 것뿐만 아니라 다양한 실행 옵션을 함께 설정할 수 있다. 이 옵션들은 태스크의 재시도 정책, SLA, 실행 환경(큐/풀), 에러 핸들링, 트리거 조건 등에 영향을 미친다.


DAG 기본 구조 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from datetime import datetime, timedelta
from airflow import DAG
from airflow.providers.standard.operators.bash import BashOperator

with DAG(
    dag_id="tutorial",
    description="A simple tutorial DAG",
    schedule_interval=timedelta(days=1),
    start_date=datetime(2021, 1, 1),
    catchup=False,
    default_args={
        "depends_on_past": False,
        "retries": 1,
        "retry_delay": timedelta(minutes=5),
    },
    tags=["example"],
) as dag:

    t1 = BashOperator(
        task_id="print_date",
        bash_command="date",
    )

주요 파라미터 정리 (표 형식)

파라미터설명기본값예시활용 사례
default_argsDAG 내 모든 태스크에 공통 적용되는 기본 인자{}{ 'retries': 1 }공통 정책을 손쉽게 적용
depends_on_past이전 실행(Task Instance)이 성공해야 현재 실행 진행 여부 결정FalseTrue순차적 종속성이 필요한 ETL
retries실패 시 재시도 횟수0retries=3일시적 오류 허용
retry_delay재시도 간격timedelta(minutes=5)timedelta(minutes=10)API rate limit 대응
queue실행할 워커 큐 지정defaultqueue='bash_queue'특정 워커 리소스 분리
pool동시 실행 개수를 제한하는 풀 지정없음pool='db_pool'DB Connection 보호
priority_weight스케줄링 우선순위 가중치1priority_weight=10중요한 태스크 우선 실행
end_dateDAG 실행 종료일없음datetime(2025, 12, 31)특정 기간 캠페인 한정
wait_for_downstream이전 DAG 실행의 다운스트림 태스크 완료까지 대기 여부FalseTrue데이터 일관성 보장
execution_timeout태스크 최대 실행 시간없음timedelta(minutes=30)무한 대기 방지
sla태스크 완료 목표 시간없음sla=timedelta(hours=1)SLA 모니터링
trigger_rule태스크 실행 조건all_successtrigger_rule='all_failed'특정 조건에서만 실행
on_failure_callback실패 시 실행할 함수없음on_failure_callback=alert_func알림/Slack 연동
on_success_callback성공 시 실행할 함수없음on_success_callback=log_func성공 로깅
on_retry_callback재시도 시 실행할 함수없음on_retry_callback=retry_alert재시도 모니터링
sla_miss_callbackSLA 위반 시 실행할 함수없음sla_miss_callback=notify_funcSLA 경고
on_skipped_callback태스크 건너뜀 시 실행할 함수없음on_skipped_callback=skip_logger조건부 태스크 추적

실행 조건 (Trigger Rules)

Airflow는 DAG 실행 시 각 태스크가 언제 실행될지를 Trigger Rule로 제어한다.

Trigger Rule설명
all_success모든 업스트림 태스크가 성공해야 실행 (기본값)
all_failed모든 업스트림 태스크가 실패해야 실행
one_success업스트림 중 하나라도 성공 시 실행
one_failed업스트림 중 하나라도 실패 시 실행
none_failed업스트림이 실패하지 않았을 때 실행
always업스트림 결과와 관계없이 항상 실행

시각적 예시 (Mermaid)

graph TD;
    A[print_date] --> B[sleep]
    A --> C[templated]

위 예시는 t1 >> [t2, t3] 관계를 나타내며, print_date 태스크 완료 후 sleeptemplated 태스크가 병렬로 실행된다.


정리

  • DAG 파라미터는 단순한 옵션이 아니라 워크플로우 신뢰성, 성능, 운영 효율성에 직결된다.
  • retries, timeout, queue, trigger_rule 등의 적절한 조합은 장애 대응력과 안정성을 크게 향상시킨다.
  • 팀 단위 운영에서는 pool, priority_weight, callback 함수 등을 활용하여 리소스 제약과 알림 체계를 관리하는 것이 권장된다.
This post is licensed under CC BY 4.0 by the author.