如何控制有界源分裂?

How to control bounded source split?

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

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