# UI에 Task들을 Group으로 표현하기

# Web UI

Task들을 Group화 하여 보여줄 수 있는 Task Group 이라는 개념이 있습니다. Task Group을 사용하면 그룹화된 Task들이 Graph View에서 다음과 같이 group_1 Task 처럼 보이게 됩니다.

img.png

group_1 Task를 클릭하면 다음처럼 그룹화된 Task들을 볼 수 있습니다.

img_1.png

# 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
  • with 구문과 같이 TaskGroup 인스턴스로 Task Group을 정의합니다.
    • with 구문 내에 정의된 Task Instance들과 의존성은 모두 하나의 Task Group으로 그룹화 됩니다.

TIP

Task Group은 단순히 Web UI에서 그룹화되어서 보이는 것일 뿐, 동작에는 영향을 주거나 별다른 의미는 없습니다.

Last Updated: 3/1/2022, 1:26:42 PM