apache-beam - 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 分钟运行一次这个管道,读取生成的任何新输入数据并更新它上次运行的计数。如果是这样,有人可以指出我正确的方向吗?
谢谢!
解决方案
当您手动运行 Beam 管道时,它预计只会启动一次。然后它可以是有界(批处理)或无界(流式)管道。在第一种情况下,它将在您处理完所有有限数量的数据后停止,在第二种情况下,它将持续运行并期待新数据的到来(直到它将手动停止)。
通常,管道的类型取决于您拥有的数据源(Beam IO 连接器)。例如,如果您从文件中读取,则默认情况下,假定它是有界源(文件数量有限),但如果您希望有更多新文件到达并想要读取,它也可能是无界源它们在同一管道中。
此外,您可以使用Apache Airflow(或只是 unix crontab)等自动化工具定期运行批处理管道。因此,这完全取决于您的需求和类型或数据源。如果您可以分享数据管道的更多详细信息,我可能会给出更具体的建议——数据源和环境的类型、输入和输出结果的示例、输入数据的更新频率等等。
推荐阅读
- kubernetes - 如何更改我的秘密在我的应用程序的 pod 中结束的路径?
- gun - 如何使用 GUDB 上传和下载媒体文件?
- angular - 角度表 - 列不是计算列的总计/汇总。只有在输入文本框中输入值时,总计才能正常工作
- qt - 使单击的 QListWidgetItem 无边框
- python - Python - 字典列表到 redis 列表
- python - 使用网络抓取从 Twitter 下载搜索结果
- javascript - 如何在下面的方法中用 log.error 替换 printStackTrace
- python - Pyinstaller 无法执行脚本 pyi_rth_pkgres
- machine-learning - LUIS 中匹配冲突的实体
- kubernetes - PersistentVolumeClaim 已删除,但我可以在 kube-controller-manager 中看到 pvc 配置失败的日志