Data/Airflow
[Airflow] ShortCircuitOperator란?
운호(Noah)
2024. 3. 8. 11:09
ShortCircuitOperator란?
- 지정된 조건이 참(True)일 때만 다운스트림 작업을 실행하는 Operator입니다.
- 지정된 조건이 거짓(False)이라면, ShortCircuitOperator는 다운스트림 작업의 실행을 건너뜁니다.
ignore_downstream_trigger_rules 설정
- ShortCircuitOperator가 거짓(False)된 조건으로 인하여 다운스트림 작업을 건너뛸 때,
- 다운스트림 작업들의 트리거 규칙을 무시할 것인지 결정하는 설정입니다.
- ignore_downstream_trigger_rules=True를 적용한 경우 (기본 설정)
- 조건이 참(True)일 때 : ShortCircuitOperator 뒤에 오는 모든 다운스트림 작업을 실행합니다.
- 조건이 거짓(False)일 때 : 모든 다운스트림을 건너뜁니다.
- ignore_downstream_trigger_rules=False를 적용한 경우
- 조건이 참(True)일 때 : ShortCircuitOperator 뒤에 오는 모든 다운스트림 작업을 실행합니다.
- 조건이 거짓(False)일 때 : 특정 트리거 룰이 있는 다운스트림을 제외한 모든 다운스트림을 건너뜁니다.
- ignore_downstream_trigger_rules=True를 적용한 경우 (기본 설정)
예제 코드
ignore_downstream_trigger_rules=True를 적용한 경우
short_circuit Task의 조건이 참(True)이면, ShortCircuitOperator 뒤에 오는 모든 다운스트림 작업을 실행합니다.
@task.short_circuit(ignore_downstream_trigger_rules=True) def step_1(): return True @task def step_2(): return "step_2"
short_circuit Task의 조건이 거짓(False)이면, 모든 다운스트림을 건너뜁니다.
@task.short_circuit(ignore_downstream_trigger_rules=True) def step_1(): return False @task def step_2(): return "step_2"
ignore_downstream_trigger_rules=False를 적용한 경우
short_circuit Task의 조건이 참(True)이면, ShortCircuitOperator 뒤에 오는 모든 다운스트림 작업을 실행합니다.
@task.short_circuit(ignore_downstream_trigger_rules=False) def step_1(): return True @task def step_2(): return "step_2"
short_circuit Task의 조건이 거짓(False)이면, 특정 트리거 룰이 있는 다운스트림을 제외한 모든 다운스트림을 건너뜁니다.
@task.short_circuit(ignore_downstream_trigger_rules=False) def step_1(): return False @task def step_2(): return "step_2" # NONE_FAILED = 이전 단계들이 모두 성공 또는 스킵일 경우에만 실행 @task(trigger_rule=TriggerRule.NONE_FAILED) def step_3(): return "step_3"