Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

向队列分配查询

以下示例根据用户组和查询组向队列分配查询。

基于用户组向队列分配查询

如果用户组名称列在队列定义中,则由该用户组的成员运行的查询会分配到相应的队列。下面的示例使用 SQL 命令 CREATE USERCREATE GROUPALTER GROUP 创建用户组并将用户添加到组。

Copy
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 命令开始使用查询组。

Copy
SET query_group TO group_label

其中,group_label 是 WLM 配置中列出的查询组标签。

SET query_group 命令之后运行的所有查询都以指定查询组的成员身份运行,直到您重置查询组或结束当前登录会话为止。有关设置和重置 Amazon Redshift 对象的信息,请参阅“SQL 命令参考”中的 SETRESET

您指定的查询组标签必须包含在当前 WLM 配置中;否则,SET query_group 命令对查询队列不起作用。

查询日志会捕获在 TO 子句中定义的标签,因此,您可以利用标签进行故障排除。有关 query_group 配置参数的信息,请参阅“配置参考”中的 query_group

下面的示例将两个查询作为查询组“priority”的一部分运行,然后重置查询组。

Copy
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,然后在超级用户组中运行查询。完成后,重置查询组,使后续查询不会在超级用户队列中运行。

下面的示例分配两个命令以在超级用户队列中运行。

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

要查看超级用户的列表,请查询 PG_USER 系统目录表。

Copy
select * from pg_user where usesuper = 'true';