java - 如何控制有界源 split ?

标签 java google-cloud-dataflow gcloud

我有一个数据流,其中输入是从数据库读取的大量数据。我想拆分此查询,并在作业启动时从多个主机执行它。据我所知,BoundedSource 无法直接控制输入拆分。最接近的是 splitIntoBundles,这基本上意味着我必须开始一次非常昂贵的读取,并希望 Dataflow 取消它并使用我定义的包分割。这看起来相当疯狂,所以我希望有一种更好的方法来预定义可以在任何远程工作人员上运行的输入拆分。

最佳答案

经过大量研究,没有办法控制单个reader的分割并行度。我的解决方案是创建多个读取器,让每个读取器读入自己的 PCollection,然后将多个 PCollection 扁平化为单个 PCollection。

关于java - 如何控制有界源 split ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149577/

相关文章:

java - 设置 TextArea 搜索输出的格式

java - 以数组形式返回 int 的质因数作为输入

java - 返回列表或通过引用修改

google-cloud-dataflow - 在 Cloud Dataflow 中使用 Beam SDK

google-cloud-dataflow - Apache Beam - org.apache.beam.sdk.util.UserCodeException : java. sql.SQLException:无法创建 PoolableConnectionFactory(不支持方法)

python - 如何使用 Cloud Build 从 monorepo 部署多个功能,但一次只能部署一个

node.js - GCP 应用引擎 : Random pending requests for static assets (css/images)

java - 在扩展 JPanel 的类中使用多个面板

mongodb - 在 Apache Beam 中读取具有无限 PCollections 的 MongoDB changeStream

ssh - gcloud计算ssh返回权限被拒绝(公钥)