將查詢指派給佇列 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將查詢指派給佇列

下列範例會根據使用者角色、使用者群組和查詢群組,將查詢指派給佇列。

根據使用者角色將查詢指派給佇列

如果將使用者指派給某個角色,且該角色已附加至佇列,則該使用者執行的查詢會指派至該佇列。下列範例會建立名為 sales_rw 的使用者角色,並將使用者 test_user 指派給該角色。

create role sales_rw; grant role sales_rw to test_user;

您也可以將一個角色明確授予另一個角色,來合併兩個角色的許可。將巢狀角色指派給使用者,會將這兩個角色的許可授予使用者。

create role sales_rw; create role sales_ro; grant role sales_ro to role sales_rw; grant role sales_rw to test_user;

若要查看叢集中已授與角色的使用者清單,請查詢 SVV USER _ GRANTS 表格。若要查看叢集中已授與角色的角色清單,請查詢 SVV ROLE _ GRANTS 資料表。

select * from svv_user_grants; select * from svv_role_grants;

根據使用者群組將查詢指派給佇列

如果使用者群組名稱列在佇列定義中,則由該使用者群組的成員所執行的查詢會指派給相應佇列。下列範例會使用、和SQL指令建立使用者群組CREATE USERCREATE GROUP並將使用者新增至群組ALTER GROUP

create group admin_group with user admin246, admin135, sec555; create user vp1234 in group ad_hoc_group password 'vpPass1234'; alter group admin_group add user analyst44, analyst45, analyst46;

將查詢指派給查詢群組

您可以在執行時間將查詢指派給適當的查詢群組,以便將查詢指派給佇列。使用SET指令開始查詢群組。

SET query_group TO group_label

在這裡,群組標籤 是組WLM態中列出的查詢群組標籤。

您在 SET query_group 命令之後執行的所有查詢,將會以指定之查詢群組的成員身分執行,直到您重設查詢群組或結束目前的登入工作階段為止。如需設定和重設 Amazon Redshift 物件的相關資訊,請參閱SQL命令參考RESET中的SET和。

您指定的查詢群組標籤必須包含在目前的組WLM態中;否則,SETquery_group 命令對查詢佇列沒有任何影響。

TO 子句中定義的標籤會擷取到查詢日誌中,您可以利用此標籤來進行故障診斷。如需查詢群組組態參數的相關資訊,請參閱組態參考中的 query_group

下列範例在查詢群組 'priority' 中執行兩個查詢,然後重設查詢群組。

set query_group to 'priority'; select count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;

將查詢指派給超級使用者佇列

若要將查詢指派給超級使用者佇列,請以超級使用者身分登入 Amazon Redshift,然後在超級使用者群組中執行查詢。完成時,請重設查詢群組,後續的查詢就不會在超級使用者佇列中執行。

以下範例指派兩個命令在超級使用者佇列中執行。

set query_group to 'superuser'; analyze; vacuum; reset query_group;

若要檢視超級使用者清單,請查詢 PG_ USER 系統目錄表格。

select * from pg_user where usesuper = 'true';