2016-06-21 49 views

回答

1

您可以在Redshift中使用查詢隊列來限制一組用戶查詢對其他用戶查詢的影響。它似乎被記憶分裂,但它應該能夠做到你想要的。

延伸閱讀:Defining Query Queues

4

不,這是不可能通過查詢的數量也不是CPU時間量來限制用戶。

可能是因爲用戶佔用資源,或者是由於希望限制猖獗的任務(如儀表板提出太多請求並因此影響其他用戶)而提出的。

幾個選項:

寫自己限制器

STL_QUERY系統表包含紅移處理的所有查詢,包括用戶ID,開始時間和結束時間的列表。

您可以編寫一個查詢此表的應用程序來確定用戶是否超過了多個查詢或總CPU時間。然後應用程序可以禁用用戶或減少他們的權限。

使用工作負載管理

亞馬遜紅移可以定義多個查詢隊列處理的併發請求。每個隊列包含若干插槽。查詢在插槽中運行。

用戶可以將分配給特定查詢隊列,以便一個用戶的查詢不會干擾另一個用戶的查詢。

例如,儀表板用戶可以全部分配到一個隊列,而交互式用戶可以分配到不同的隊列。如果儀表板進行太多同時查詢,他們將排隊等待可用容量,而不會影響交互式用戶。

但是,這僅限制了同時查詢的數量和分配的RAM數量。它不會基於查詢數量或總CPU使用量進行限制。

相關問題