개발중/AirFlow
Apache Airflow에서의 Task Group 활용법
Binsoo
2025. 4. 24. 11:02
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
반응형