我应该何时更喜欢批量分析而非交互式分析?

N.N*_*.N. 14 google-bigquery

使用批量查询而不是交互式模式查询的动机是定价,但随着更新的价格变化,不再存在成本差异 - 那么是否还有其他激励(配额,性能,其他......)来使用批量查询?

Jor*_*ani 14

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

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

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

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

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

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