java - 想要并行运行 Apache Beam Pipeline
问题描述
我的问题陈述是
1.需要从多个第三方源获取数据/执行一些操作/将数据存储在某个位置
2.我需要为每个源创建一个专用的Beam管道
由于我是 Beam 新手,我的问题是
1. 如果我为不同的第三方源创建单独的管道,会好还是会导致一些问题?
2. 如果设计是正确的,那么如果我在单机上使用 run beam-runners-direct-java 运行,它会像并行处理一样吗?
解决方案
Beam 有一个支持许多不同来源的最终计划(最终它们甚至可以是跨语言的)。
对于您的问题,单台机器上并行的多个 beam-runner-direct-java 不会造成问题。事实上,所有验证测试都使用直接运行程序,并且测试确实并行运行。
有一点不清楚的是,您必须创建多个管道,每个第 3 方源一个的主要原因是什么?如果原因是让事情并行运行以获得更高的吞吐量,我(有偏见的观点)认为这不是一个好主意。从长远来看,即使我们引入了功能优化并行源,您也无法从 opt 中受益。
推荐阅读
- python - 如何用另一个数据框的值过滤掉一个数据框并根据出现次数收集统计信息?
- javascript - 如何在不使用原始 Javascript 重定向的情况下发布表单?
- python - 如何从 Django Request 对象中提取路径参数?
- sql - SQL 查询:多重挑战
- c# - ASP.NET MVC - 从 webConfig 更改 appsettings 标记位置
- python - 熊猫 isin() 返回全部错误
- graalvm - 我如何判断 - 在标准 Java 程序中 - 我是否在 GraalVM 中运行?
- c++ - 单表达式成员函数指针
- c++ - 我无法得到我想要的正确输出,而且每次都会改变答案
- docker - 在 cronjob k8s 中运行容器