Apache Beam HTTP 无界源 Python

问题描述

是否可以使用当前版本的 Apache Beam 开发接收 HTTP 消息中数据的无界源? 我的目的是运行一个 HTTP 服务器并将接收到的消息注入到 Beam 管道中。如果可能,是否可以使用现有资源来完成?

解决方法

这是可能的。您可以利用 Splittable DoFn 开发它。 Source 看起来它们将在不久的将来贬值。

从我的角度来看,我正在尝试开发这样一个管道,该管道将使用 Rest API,该 API 在 get 的主体中流式传输 Json 消息并支持多个连接,因此在 API 端分配工作负载,如 Adobe Livestream 或 { {3}}。此行为应在消费者端 (Dataflow) 启用扩展

我的困难在于我无法从这个用例中找出可拆分的限制。流是无限的,并且没有像 Kafka 或字节范围(文件)这样的消息传递代理那样的偏移。我想首先构建元素限制对,例如:(url,buffered reader) 但我认为不能拆分缓冲读取器。

其中一种解决方案可能是根本不提供限制。我正在努力想象管道将如何分配元素从而扩展。