안녕하세요 Dibrary입니다.
Airflow 책을 보면서 Task를 구성하고 연결하는 것 까지는 해보았는데, 갯수가 많은 경우는 보기가 복잡할 수 있겠다~ 싶은 점이 있었습니다.
아니나 다를까, 최근 Airflow는 TaskGroup이라는 기능이 있어서 graph에서 보기 편하게 해 주는 기능이 있었습니다.
graph를 사용하지 않은 기본 코드를 먼저 작성 해 보겠습니다.
위 코드의 graph를 보면 아래와 같이 나옵니다.
말 그대로 task_0에서 2가지 task로 분기가 되고, task_1_2에서 3가지로 분기가 되었다가 task_1_3_4에서 다시 모입니다.
Task의 흐름을 보여드리고자 DummyOperator만 사용했습니다. BashOperator 및 PythonOperator를 사용하셔도 볼 수 있습니다.
근데, 지금 Task 가 10개도 채 안되는데 벌써 >>를 사용한 의존성 연결부분에 코드가 꽤나 길어집니다.
만일 Task가 500개라면 어떨까요? 생각하기 막막합니다.
그래서 TaskGroup을 사용하면 아래와 같이 됩니다.
우선 TaskGroup은 2곳에서 쓰였는데, 사실 tg_2는 그냥 단순히 하나의 Task만 정의해도 되었겠네요.
중요한 포인트는, TaskGroup 안에 TaskGroup을 또 쓴 것입니다.
앞전 Task의 흐름과 같은데 더 보기가 쉽습니다. 또한, TaskGroup은 펼치거나, 오므리거나 해서 보이는 수준을 조절할 수 있습니다.
그리고 번외로, Task는 list에 for문으로 담아서도 표현할 수 있습니다.
제가 표시한 부분을 잘 보시면, temp라는 list만을 그대로 사용했습니다.
이렇게도 가능하다는 것.
'프로그래밍 > Data process' 카테고리의 다른 글
데이터 플랫폼 설계와 구축 - 1장(소개) 정리 (0) | 2023.04.21 |
---|---|
Hadoop 기본 구조 및 원리 (2) | 2022.09.23 |
Kafka 기본 개념 및 아키텍처 (0) | 2022.09.22 |
파이썬으로 AWS S3에 있는 파일 GET, PUT하기 (0) | 2022.09.16 |
AWS - S3 프리티어로 사용해보기 (버킷생성) (0) | 2022.09.15 |