私はApache Airflowチュートリアル https://github.com/hgrif/airflow-tutorial を実行していて、タスクの依存関係を定義するためのこのセクションに遭遇しました。
with DAG('airflow_tutorial_v01',
default_args=default_args,
schedule_interval='0 * * * *',
) as dag:
print_hello = BashOperator(task_id='print_hello',
bash_command='echo "hello"')
sleep = BashOperator(task_id='sleep',
bash_command='sleep 5')
print_world = PythonOperator(task_id='print_world',
python_callable=print_world)
print_hello >> sleep >> print_world
私を混乱させる線は
print_hello >> sleep >> print_world
Pythonで>>はどういう意味ですか?私はビット演算子を知っていますが、ここのコードに関連付けることはできません。
Airflowはワークフローを有向非循環グラフとして表します。ワークフローとは、並列または順次に実行する必要がある任意の数のタスクです。 「>>」は、別のタスクの下流にタスクを設定するためのAirflow構文です。
Incubator-airflowプロジェクトリポジトリに分けて、airflow
ディレクトリのmodels.py
は、Airflowの高レベルの抽象化の多くの動作を定義します。必要に応じて他のクラスを掘り下げることができますが、質問に答えるのはBaseOperatorクラスです。 Airflowのすべてのオペレーターは、BaseOperatorから継承します。 BaseOperatorクラスの__rshift__
メソッドは、タスクまたは別のDAGダウンストリームを設定するコンテキストでPython右シフト論理演算子を実装します。
実装 ここ を参照してください。