gpt4 book ai didi

go - 使用 Apache Beam 进行内存处理

转载 作者:行者123 更新时间:2023-12-01 22:21:17 25 4
gpt4 key购买 nike

我正在运行我自己的 GRPC 服务器,收集来自各种数据源的事件。服务器是用 Go 开发的,所有事件源都以预定义的格式将事件作为 protobuf 消息发送。
我想要做的是在内存中使用 Apache Beam 处理所有这些事件。
我查看了 Apache Beam 的文档,但找不到可以执行我想要的操作的示例。我不会使用 Kafka、Flink 或任何其他流媒体平台,只是在内存中处理消息并输出结果。
有人可以告诉我开始编写简单流处理应用程序的正确方法的方向吗?

最佳答案

好的,首先,Apache Beam 不是一个数据处理引擎,它是一个 SDK,允许你创建一个统一的管道并在不同的引擎上运行它,比如 Spark、Flink、Google Dataflow 等。 所以,运行一个 Beam 管道您需要利用任何受支持的数据处理引擎或使用 DirectRunner ,它将在本地运行您的管道,但是(!)它有很多限制,并且主要是为了测试目的而开发的。
正如 Beam 中的每个管道一样,必须有一个源转换(有界或无界),它将从您的数据源读取数据。我可以猜测,在您的情况下,您的 GRPC 服务器应该重新传输收集到的事件。因此,对于源转换,您可以使用已经实现的 Beam IO transforms (IO 连接器)或创建您自己的连接器,因为 Beam 中目前没有 GrpcIO 或类似的东西。
关于内存中的处理数据,我不确定我是否完全理解你的意思。它主要取决于使用的数据处理引擎,因为最终,您的 Beam 管道将在实际运行之前转换为 Spark 或 Flink 管道(如果您相应地使用 SparkRunnerFlinkRunner),然后是数据处理引擎将管理管道工作流。大多数现代引擎都尽最大努力将所有处理过的数据保存在内存中,并仅在万不得已时才将其刷新到磁盘上。

关于go - 使用 Apache Beam 进行内存处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63354991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com