目前使用 Dataflow 從 BigQuery 讀取表數據,并使用一定數量的分片寫入 Cloud Storage。//Read Main InputPCollection<TableRow> input = pipeline.apply("ReadTableInput", BigQueryIO.readTableRows().from("dataset.table"));// process and write filesinput.apply("ProcessRows", ParDo.of(new Process()) .apply("WriteToFile", TextIO.write() .to(outputFile) .withHeader(HEADER) .withSuffix(".csv") .withNumShards(numShards));為了管理文件大小,我們估計了將文件保持在一定大小所需的分片總數。有沒有辦法代替設置分片數量,設置文件大小并讓分片動態?
1 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
根據設計,這是不可能的。如果您深入研究 Beam 的核心,您可以通過編程方式定義一個執行圖,然后運行它。ParDo
該過程在同一節點或多個節點/VM 上是大規模并行的(意味著“并行執行”)。
這里的分片數量只是并行工作以寫入文件的“寫入器”的數量。然后PCollection將被拆分給所有worker寫入。
大小變化很大(例如消息的大小、文本編碼、壓縮與否以及壓縮因子……),Beam 不能依賴它來構建其圖形。
添加回答
舉報
0/150
提交
取消