Google cloud dataflow 谷歌云数据流是否围绕IO绑定流程进行优化?

Google cloud dataflow 谷歌云数据流是否围绕IO绑定流程进行优化?,google-cloud-dataflow,Google Cloud Dataflow,我有一个Python beam.DoFn,它正在将一个文件上传到互联网。此过程使用100%的一个内核约5秒,然后继续上载文件2-3分钟(在上载过程中使用非常小的cpu) 数据流是否足够聪明,可以通过在单独的线程/进程中旋转多个DoFn来优化此问题?是的,数据流将使用python多处理运行多个DoFn实例 但是,请记住,如果使用GroupByKey,则ParDo将连续处理特定键的元素。虽然您仍然可以在worker上实现并行性,因为您同时处理多个键。但是,如果所有数据都在一个“热键”上,则可能无法实

我有一个Python beam.DoFn,它正在将一个文件上传到互联网。此过程使用100%的一个内核约5秒,然后继续上载文件2-3分钟(在上载过程中使用非常小的cpu)


数据流是否足够聪明,可以通过在单独的线程/进程中旋转多个DoFn来优化此问题?

是的,数据流将使用python多处理运行多个DoFn实例

但是,请记住,如果使用GroupByKey,则ParDo将连续处理特定键的元素。虽然您仍然可以在worker上实现并行性,因为您同时处理多个键。但是,如果所有数据都在一个“热键”上,则可能无法实现良好的并行性

您是否在批处理管道中使用TextIO.Write?我相信这些文件是在本地准备的,然后在处理主DoFn后上载。也就是说,在完成PCollection之前不会上载文件,并且不会接收更多元素

我认为它不会在您生成元素时输出文件