gpt4 book ai didi

google-cloud-dataflow - 使用 withTemplateCompatibility 的 BigQueryIO 读取性能

转载 作者:行者123 更新时间:2023-12-02 08:03:10 24 4
gpt4 key购买 nike

Apache Beam 2.1.0 存在从 BigQuery 读取的模板管道的错误,这意味着它们只能执行一次。更多详情请点击 https://issues.apache.org/jira/browse/BEAM-2058

Beam 2.2.0 的发布已修复此问题,您现在可以使用 withTemplateCompatibility 选项从 BigQuery 读取数据,您的模板管道现在可以多次运行。

  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())

最佳答案

我怀疑这是由于 withTemplateCompatibility 以禁用 dynamic rebalancing 为代价的。对于此读取步骤。

我预计,只有当您读取少量或中等量的数据,但对其执行非常繁重的处理时,它才会产生重大影响。在这种情况下,请尝试将 Reshuffle.viaRandomKey() 添加到 BigQueryIO.read() 上。它将实现数据的临时副本,但会更好地并行化下游处理。

关于google-cloud-dataflow - 使用 withTemplateCompatibility 的 BigQueryIO 读取性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47755692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com