Inflearn brand logo image

인프런 커뮤니티 질문&답변

Idea님의 프로필 이미지
Idea

작성한 질문수

Airflow 마스터 클래스

38강. Task groups 관련 질문

작성

·

22

·

수정됨

0

안녕하세요.

 

Task group 생성 시, task decorator를 활용한 방법과 그렇지 않은 방법 이렇게 두 가지가 있다고 하셨는데,

 

task decorator를 활용한 방법의 경우, docstring에 작성한 내용이 UI에서 보여지고,

task decorator를 활용하지 않은 방법의 경우, tooltip 인자에 입력된 내용이 UI에서 보여지는 것으로 알고 있습니다.

 

그런데 Airflow 3.0.x 버전에서 실제로 실습을 진행해보니 docstring 및 tooltip 인자에 작성한 내용이 아래와 같이 UI 화면에서 보이지 않는 것으로 확인됩니다 ㅠ

 

Airflow 3.0.x 버전 공식 문서를 읽어봐도 강사님 말씀과 동일하게 docstring 및 tooltip을 사용하면 UI 화면에서 보여질 거라고 적혀있는데... 뭐가 문제일까요..?

image.png

 

코드는 강사님이 작성하신 것과 동일한데, 혹시 몰라 제가 작성한 코드도 같이 첨부 드립니다.

import pendulum

# Airflow 3.0 버전부터 아래 경로에서 import
from airflow.sdk import DAG, task, task_group, TaskGroup
from airflow.providers.standard.operators.python import PythonOperator

# Airflow 2.10.5 이하 버전에서 실습 시, 아래 경로에서 import
# from airflow.operators.python import PythonOperator
# from airflow import DAG
# from airflow.decorators import task
# from airflow.decorators import task_group
# from airflow.utils.task_group import TaskGroup

with DAG(
    dag_id = 'dags_python_with_task_group',
    schedule = None,
    start_date = pendulum.datetime(2023, 4, 1, tz = 'Asia/Seoul'),
    catchup = False
) as dag:

    def inner_func(**kwargs):
        msg = kwargs.get('msg') or ''
        print(msg)

    @task_group(group_id = 'first_group')
    def group_1():
        '''
            task_group decorator를 이용한 첫 번째 그룹입니다.
        '''

        @task(task_id = 'inner_function1')
        def inner_func1(**kwargs):
            print('첫 번째 TaskGroup 내 첫 번째 task 입니다.')

        inner_function2 = PythonOperator(
            task_id = 'inner_function2',
            python_callable = inner_func,
            op_kwargs = {'msg': '첫 번째 TaskGroup 내 두 번째 task 입니다.'}
        )

        inner_func1() >> inner_function2

    with TaskGroup(group_id = 'second_group', tooltip = '두 번째 그룹입니다') as group_2:
        '''
            여기에 적은 docstring은 표시되지 않습니다.
        '''

        @task(task_id = 'inner_function1')
        def inner_func1(**kwargs):
            print('두 번째 TaskGroup 내 첫 번째 task 입니다.')
        
        inner_function2 = PythonOperator(
            task_id = 'inner_function2',
            python_callable = inner_func,
            op_kwargs = {'msg': '두 번째 TaskGroup 내 두 번쨰 task 입니다.'}
        )

        inner_func1() >> inner_function2

    # Task Group도 flow 설정 가능
    group_1() >> group_2

답변 1

1

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요. Idea님

네 확인해보니 Idea님이 올리신 내용처럼 3.x 버전으로 올라가면서 tooltip & docstring 내용이 보이지 않는 것 같습니다. 공식 가이드에는 여전히 가능한 것처럼 나와있는 것으로 보아 버그일 가능성이 높아보입니다.

우선 이 내용은 강의 수업노트에 추가해놓을께요.

제보해주셔서 감사합니다 ^-^

Idea님의 프로필 이미지
Idea

작성한 질문수

질문하기