目前使用带有 Python 的 Google Dataflow 进行批处理。这工作正常,但是,我有兴趣在不必处理 Java 的情况下从我的数据流作业中获得更快的速度。使用 Go SDK,我实现了一个简单的管道,它从 Google 存储中读取一系列100-500mb 的textio.Read文件(使用),进行一些聚合并使用结果更新 CloudSQL。正在读取的文件数量可以从几十个到数百个不等。当我运行管道时,我可以从日志中看到文件是串行读取的,而不是并行读取的,因此作业需要更长的时间。使用 Python SDK 执行的相同过程会触发自动缩放并在几分钟内运行多次读取。我已经尝试使用指定工作人员的数量--num_workers=,但是,Dataflow 在几分钟后将作业缩小到一个实例,并且在实例运行时从日志中没有发生并行读取。如果我删除textio.Read并实现自定义 DoFn 以从 GCS 读取,则会发生类似的情况。读取过程仍然串行运行。我知道当前的 Go SDK 是实验性的并且缺少许多功能,但是,我没有在此处找到对并行处理限制的直接参考。Go SDK 的当前版本是否支持 Dataflow 上的并行处理?提前致谢
目前暂无任何回答
- 0 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消