2017-05-24 70 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完成並且不會收到更多元素。

我不認爲它流出的文件,因爲你正在生產的元素。

相關問題