【问题标题】:When should I prefer batch analysis over interactive analysis?什么时候我应该更喜欢批处理分析而不是交互式分析?
【发布时间】:2014-05-04 10:55:45
【问题描述】:

使用 batch 查询而不是 interactive 模式查询的动机是定价,但随着新的价格变化,不再存在成本差异 - 所以还有其他动机(配额、性能、其他...) 使用 batch 查询?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    随着价格的变化,使用批量优先有两个主要原因:

    • 它可以让您将作业排队。
    • 它允许您以不影响高优先级查询的方式运行低优先级查询。

    有许多影响交互式(即非批处理)查询的速率限制 - 您最多可以同时运行 20 个,有并发字节限制和“大型查询”限制。如果达到这些限制,查询将立即失败。这是因为 BigQuery 假定您需要立即运行交互式查询。

    当您使用批处理时,如果您达到速率限制,查询将排队并稍后重试。仍然有类似的速率限制,但它们与交互式速率限制分开运行,因此您的批量查询不会影响您的交互式查询。

    一个示例可能是您每天或每小时运行定期查询以构建仪表板。也许您有 100 个要运行的查询。如果您尝试以交互方式一次性运行它们,一些会因为并发速率限制而失败。此外,您不一定希望这些查询干扰您从 BigQuery Web UI 手动运行的其他查询。因此,您可以以批处理优先级运行仪表板查询,而其他查询将以交互方式正常运行。

    还有一点需要注意的是,批处理查询的调度已经改变,因此平均等待时间应该会大大降低。批量查询应该在一两分钟内开始,而不是等待半小时左右(取决于排队等)。

    【讨论】:

    • 实际上,当我组成新仪表板并需要添加定期查询时,如何估计我的查询是否会达到并发字节限制?
    • 实际上,很难估计何时会达到并发字节限制。请注意,我们会定期遇到一个错误,即 shuffle(JOIN EACH 和 GROUP EACH)查询会卡住,这可能会导致并发字节速率限制受到影响。这是我们正在努力解决的 0 优先级问题。
    • 谢谢@Jordan Tigani。 row_number() over (partition by) 是否遇到相同的随机播放问题?我猜它是在幕后作为小组执行的,对吧?
    猜你喜欢
    • 2022-01-08
    • 2011-05-10
    • 2017-12-21
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2011-04-01
    相关资源
    最近更新 更多