Apache Airflow

[Airflow] 트리거 규칙 (Trigger Rule)

비번변경 2023. 1. 10. 17:18

트리거 규칙

기본적으로 Airflow는 모든 상위 Task이 성공해야 다음 Task를 실행한다. 다만 필요한 경우 task 정의 시 trigger_rule 변수를 이용해 Task 실행 규칙을 지정할 수 있다.

 

 

옵션

trigger_rule로 지정할 수 있는 값은 다음과 같다.

동작 방식
all_success 모든 상위 Task 실행 성공
all_failed 모든 상위 Task가 실행 실패, 또는 upstream_failed 상태
all_done 모든 상위 Task 실행 완료
one_failed 하나 이상의 상위 Task 실패.
모든 상위 Task의 실행 완료를 대기하지 않는다.
one_success 하나 이상의 상위 Task 성공.
모든 상위 Task의 실행 완료를 대기하지 않는다.
none_failed 모든 상위 Task가 실패 또는 upstream_failed가 아니다.
모든 Task가 성공했거나 건너뛴 경우.
none_failed_min_one_success 모든 상위 Task가 실패 또는 upstream_failed가 아니고 하나 이상의 상위 Task가 성공 .
none_skipped 건너뛴 상위 Task 없음.
모든 Task가 성공, 실패 또는 upstream_failed 상태여야 한다.
always Task 종속성 없이 항상 실행

 

 

예시

Task 정의 시 아래와 같이 전달하면 된다.

task_empty = EmptyOperator(
    task_id='task_empty',
    trigger_rule='always',
    dag=dag
)

트리거 규칙을 always로 설정하면 상위 Task가 실패해도 다음 Task를 실행시킨다.

 

 

참고 문서

https://airflow.apache.org/docs/apache-airflow/2.2.5/concepts/dags.html?#trigger-rules