gpt4 book ai didi

google-bigquery - 数据流到 BigQuery 配额

转载 作者:行者123 更新时间:2023-12-01 10:36:55 29 4
gpt4 key购买 nike

对于这个特定问题,我发现了几个相关问题,但 Google 团队没有给出明确的答案:

写入 BigQuery 的 Cloud DataFlow 作业是否限制为每表每秒 10 万行的 BigQuery 配额(即 BQ 流限制)?

google dataflow write to bigquery table performance

Cloud DataFlow performance - are our times to be expected?

编辑:
主要动机是找到一种方法来预测各种输入大小的运行时间。

我设法运行显示通过 Dataflow 监控 UI 处理的 > 180K 行/秒的作业。但我不确定这是否会以某种方式在插入表时受到限制,因为作业运行时间比简单计算慢了大约 2 倍(500 毫米行/180k 行/秒 = 45 分钟,实际上花了将近 2 小时)

最佳答案

从您的消息中,听起来您正在批量执行管道,而不是流式传输模式。

在批处理模式 中,在 Google Cloud Dataflow 服务上运行的作业不使用 BigQuery 的流式写入。相反,我们将要导入的所有行写入 GCS 上的文件,然后调用 BigQuery load" job 。请注意,这会降低您的成本(加载作业比流式写入便宜)并且整体效率更高(BigQuery 执行批量加载比执行每行导入更快)。权衡是在整个作业成功完成之前,BigQuery 中没有可用的结果。

加载作业不受特定行数/秒的限制,而是受 daily quotas 的限制。

在流式模式 中,Dataflow 确实使用了 BigQuery 的流式写入。在这种情况下,每秒 100,000 行的限制确实适用。如果超过该限制,Dataflow 将收到 quota_exceeded 错误,然后将重试失败的插入。此行为将有助于消除暂时超出 BigQuery 配额的短期峰值;如果您的管道在很长一段时间内超过配额,则此失败并重试策略最终将充当一种背压形式,从而减慢您的管道速度。

——

至于为什么您的工作需要 2 小时而不是 45 分钟,您的工作将有多个连续进行的阶段,因此使用最快阶段的吞吐量并不是估算端到端运行时间的准确方法。例如,BigQuery 加载作业在 Dataflow 完成将所有行写入 GCS 之后才会启动。您的费率似乎合理,但如果您怀疑性能下降,请跟进。

关于google-bigquery - 数据流到 BigQuery 配额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808399/

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