Airflow 气流在任务之间传输数据,而不在阶段之间存储数据

Airflow 气流在任务之间传输数据,而不在阶段之间存储数据,airflow,apache-airflow-xcom,Airflow,Apache Airflow Xcom,我想知道如何在任务之间传输数据,而不在任务之间存储数据。 附件一可以找到任务的流程。现在,我将每个任务的输出csv文件存储为本地机器中的一个文件,并再次获取该csv文件作为下一个任务的输入。我想知道是否有其他方法可以在任务之间传递数据,而不必在每个任务之后存储数据。我研究了一下,发现了xcom。我想确定xcom是否是实现这一目标的正确方法,还是我错了。我找不到任何实际的例子。感谢您的帮助,因为我只是几天内的新手简短的回答是否定的,任务要求数据在转移到下一个任务之前处于静止状态。Xcom最适合于在

我想知道如何在任务之间传输数据,而不在任务之间存储数据。
附件一可以找到任务的流程。现在,我将每个任务的输出csv文件存储为本地机器中的一个文件,并再次获取该csv文件作为下一个任务的输入。我想知道是否有其他方法可以在任务之间传递数据,而不必在每个任务之后存储数据。我研究了一下,发现了xcom。我想确定xcom是否是实现这一目标的正确方法,还是我错了。我找不到任何实际的例子。感谢您的帮助,因为我只是几天内的新手

简短的回答是否定的,任务要求数据在转移到下一个任务之前处于静止状态。Xcom最适合于在任务(文件目录、对象名等)之间共享的短字符串。当前在任务之间将数据存储在csv文件中的流程是运行流程的最佳方式。

XCom用于共享一些小信息,如sql表的len、任何特定值或类似信息。它不是为共享数据帧而设计的(数据帧可能很大),因为共享的信息写在元数据数据库中


因此,您要么继续将csv导出到您的计算机(或将其上传到某个地方),以便在下一个运营商中读取,要么将运营商合并为一个运营商。

Hi@Javier López Tomás,感谢您对此的评论。我知道在任务之间存储csv文件是实现这一点的一种方法。您还提到了组合运算符-这到底意味着什么?这是否意味着将多个任务合并为一个任务?谢谢,不过这取决于您使用的任务类型。如果它们是PtyhonOperator,您可以轻松地将其中一些的代码组合成一个操作符(1个任务)。无论如何,如果你正在失去可读性,这可能不值得,最好还是保持你最初的策略谢谢@Javier López Tomás!现在很清楚了,如果可能的话,你能在这里帮我一下吗?[我找不到任何替代品。