작성
·
45
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. Cluelin님.
Airflow에서 여러 Task를 연결할 때, 질문하신 두 가지 경우에 대해 설명 드리겠습니다.
t1 >> t3
와 t2 >> t3
[t1, t2] >> t3
위의 두 연결 방식은 모두 동일하게 동작하며, t1
과 t2
가 모두 성공적으로 완료된 후에 t3
가 실행됩니다. 즉, 위 두 방식 모두 “case 1”에 해당하며, case 2
처럼 각각의 Task가 끝날 때마다 t3
가 실행되는 방식으로는 동작하지 않습니다.
Trigger Rule 설정 관련 기존 답변: Airflow에서 Task의 실행 조건을 설정하는 데 사용되는 ‘트리거 룰(Trigger Rule)‘에 대한 설명이 포함된 Q&A입니다. 기본적으로 all_success (모두 성공한 경우)로 설정되어 있어서, t3
는 t1
과 t2
가 모두 성공적으로 완료되어야 실행됩니다.
만약 case 2
와 같은 동작을 원한다면, 두 개의 다른 Task (t3_1
과 t3_2
)로 분리하고 각각 t1
뒤에, t2
뒤에 연결하면 됩니다.
즉:
t1 >> t3_1
t2 >> t3_2
이렇게 하면, t1
과 t2
가 각각 종료될 때 't3_1'
, 't3_2'
가 각각 실행됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요 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
core concepts 에는 이외에도 도움되는 내용이 많아서 한번 쭉 읽어보시면 좋을 것 같아요 ^^
화이팅입니다!