操作员如何在气流中定义任务依赖关系>>?



我正在 https://github.com/hgrif/airflow-tutorial 学习Apache Airflow教程,并遇到了定义任务依赖关系的本节。

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目录中models.py定义了 Airflow 的许多高级抽象的行为。如果你愿意,你可以深入研究其他类,但回答你的问题的是BaseOperator类。Airflow 中的所有运算符都继承自 BaseOperator。类的__rshift__方法在设置任务或另一个任务下游的 DAG 的上下文中实现 Python 右移逻辑运算符。

请参阅此处的实现。

最新更新