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