개발중/AirFlow

Apache Airflow에서의 Task Group 활용법

Binsoo 2025. 4. 24.
728x90
반응형

Apache Airflow는 복잡한 데이터 워크플로우를 자동화하는 데 매우 유용한 도구입니다.

이 글에서는 Airflow의 Task Group을 효과적으로 활용하는 방법에 대해 알아보겠습니다.

 

1. Task Group이란?

Task Group은 여러 태스크를 논리적으로 묶어주는 역할을 합니다. 이를 통해 복잡한 워크플로우를 더 작은 단위로 나누어 관리할 수 있습니다. Task Group 내의 태스크들은 순차적 또는 병렬로 실행될 수 있으며, >> 또는 >>> 연산자를 사용하여 태스크 간의 종속성을 정의할 수 있습니다.

 

2. Task Group의 사용 방법

Step 1: TaskGroup 객체 생성

여기서 dag은 이미 정의된 DAG 객체입니다.

 

from airflow.models import TaskGroup
tg = TaskGroup('my_task_group', dag=dag)

 

Step 2: 태스크 추가

DummyOperator는 실제 작업을 수행하지 않고 태스크의 흐름을 테스트할 때 주로 사용됩니다.

 

task1 = DummyOperator(task_id='task1', group=tg)
task2 = DummyOperator(task_id='task2', group=tg)

 

Step 3: 태스크 간의 종속성 정의

이 구문은 task1이 완료된 후 task2가 실행되도록 설정합니다.

 

task1 >> task2

 

3. Task Group의 장점

  • 유연성: 태스크들을 그룹 단위로 묶어 관리할 수 있어, 복잡한 워크플로우를 더 쉽게 설계할 수 있습니다.
  • 재사용성: 동일한 Task Group을 여러 DAG에서 재사용할 수 있어 코드 중복을 줄일 수 있습니다.
  • 가독성: 논리적으로 관련된 태스크들을 그룹화하여 워크플로우의 가독성을 높일 수 있습니다.

 

4. 실제 예제

다음은 Task Group을 활용한 간단한 예제입니다.

 

from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.models import TaskGroup

# DAG 객체 생성
dag = DAG('my_dag', start_date=days_ago(2))

# TaskGroup 객체 생성
tg = TaskGroup('my_task_group', dag=dag)

# TaskGroup에 태스크 추가
task1 = DummyOperator(task_id='task1', group=tg)
task2 = DummyOperator(task_id='task2', group=tg)

# 태스크 간의 종속성 정의
task1 >> task2

 

결론

Task Group을 활용하면 Airflow에서의 작업 관리가 더욱 체계적이고 효율적으로 이루어질 수 있습니다. 복잡한 워크플로우를 더 작은 단위로 나누어 관리함으로써, 유지보수와 확장이 용이해집니다. 이 글이 여러분이 Airflow의 Task Group을 활용하는 데 도움이 되기를 바랍니다!



728x90
반응형

댓글