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을 활용하는 데 도움이 되기를 바랍니다!
'개발중 > AirFlow' 카테고리의 다른 글
[Airflow] 🚀 고객사별 병렬 실행 + 내부 순차 작업 처리하기 (0) | 2025.04.24 |
---|---|
[Airflow] 🎯 Airflow에서 사용자별 DAG 접근 제어 + REST API로 계정 생성까지! (0) | 2025.04.21 |
[Airflow] DAG 의 Task 상태 (0) | 2025.04.21 |
[Airflow] DAG 실행 (0) | 2025.04.21 |
[Airflow] DAG Objuect 작성 방법 (0) | 2025.04.21 |
댓글