Airflow 파이프라인에서는 요일에 따라 서로 다른 작업을 실행해야 할 때가 많습니다.
예를 들어, 평일에는 데이터 적재 작업을 하고 주말에는 백업 작업만 수행하는 경우죠.
이럴 때 유용하게 사용할 수 있는 것이 바로
👉 BranchDayOfWeekOperator 입니다.
BranchDayOfWeekOperator란?
BranchDayOfWeekOperator는 현재 실행되는 날짜의 요일을 기준으로 분기를 수행하는 오퍼레이터입니다.
특정 요일에는 한 태스크로, 그 외 요일에는 다른 태스크로 작업 흐름을 나눌 수 있습니다.
코드 예시
from airflow.operators.empty import EmptyOperator
from airflow.operators.weekday import BranchDayOfWeekOperator
from default_dag import create_dag
dag = create_dag("BranchDayOfWeekOperator")
# 분기 이후 실행될 태스크
weekday_task = EmptyOperator(
task_id='weekday_task',
dag=dag,
)
weekend_task = EmptyOperator(
task_id='weekend_task',
dag=dag,
)
# 요일 기반 분기 오퍼레이터
branch_task = BranchDayOfWeekOperator(
task_id='branch_by_day',
week_day=['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
follow_task_ids_if_true=['weekday_task'],
follow_task_ids_if_false=['weekend_task'],
use_task_execution_day=True,
dag=dag,
)
# 의존 관계 설정
branch_task >> [weekday_task, weekend_task]
주요 파라미터 설명
| 파라미터 | 설명 |
| week_day | 분기 기준으로 사용할 요일 리스트 ('Monday', 'Friday' 등) |
| follow_task_ids_if_true | 지정된 요일일 때 실행할 태스크 ID |
| follow_task_ids_if_false | 그 외 요일일 때 실행할 태스크 ID |
| use_task_execution_day | True면 DAG의 실행 날짜를 기준으로 판단 |
실행 도식 (ASCII DAG 구조)
+--------------------+
| branch_by_day |
| (Branch Operator) |
+--------------------+
│
┌───────────┴────────────┐
│ │
▼ ▼
+----------------+ +----------------+
| weekday_task | | weekend_task |
| (EmptyOperator)| | (EmptyOperator)|
+----------------+ +----------------+
동작 예시
| 날짜 | 요일 | 실행되는 태스크 |
| 2025-10-13 | 월요일 | weekday_task |
| 2025-10-18 | 토요일 | weekend_task |
| 2025-10-19 | 일요일 | weekend_task |
정리하면
BranchDayOfWeekOperator는 DAG 실행 날짜의 요일을 기준으로
서로 다른 작업 경로를 실행할 수 있는 간단한 분기 오퍼레이터입니다.
평일/주말, 특정 요일별로 다른 작업을 수행해야 할 때 매우 유용합니다.
'컨테이너·워크플로우 자동화 > Airflow로 워크플로우 자동화하기' 카테고리의 다른 글
| Airflow에서 한 DAG이 다른 DAG을 트리거(Trigger)하기 (0) | 2025.10.18 |
|---|---|
| Airflow에서 SubDAG 대신 TaskGroup 사용하기 (0) | 2025.10.18 |
| Airflow에서 날짜 기반 분기 — BranchDateTimeOperator 활용하기 (1) | 2025.10.18 |
| BranchOperator vs BranchPythonOperator 비교 (0) | 2025.10.18 |
| Airflow BranchOperator로 조건 분기 처리하기 (0) | 2025.10.18 |