오늘은 간단한 개념인 Edge Label을 짚고 넘어가볼까 합니다.
1. Edge Label 개념이란 무엇일까요?
: Task 연결에 대한 설명(Comment)입니다.
굉장히 간단합니다. 말 그대로, Task 간의 edge에 있는 comment를 뜻합니다.
바로 실습을 해보도록 하죠.
2. Edge Label 실습 #1
from airflow.utils.edgemodifier import Label
empty_1 = EmptyOperator(
task_id='empty_1'
)
empty_2 = EmptyOperator(
task_id='empty_2'
)
empty_1 >> Label('1과 2사이') >> empty_2
먼저, 라벨을 달려면, airflow.utils.edgemodifier에서 Label을 import 해줘야 합니다.
위 코드처럼 task 2개가 있을 때, flow를 만들어줄 때, 그 사이에 가지고 온 Label() 클래스에 comment를 써주면 됩니다.
그러면, airflow UI에서 봤을 때, 두 task 사이에 있는 edge에 작성한 comment가 보이게 됩니다.
2. Edge Label 실습 #2
from airflow.utils.edgemodifier import Label
empty_2 = EmptyOperator(
task_id='empty_2'
)
empty_3 = EmptyOperator(
task_id='empty_3'
)
empty_4 = EmptyOperator(
task_id='empty_4'
)
empty_5 = EmptyOperator(
task_id='empty_5'
)
empty_6 = EmptyOperator(
task_id='empty_6'
)
empty_2 >> Label('Start Branch') >> [empty_3,empty_4,empty_5] >> Label('End Branch') >> empty_6
해당 코드에서 flow를 봤을 때, 아래와 같은 그래프를 형성할 것입니다.
여기서 분기가 되는 시점이나 모이는 시점에 Label()을 넣는다면 airflow UI에서는 어떻게 보여지게 될까요?
→ 분기되고 모이는 모든 edge에 Label이 붙습니다!
바로 실습을 해보겠습니다.
dags폴더에 dags_empty_with_edge_label.py 라는 파일을 생성해 아래와 같이 작성합니다.
from airflow import DAG
import pendulum
from airflow.operators.empty import EmptyOperator
from airflow.utils.edgemodifier import Label
with DAG(
dag_id ="dags_empty_with_edge_label",
schedule=None,
start_date=pendulum.datetime(2023,8,1,tz="UTC"),
catchup=False
) as dag:
empty_1 = EmptyOperator(
task_id='empty_1'
)
empty_2 = EmptyOperator(
task_id='empty_2'
)
empty_1 >> Label('1과 2사이') >> empty_2
empty_3 = EmptyOperator(
task_id='empty_3'
)
empty_4 = EmptyOperator(
task_id='empty_4'
)
empty_5 = EmptyOperator(
task_id='empty_5'
)
empty_6 = EmptyOperator(
task_id='empty_6'
)
empty_2 >> Label('Start Branch') >> [empty_3,empty_4,empty_5] >> Label('End Branch') >> empty_6
airflow에서 그래프를 확인해보면, 아래와 같습니다.
empty_1과 empty_2 사이에 "1과 2사이"라는 edge_label이 붙었고,
분기가 되는 empty_2에 연결된 후행 task의 모든 edge에 "Start Branch"가 붙었으며,
empty_6로 모이는 선행 task와 연결된 모든 edge에도 "End Branch"라고 라벨이 붙어있습니다.
이상으로, Edge Label의 개념과 사용방법에 대해 알아봤습니다!
'컴퓨터 공부 > 💿 Airflow' 카테고리의 다른 글
[Airflow] Trigger Run 오퍼레이터 (0) | 2023.08.31 |
---|---|
[Airflow] 지원되는 오퍼레이터 보기 (0) | 2023.08.31 |
[Airflow] Task Group (2) | 2023.08.30 |
[Airflow] Trigger Rule (0) | 2023.08.30 |
[Airflow] BaseBranchOperator로 분기처리하기 (0) | 2023.08.30 |