首页 > 解决方案 > 想要并行运行 Apache Beam Pipeline

问题描述

我的问题陈述是

1.需要从多个第三方源获取数据/执行一些操作/将数据存储在某个位置

2.我需要为每个源创建一个专用的Beam管道

由于我是 Beam 新手,我的问题是

1. 如果我为不同的第三方源创建单独的管道,会好还是会导致一些问题?

2. 如果设计是正确的,那么如果我在单机上使用 run beam-runners-direct-java 运行,它会像并行处理一样吗?

标签: javaapache-beam

解决方案


Beam 有一个支持许多不同来源的最终计划(最终它们甚至可以是跨语言的)。

对于您的问题,单台机器上并行的多个 beam-runner-direct-java 不会造成问题。事实上,所有验证测试都使用直接运行程序,并且测试确实并行运行。

有一点不清楚的是,您必须创建多个管道,每个第 3 方源一个的主要原因是什么?如果原因是让事情并行运行以获得更高的吞吐量,我(有偏见的观点)认为这不是一个好主意。从长远来看,即使我们引入了功能优化并行源,您也无法从 opt 中受益。


推荐阅读