在BigQuery统一费率定价中,不同并发用户之间如何共享购买的插槽



假设已经购买了500个插槽,user1将启动一个使用所有500个插槽的BigQuery查询。在查询处理的中间,用户2启动另一个查询,比如说,需要200个插槽。这个问题基本上是一个调度和共享问题:如何在用户之间共享插槽。例如,来自user2的查询会等待插槽释放吗在来自user1的查询完成之后,或者至少在处理过程中需要更少的插槽之后?或者,来自user2的查询甚至在来自user1的查询完成之前,以及在其处理过程中需要更少的时隙之前,是否会占用一些时隙来执行,从而有效地暂停/中断一些执行;线程";对于user1,并将保存的插槽重新分配给user2?

一个相关的问题是,无论使用哪种共享算法,是否有办法限制用户在执行查询时对插槽数量的要求?

谢谢。

关于插槽管理和调度,您在这里有一个很好的描述。总之,有两件事需要知道:

  • 插槽调度是在每个查询步骤上计算的(您可以查看查询计划中的步骤,了解它,每个步骤的持续时间以及更多(
  • 在所有查询之间都有一个公平使用的插槽调度

因此,query2只需等待执行计划中的步骤结束,就可以获得一些插槽并启动。

关于插槽分配,您只能在项目中分配插槽,而不能按用户分配。您可以选择插槽的使用类型(QUERY、PIPELINE、ML_EXTERNAL(

最新更新