【发布时间】:2019-06-19 10:03:47
【问题描述】:
根据BEAM的programming guide,根据threadsjoin可以实现CoGropByKey或KeyedPCollectionTuple(coockbook)。
没有人谈论这类转换的性能。
我的流程应该非常简单:从 BQ 表 (TableRow) 批量输入行,并通过相同的键将它们与其他 BQ 表中的其他值连接(或“丰富”)。所以最终输出的类型也应该是TableRow。
我想了解将 BEAM 中的 2 个表与 BQ 表连接的最佳做法。
例如,我可以在 BQ 中创建一个视图并替换所有这些管道并执行更有效的连接操作,但我想在代码中处理所有逻辑
在处理 join 操作时,幕后发生了什么?
DirectRunner 是否会对第二个 BQ 表执行 n 次查询以加入所有管道批次(逐项)?还是 BEAM 足够聪明,可以聚合它并对所有批次执行 1 次查询?
Google DataflowRunner 的工作方式是否不同?
除了查看运行时间,我如何查看这个管道的性能?
【问题讨论】:
标签: java google-bigquery google-cloud-dataflow apache-beam