Task依存性を表示するには、次の手順に従います.


前回の授業では、いろいろなOperatorを使ってDAGを直接作りました.
しかし,最後の部分でははっきり説明していないが,スキップした部分がTaskの依存性表現である.
以前に作成したDAGには複雑な数値コピーがないため、>>演算子のみを使用してワークフローを簡単に定義します.
しかし、複雑な依存関係を持つワークフローでは、これらのタスクの方向性をさらに理解する必要があります.
また、実際に実行中のDAGに問題が発生した場合や、特定のTaskを再起動する必要がある場合は、これらの知識も必要です.

Task Dependecy


Bitwise shift operator


最も基本的な方法は、>><<を使用する方法である.
first_task >> [second_task , third_task] 
# [] 를 이용하여 여러 태스크를 한번에 나타낼 수 있다.
third_task << fourth_task
以上のように、数字のコピーを直感的に表示することができます.

set_upstream, set_downstream

set_upstreamset_downstreamの方法を使用して、デジタルコピーを定義することもできる.
first_task.set_downstream([second_task, third_task])
third_task.set_upstream(fourth_task)

cross_downstream


互いにdependencyを有するtaskについては、cross_downstreamを用いてdispendancyを簡単に一度に定義することができる.
数値コピーを動的に定義する必要がある場合にも使用できます.
from airflow.models.baseopeartor import cross_downstream

# [first_task, second_task] >> third_task
# [first_task, second_task] >> fourth_task
cross_downstream(from_tasks=[first_task, second_task], to_tasks=[third_task, fourth_task])

chain


連続するデジタルコピーを定義したい場合は、chainを使うと便利です
from airflow.models.baseoperator import chain

# Replaces first >> second >> third >> fourth
chain(first, second, third, fourth)

# You can also do it dynamically
chain(*[DummyOperator(task_id='op' + i) for i in range(1, 6)])