2016-06-21 91 views

回答

1

您可以在Redshift中使用查询队列来限制一组用户查询对其他用户查询的影响。它似乎被记忆分裂,但它应该能够做到你想要的。

延伸阅读:Defining Query Queues

4

不,这是不可能通过查询的数量也不是CPU时间量来限制用户。

可能是因为用户占用资源,或者是由于希望限制猖獗的任务(如仪表板提出太多请求并因此影响其他用户)而提出的。

几个选项:

写自己限制器

STL_QUERY系统表包含红移处理的所有查询,包括用户ID,开始时间和结束时间的列表。

您可以编写一个查询此表的应用程序来确定用户是否超过了多个查询或总CPU时间。然后应用程序可以禁用用户或减少他们的权限。

使用工作负载管理

亚马逊红移可以定义多个查询队列处理的并发请求。每个队列包含若干插槽。查询在插槽中运行。

用户可以将分配给特定查询队列,以便一个用户的查询不会干扰另一个用户的查询。

例如,仪表板用户可以全部分配到一个队列,而交互式用户可以分配到不同的队列。如果仪表板进行太多同时查询,他们将排队等待可用容量,而不会影响交互式用户。

但是,这仅限制了同时查询的数量和分配的RAM数量。它不会基于查询数量或总CPU使用量进行限制。

相关问题