Apache Beam 2.1.0有一个从BigQuery读取的模板管道错误,这意味着它们只能执行一次。此处提供更多详细信息
https://issues.apache.org/jira/browse/BEAM-2058
这在Beam 2.2.0版本中已得到修复,您现在可以使用
与模板兼容性
选项,现在可以多次运行模板管道。
pipeline
.apply("Read rows from table."
, BigQueryIO.readTableRows()
.withTemplateCompatibility()
.from("<your-table>")
.withoutValidation())
这个实现似乎给BigQueryIO读取操作带来了巨大的性能成本,我现在有了运行的批处理管道
8-11分钟
现在持续服用
45-50分钟
完成。两条管道之间的唯一区别是
.withTemplateCompatibility()
.
我正在努力理解性能大幅下降的原因,以及是否有任何方法可以改进它们。
谢谢
解决方案:
基于jkff的输入。
pipeline
.apply("Read rows from table."
, BigQueryIO.readTableRows()
.withTemplateCompatibility()
.from("<your-table>")
.withoutValidation())
.apply("Reshuffle", Reshuffle.viaRandomKey())