# UI에 Task들을 Group으로 표현하기
# Web UI
Task들을 Group화 하여 보여줄 수 있는 Task Group 이라는 개념이 있습니다.
Task Group을 사용하면 그룹화된 Task들이 Graph View에서 다음과 같이 group_1
Task 처럼 보이게 됩니다.
group_1
Task를 클릭하면 다음처럼 그룹화된 Task들을 볼 수 있습니다.
# Code
from datetime import datetime, timedelta
from time import sleep
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.utils.task_group import TaskGroup
from pendulum.tz.timezone import Timezone
with DAG(
dag_id="01_task_groups",
description="TaskGroup을 가지는 DAG 예제입니다.",
default_args={
"owner": "heumsi",
"retries": 1,
"retry_delay": timedelta(minutes=1),
},
start_date=datetime(2022, 1, 20, tzinfo=Timezone("Asia/Seoul")),
schedule_interval="@once",
tags=["examples", "03_visualization_and_documentation_dags"],
) as dag:
def dump() -> None:
sleep(3)
task_1 = PythonOperator(task_id="task_1", python_callable=dump)
with TaskGroup("group_1") as task_group:
task_2 = PythonOperator(task_id="task_2", python_callable=dump)
task_3 = PythonOperator(task_id="task_3", python_callable=dump)
task_4 = PythonOperator(task_id="task_4", python_callable=dump)
task_2 >> task_4
task_3 >> task_4
task_5 = PythonOperator(task_id="task_5", python_callable=dump)
task_1 >> task_group >> task_5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
with
구문과 같이TaskGroup
인스턴스로 Task Group을 정의합니다.with
구문 내에 정의된 Task Instance들과 의존성은 모두 하나의 Task Group으로 그룹화 됩니다.
TIP
Task Group은 단순히 Web UI에서 그룹화되어서 보이는 것일 뿐, 동작에는 영향을 주거나 별다른 의미는 없습니다.