【发布时间】:2014-05-04 10:55:45
【问题描述】:
使用 batch 查询而不是 interactive 模式查询的动机是定价,但随着新的价格变化,不再存在成本差异 - 所以还有其他动机(配额、性能、其他...) 使用 batch 查询?
【问题讨论】:
标签: google-bigquery
使用 batch 查询而不是 interactive 模式查询的动机是定价,但随着新的价格变化,不再存在成本差异 - 所以还有其他动机(配额、性能、其他...) 使用 batch 查询?
【问题讨论】:
标签: google-bigquery
随着价格的变化,使用批量优先有两个主要原因:
有许多影响交互式(即非批处理)查询的速率限制 - 您最多可以同时运行 20 个,有并发字节限制和“大型查询”限制。如果达到这些限制,查询将立即失败。这是因为 BigQuery 假定您需要立即运行交互式查询。
当您使用批处理时,如果您达到速率限制,查询将排队并稍后重试。仍然有类似的速率限制,但它们与交互式速率限制分开运行,因此您的批量查询不会影响您的交互式查询。
一个示例可能是您每天或每小时运行定期查询以构建仪表板。也许您有 100 个要运行的查询。如果您尝试以交互方式一次性运行它们,一些会因为并发速率限制而失败。此外,您不一定希望这些查询干扰您从 BigQuery Web UI 手动运行的其他查询。因此,您可以以批处理优先级运行仪表板查询,而其他查询将以交互方式正常运行。
还有一点需要注意的是,批处理查询的调度已经改变,因此平均等待时间应该会大大降低。批量查询应该在一两分钟内开始,而不是等待半小时左右(取决于排队等)。
【讨论】: