2017-05-24 69 views
-2

我有一个Python beam.DoFn正在上传文件到互联网。该过程使用一个核心的100%达到〜5秒,然后继续上传2-3分钟的文件(并在上载过程中使用非常小的一部分cpu)。Google Cloud Dataflow是否围绕IO绑定进程进行优化?

DataFlow是否足够聪明,可以通过在单独的线程/进程中启用多个DoFns来优化?

回答

0

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

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

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

我不认为它流出的文件,因为你正在生产的元素。

相关问题