为什么气流不是数据流解决方案?



了解气流,并想了解为什么它不是一个数据流解决方案。

https://airflow.apache.org/docs/apache-airflow/1.10.1/超越地平线

气流不是数据流解决方案。任务不移动数据一个到另一个(尽管任务可以交换元数据!)

不确定它是什么意思任务不移动数据从一个到另一个。所以我不能有像提取数据>>计算A>>使用前一步的数据计算B>>另一个步骤取决于前一个任务的结果>>...

?此外,我把下面的内容读了几遍,仍然不明白。静态和动态工作流的例子是什么?

工作流通常是静态的或缓慢变化的。您可以将工作流中的任务结构看作比数据库结构稍微动态一些的结构。气流工作流程预计从一次运行到下一次运行看起来相似,这允许工作单元的清晰度和连续性。

有人可以提供一个替代的解释或例子,可以走过为什么气流不是一个很好的数据流解决方案?

不确定任务不将数据从一个移动到另一个是什么意思。所以我不能有像提取数据>>计算A>>使用前一步的数据计算B>>另一个步骤取决于前一个任务的结果>>...

?

你可以使用XCom(交叉通信)来使用前一步的数据,但要记住,XCom是存储在元数据数据库中的,这意味着你不应该使用XCom来保存正在处理的数据。你应该使用XCom来保存对数据的引用(例如:S3/HDFS/GCS路径,BigQuery表等)。

所以在《Airflow》中,你可以使用XCom在任务之间传递引用数据,而不是在任务之间传递数据。气流是一个编排器,繁重的任务应该卸载到其他数据处理集群(可以是Spark集群,BigQuery等)。

当处理流数据时,您有一个恒定通量的信息。您的任务需要不断地接收,处理和输出数据从/到其他任务没有结束

气流不是用来处理这种情况的。它是一个适合处理的工具。理想情况下表示一段时间间隔的数据(如一天/一周/一个月的价值)。这意味着在某个时刻你完成了当前批处理,任务结束.

你描述的工作流在气流中是完全可能的,但它需要你的任务进行通信,存储和读取中间值。

最新更新