处理不由DataFlow分发,而是由一个节点处理。
我创建了以下程序并验证它是否可以正常使用小数据。
从BigQuery读取数据→Dofn处理→组合处理→展平处理→组合处理→展平处理→将数据写入Bigquery。
接下来,我将测试大数据,它在多节点并行环境中工作。
在Dataflow启动时将numWorkers
和--autoscalingAlgorithm = NONE
指定为可选参数。
由于执行需要很长时间,我将进行调查。
顺便说一句,如果我没有指定启动选项numWorkers
和--autoscalingAlgorithm = NONE
,即自动缩放,则只会启动一个节点。
Dataflow认为根据波束成语编写程序将以“良好”的方式分发给许多节点,但它的工作方式与预期不同。
它如何运作良好?
我做的!好极了!谢谢!!
p.apply("ReadFromBQ",BigQueryIO.readTableRows().fromQuery(query).usingStandardSql().withTemplateCompatibility())
.apply("shuffle as expressly", Reshuffle.viaRandomKey())
.apply("convert table row", ........