如何解决在BigQuery统一定价中,如何在不同的并发用户之间共享购买的广告位?
假设已购买500个插槽,则user1启动一个使用所有500个插槽的BigQuery查询。在查询处理的中间,user2启动另一个查询,该查询将需要200个插槽。问题基本上是一种调度和共享的问题:如何在用户之间共享插槽。例如,来自user2的查询将等待释放插槽 从user1查询完成之后,还是至少在处理期间需要较少的插槽之后?还是来自user2的查询甚至在来自user1的查询完成之前以及在其处理过程中需要较少的插槽之前就抢占了一些执行插槽,从而有效地挂起/中断了user1的某些执行“线程”并将已保存的插槽重新分配给user2?
一个相关的问题是,无论使用哪种共享算法,是否都存在一种方法来限制用户在其查询执行中要求提供的插槽数量?
谢谢。
解决方法
关于插槽管理和分配,您有一个很好的描述here。总之,有两件事要知道:
- 插槽分配是根据each query step计算出来的(您可以查看查询计划中的步骤,以了解它,每个计划的持续时间以及更多时间)
- 所有查询之间都有一个插槽的公平使用分配。
因此,您的query2只需等待执行计划中步骤的结束,然后才能获得一些空位并开始。
关于插槽分配,您只能在项目上分配插槽,而不能按用户分配。您可以选择type of use for the slots (查询,管道,ML_EXTERNAL)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。