目前使用帶有 Python 的 Google Dataflow 進(jìn)行批處理。這工作正常,但是,我有興趣在不必處理 Java 的情況下從我的數(shù)據(jù)流作業(yè)中獲得更快的速度。使用 Go SDK,我實現(xiàn)了一個簡單的管道,它從 Google 存儲中讀取一系列100-500mb 的textio.Read文件(使用),進(jìn)行一些聚合并使用結(jié)果更新 CloudSQL。正在讀取的文件數(shù)量可以從幾十個到數(shù)百個不等。當(dāng)我運(yùn)行管道時,我可以從日志中看到文件是串行讀取的,而不是并行讀取的,因此作業(yè)需要更長的時間。使用 Python SDK 執(zhí)行的相同過程會觸發(fā)自動縮放并在幾分鐘內(nèi)運(yùn)行多次讀取。我已經(jīng)嘗試使用指定工作人員的數(shù)量--num_workers=,但是,Dataflow 在幾分鐘后將作業(yè)縮小到一個實例,并且在實例運(yùn)行時從日志中沒有發(fā)生并行讀取。如果我刪除textio.Read并實現(xiàn)自定義 DoFn 以從 GCS 讀取,則會發(fā)生類似的情況。讀取過程仍然串行運(yùn)行。我知道當(dāng)前的 Go SDK 是實驗性的并且缺少許多功能,但是,我沒有在此處找到對并行處理限制的直接參考。Go SDK 的當(dāng)前版本是否支持 Dataflow 上的并行處理?提前致謝
- 0 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消