首页 > 解决方案 > Apache Beam 是特征预处理的正确工具吗?

问题描述

所以这是一个有点奇怪的问题,因为它与如何使用该工具无关,而是更多关于为什么使用它。

我正在部署一个模型并考虑Apache-beam使用它的 python API 来运行特征处理任务。文档非常庞大且复杂,但我经历了大部分,甚至构建了一个小型工作管道,但仍然不清楚这是否适合我。

我需要的一个例子如下:

Input data structure

ID | Timestamp | category

output needed

category | category count for last 30 minutes (feature example)

此过程需要每 5 分钟运行一次并更新计数。

===> 我不明白的是,如果 apache 可以每 5 分钟运行一次这个管道,读取生成的任何新输入数据并更新它上次运行的计数。如果是这样,有人可以指出我正确的方向吗?

谢谢!

标签: apache-beam

解决方案


当您手动运行 Beam 管道时,它预计只会启动一次。然后它可以是有界(批处理)或无界(流式)管道。在第一种情况下,它将在您处理完所有有限数量的数据后停止,在第二种情况下,它将持续运行并期待新数据的到来(直到它将手动停止)。

通常,管道的类型取决于您拥有的数据源(Beam IO 连接器)。例如,如果您从文件中读取,则默认情况下,假定它是有界源(文件数量有限),但如果您希望有更多新文件到达并想要读取,它也可能是无界源它们在同一管道中。

此外,您可以使用Apache Airflow(或只是 unix crontab)等自动化工具定期运行批处理管道。因此,这完全取决于您的需求和类型或数据源。如果您可以分享数据管道的更多详细信息,我可能会给出更具体的建议——数据源和环境的类型、输入和输出结果的示例、输入数据的更新频率等等。


推荐阅读