Notice
Recent Posts
Recent Comments
Link
터칭 데이터
Task Groups 본문
태스크 그룹핑의 필요성
태스크 수가 많은 DAG라면 태스크들을 성격에 따라 관리하고 싶은 니즈 존재
SubDAG이 사용되다가 Airflow 2.0에서 나온 Task Grouping으로 넘어가는 추세
- SubDAG를 비슷한 일을 하는 태스크들을 SubDAG라는 Child Dag로 만들어서 관리
다수의 파일 처리를 하는 DAG라면
파일 다운로드 태스크들과 파일 체크 태스크와 데이터 처리 태스크들로 구성
예제 살펴보기 - 소스코드
Learn Task Groups
from airflow.models.dag import DAG
from airflow.operators.empty import EmptyOperator
from airflow.operators.bash import BashOperator
from airflow.utils.task_group import TaskGroup
import pendulum
with DAG(dag_id="Learn_Task_Group", start_date=pendulum.today('UTC').add(days=-2), tags=["example"]) as dag:
start = EmptyOperator(task_id="start")
# Task Group #1
with TaskGroup("Download", tooltip="Tasks for downloading data") as section_1:
task_1 = EmptyOperator(task_id="task_1")
task_2 = BashOperator(task_id="task_2", bash_command='echo 1')
task_3 = EmptyOperator(task_id="task_3")
task_1 >> [task_2, task_3]
# Task Group #2
with TaskGroup("Process", tooltip="Tasks for processing data") as section_2:
task_1 = EmptyOperator(task_id="task_1")
with TaskGroup("inner_section_2", tooltip="Tasks for inner_section2") as inner_section_2:
task_2 = BashOperator(task_id="task_2", bash_command='echo 1')
task_3 = EmptyOperator(task_id="task_3")
task_4 = EmptyOperator(task_id="task_4")
[task_2, task_3] >> task_4
end = EmptyOperator(task_id='end')
start >> section_1 >> section_2 >> end
TaskGroup 안에 TaskGroup nesting 가능
TaskGroup도 태스크처럼 실행 순서 정의 가능
from airflow.utils.task_group import TaskGroup
start = EmptyOperator(task_id="start")
with TaskGroup("Download", tooltip="Tasks for downloading data") as section_1:
task_1 = EmptyOperator(task_id="task_1")
task_2 = BashOperator(task_id="task_2", bash_command='echo 1')
task_3 = EmptyOperator(task_id="task_3")
task_1 >> [task_2, task_3]
start >> section_1
예제 살펴보기 - 그래프 표현 살펴보기
데모
TaskGroup DAG 실행
Web UI에서 그래프 확인
'Airflow 고급 기능, dbt, Data Catalog' 카테고리의 다른 글
Airflow 운영과 대안 (0) | 2024.01.04 |
---|---|
Dynamic Dags (0) | 2024.01.03 |
Airflow DB 살펴보기 (0) | 2024.01.03 |
Dag-Dependencies 데모 (0) | 2024.01.03 |
Dag Dependencies - 나머지 (0) | 2024.01.03 |