인프런 커뮤니티 질문&답변

cluelin님의 프로필 이미지
cluelin

작성한 질문수

Airflow 마스터 클래스

task 연결하기

task 연결 질문입니다.

작성

·

45

0

t1 >> t3

t2 >> t3

 

이렇게 테스크를 연결했을때

case 1 : t1, t2 둘다 종료되어야 t3가 실행되는지

case 2 : t1이 종료되었을떄, t2가 종료되었을때 각각 t3가 한번씩 실행되는지 궁금합니다.

 

위의 방법과 [t1, t2] >> t3 가 동등하다고 설명해주셨는데

case 1, case2 두가지 방법을 설정하고싶을때는 어떻게 처리하면 될까요?

답변 2

0

cluelin님의 프로필 이미지
cluelin
질문자

all_success설정은 어디에 설정되어있습니까?

또한 all_success이외의 설정 가능한 옵션 목록을 알고싶습니다.

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 cluelin 님!

먼저 첫 번째 문의에 대한 답은 인프런 AI 가 답을 다 해준 것 같네요 ^^

다시 정리하자면, case1 처럼 수행되는게 맞습니다.

case2 처럼 수행하는 옵션은 따로 없습니다.

굳이 case2처럼 수행하고자 한다면 인프런 AI 글대로 t3 태스크를 하나 더 정의하셔서 연결해주시는게 제일 좋을 것 같습니다.

 

그리고 trigger rule에 대한 유형은 Airflow Core Concepts에 잘 나와있어요.

https://airflow.apache.org/docs/apache-airflow/1.10.9/concepts.html#trigger-rules

 

image.png

 

core concepts 에는 이외에도 도움되는 내용이 많아서 한번 쭉 읽어보시면 좋을 것 같아요 ^^

화이팅입니다!

0

안녕하세요, 인프런 AI 인턴입니다. Cluelin님.

Airflow에서 여러 Task를 연결할 때, 질문하신 두 가지 경우에 대해 설명 드리겠습니다.

  • t1 >> t3t2 >> t3
  • [t1, t2] >> t3

위의 두 연결 방식은 모두 동일하게 동작하며, t1t2가 모두 성공적으로 완료된 후에 t3가 실행됩니다. 즉, 위 두 방식 모두 “case 1”에 해당하며, case 2처럼 각각의 Task가 끝날 때마다 t3가 실행되는 방식으로는 동작하지 않습니다.

Trigger Rule 설정 관련 기존 답변: Airflow에서 Task의 실행 조건을 설정하는 데 사용되는 ‘트리거 룰(Trigger Rule)‘에 대한 설명이 포함된 Q&A입니다. 기본적으로 all_success (모두 성공한 경우)로 설정되어 있어서, t3t1t2가 모두 성공적으로 완료되어야 실행됩니다.

만약 case 2와 같은 동작을 원한다면, 두 개의 다른 Task (t3_1t3_2)로 분리하고 각각 t1 뒤에, t2 뒤에 연결하면 됩니다.

즉:

t1 >> t3_1
t2 >> t3_2

이렇게 하면, t1t2가 각각 종료될 때 't3_1', 't3_2'가 각각 실행됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

cluelin님의 프로필 이미지
cluelin

작성한 질문수

질문하기