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

时间:2017-03-13 11:06:27

标签: airflow

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

提前致谢。

2 个答案:

答案 0 :(得分:8)

Airflow使用Xcoms在运营商之间传递数据。

如果流程是操作员A - >;运算符B,然后运算符A必须将值“推”到xcom,并且运算符B必须从A中“拉”出该值,如果它想要读取它。

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

value = context['task_instance'].xcom_pull(task_ids='operator_a', key='key_name') 

操作员A会像这样推送这个值:

context['task_instance'].xcom_push(key_name,value,context['execution_date'])

答案 1 :(得分:0)

也许您指的是GenericTransfer运算符,它有助于在数据之间移动数据?

https://github.com/apache/incubator-airflow/blob/master/airflow/operators/generic_transfer.py