运营商之间的气流和数据传输

ozw*_*5rd 7 airflow

我是气流新手,对Airflow及其处理器有疑问.当处理器产生输出时,该输出如何在输入中移动到下一个处理器?有一个名为nifi的软件,它将中间输出存储到流文件中,afaik在气流中没有这样的东西.那么这是怎么发生的呢?

提前致谢.

jhn*_*lvr 9

Airflow使用Xcom在运营商之间传递数据.

如果流程是运算符A - >运算符B,则运算符A必须将值"推"到xcom,并且运算符B必须从A中"拉"出该值,如果它想要读取它.

A下游的任何运营商都可以访问通过以下方式推送到Xcom的任何值:

value = context['task_instance'].xcom_pull(task_ids='operator_a', key='key_name') 
Run Code Online (Sandbox Code Playgroud)

运算符A会像这样推送这个值:

context['task_instance'].xcom_push(key_name,value,context['execution_date'])
Run Code Online (Sandbox Code Playgroud)