是否可以限制用户每天可以在Redshift上运行的查询量

时间:2016-06-21 13:25:13

标签: amazon-web-services amazon-redshift

如何限制用户每天可以在Amazon Redshift上执行的查询量? 或者是否可以将群集的CPU时间限制到某个数量?

2 个答案:

答案 0 :(得分:4)

不,不可能通过查询次数或CPU时间来限制用户。

据推测,您要么是因为用户占用资源,要么是因为希望限制猖獗的任务,例如仪表板发出太多请求,从而影响其他用户。

有两种选择:

编写自己的限制器

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

您可以编写一个查询此表的应用程序,以确定用户是否已超过大量查询或总CPU时间。然后,应用程序可以禁用用户或减少其权限。

使用工作量管理

Amazon Redshift可以定义多个查询队列来处理同步请求。每个队列都包含许多广告位。查询在插槽中运行。

用户可以分配到特定的查询队列,这样一个用户的查询就不会干扰其他用户的查询。

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

但是,这仅限制同时查询的数量和分配的RAM量。它不会根据查询数量或使用的总CPU数来限制。

答案 1 :(得分:1)

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

进一步阅读:Defining Query Queues