inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Airflow 마스터 클래스

38강. Task groups 관련 질문

60

Idea

작성한 질문수 23

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

python 데이터-엔지니어링 airflow

답변 1

1

김현진

안녕하세요. Idea님

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

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

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

pykrx 회원제 전환으로 인한 실습 불가

0

114

2

수료증 발급

0

84

3

에러 발생 관련 질문드립니다.

0

83

2

vscode 작업화면에 오류가 발생하지 않습니다.

0

69

2

plugins 폴더 생성

0

76

2

WSL에서 git push 가 안되요 ㅠ

0

115

2

chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.

0

67

2

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

0

738

2

설치중인데 venv를 꼭 써야할까요?

0

126

2

설치 버전 관련 질문입니다.

0

68

1

우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?

0

62

1

DAG 만들기 중 airflow 패키지 로드 에러

0

106

2

3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!

0

95

3

task_id 사용법이 뭔가 바뀐 것 같습니다.

0

76

3

email operator 오류 관련

0

66

2

plugins 폴더 관련

0

100

2

bash operator 관련 문의입니다

0

78

3

스케쥴러 - DAG 파싱 부하 줄이는 과정 질문

0

79

2

Dags refresh 주기 관련 질문

0

125

2

wsl 관련 질문입니다.!

0

75

2

macOS에서 docker 설치

0

94

2

템플릿 변수에 대한 오류

0

61

2

custom_image 디렉토리 문의드립니다.

0

54

2

ETL 인터뷰 관련 문의

0

103

2