inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Airflow 마스터 클래스

task 연결하기

>> 가 이해가 잘 안갑니다ㅠㅠ

96

김세은

작성한 질문수 1

0

task 연결하기 강의에서

t1 >> [t2, t3] >> t4

t5 >> t4

[t4, t7] >> t6 >> t8

이렇게 작성하셨는데

t1 >> [t2, t3] >> t4

t5 >> [t4, t7] >> t6 >> t8

이렇게 해도 될까요?

순서도 그릴때 task는 무조건 한번씩만 실행되는건가요?

t4

[t4,t7] 이렇게 t4를 두번 작성해도 되는지 궁금합니다.

python 데이터-엔지니어링 airflow

답변 2

0

김현진

안녕하세요 김세은님!

세은님께서 작성하신걸로 만들게 되면 다른 DAG이 만들어집니다.

원래의 task flow에서 t7은 t5와 dependency가 없습니다.

그러나 아래처럼 만들면 t5가 끝나야 t4와 t7이 시작되는 구조가 되어 버리는 거죠.

t1 >> [t2, t3] >> t4

t5 >> [t4, t7] >> t6 >> t8

 

원래 구조에서 t7은 선행이 없습니다. DAG이 시작되면 t7이 바로 시작될 수 있는 구조에요.

세은님이 작성하신 구조처럼 한번 바꿔보시고 DAG Graph 에서 어떻게 변화하는지 직접 한번 보시는게 제일 좋을거에요.

 

그리고 task flow내 존재하는 task는 한번만 실행되어야 합니다.

task를 실행했는데 조금 있다가 또 실행되면 논리적으로 DAG(Directed Acyclic Graph, 일방향 그래프)이 아닌거죠.

task flow를 정의할 때 task는 여러 번 나와도 되며 순환되지만 않으면 됩니다.

이것도 세은님이 한번 해보시고 어떤 에러가 발생하는지를 보시는게 가장 좋을 듯 합니다.

 

t1 >> [t2, t3] >> t4

t5 >> t4

[t4, t7] >> t6 >> t8 >> t5

 예를 들어 이렇게 작성하면 순환되는 그래프가 됩니다. 이렇게 작성하시면 에러가 발생해서 DAG parsing에 오류가 발생할거에요.

 

0

인프런 AI 인턴

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

김세은 님의 질문은 Airflow에서의 Task Dependency 설정에 대한 궁금증으로 이해됩니다. 아래에 자세한 설명과 참고 링크를 드리겠습니다.

Airflow에서의 >> 연산자는 Task 간의 종속성을 설정하는 데 사용됩니다. 예를 들어, t1 >> [t2, t3] >> t4는 t1이 먼저 실행된 후 t2와 t3가 동시에 실행되고, 그 후에 t4가 실행된다는 것을 의미합니다.

김세은 님께서 제시한 두 번째 예시, t5 >> [t4, t7] >> t6 >> t8은 흐름을 조금 다르게 설정한 것입니다. 여기서 [t4, t7]은 t5가 완료된 후 동시에 실행되는 두 개의 Task를 의미합니다. 두 예제가 모두 사용 가능합니다. 그러나 동일한 Task를 여러 곳에서 재사용하거나 여러 종속성을 가지는 경우는 주의 깊게 설계해야 합니다. Airflow는 Task는 unique하게 설계되어야 하며, 같은 DAG 내에서 중복된 Task ID를 사용할 수 없다는 점을 유의해야 합니다.

관련 질문에 대한 다른 학습자와의 토론을 참고하시면 김세은 님의 이해를 더 돕기 위해 유용할 것입니다:

  • Label 설정 질문드립니다.: 이 질문에서는 Airflow의 DAG 내에서 Task 관계 설정에 대한 심도 있는 논의가 이루어졌습니다.
  • trigger rule 설정 질문: Task의 실행 조건과 관련하여 추가적으로 배울 수 있는 내용이 포함되어 있습니다.

Task는 DAG 내에서 유니크해야 하고, 동일한 Task를 여러 번 기술하는 것보다는 Task ID를 잘 정의하여 ODM(Ordered Dependency Management)을 확립하는 것이 중요합니다. [t4, t7]와 같은 설정은 문제가 없으나, t4라는 Task ID가 여러 번 사용되면 DAG 내에서 혼란을 초래할 수 있습니다.

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

pykrx 회원제 전환으로 인한 실습 불가

0

114

2

수료증 발급

0

84

3

에러 발생 관련 질문드립니다.

0

83

2

vscode 작업화면에 오류가 발생하지 않습니다.

0

69

2

plugins 폴더 생성

0

76

2

WSL에서 git push 가 안되요 ㅠ

0

115

2

chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.

0

67

2

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

0

738

2

설치중인데 venv를 꼭 써야할까요?

0

126

2

설치 버전 관련 질문입니다.

0

68

1

우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?

0

62

1

DAG 만들기 중 airflow 패키지 로드 에러

0

106

2

3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!

0

95

3

task_id 사용법이 뭔가 바뀐 것 같습니다.

0

76

3

email operator 오류 관련

0

66

2

plugins 폴더 관련

0

100

2

bash operator 관련 문의입니다

0

78

3

스케쥴러 - DAG 파싱 부하 줄이는 과정 질문

0

79

2

Dags refresh 주기 관련 질문

0

125

2

wsl 관련 질문입니다.!

0

75

2

macOS에서 docker 설치

0

94

2

템플릿 변수에 대한 오류

0

61

2

custom_image 디렉토리 문의드립니다.

0

54

2

ETL 인터뷰 관련 문의

0

103

2