如何在 Amazon Redshift 集群中创建查询队列并确定其优先级?

上次更新时间:2020 年 10 月 29 日

我想在 Amazon Redshift 中创建某些查询队列并确定其优先级。该如何操作?

简短描述

在 Amazon Redshift 中,您可以创建提取、转换、加载 (ETL) 查询,然后根据优先级将它们分成不同的队列。可以根据用户组查询组查询分配规则确定查询的优先级。

要确定查询的优先级,请使用 Amazon Redshift 工作负载管理 (WLM)。Amazon Redshift 支持以下 WLM 配置:

  • 自动 WLM:启用自动 WLM 后,您的查询并发性和内存分配将由 Amazon Redshift 管理。Amazon Redshift 将确定查询所需的资源量,并进行相应的调整。与手动 WLM 不同,自动 WLM 允许您设置查询优先级值,以指示工作负载的相对优先级。对于自动和手动 WLM,都可以创建单独的查询队列。
  • 手动 WLM:手动 WLM 用于管理 Amazon Redshift 中的多个 WLM 队列。使用手动 WLM 时,必须为 WLM 查询并发插槽和内存分配属性指定值。对于自动和手动 WLM,都可以创建单独的查询队列。对于手动 WLM,默认并发值为五个查询,内存分配为平均分配。如果要管理自己的工作负载或手动将资源分配给查询,请使用手动 WLM。

要确定查询的优先级,请选择最适合您的使用案例的 WLM 配置。

解决方法

自动 WLM

启用自动 WLM 后,Amazon Redshift 会自动确定资源分配给每个查询的方式。根据您的工作负载调整并发性。

注意:最佳做法是在将配置迁移到生产环境之前,在现有查询或工作负载上测试自动 WLM。

要使用自动 WLM 在 Amazon Redshift 中设置工作负载的优先级,请执行以下步骤:

1.    登录 AWS 管理控制台。

2.    打开 Amazon Redshift 控制台

3.    从导航菜单中,选择 CONFIG

4.    选择工作负载管理

5.    选择要修改的参数组。

6.    选择工作负载管理选项卡以查看当前 WLM 配置。

7.    (可选)如果 WLM 参数组设置为自动 WLM 模式,则不需要进行更新。

8.    (可选)如果 WLM 参数组设置为手动 WLM 模式,请修改参数组的 WLM 配置。选择编辑工作负载队列以编辑 WLM 配置。然后,选择切换 WLM 模式以切换到自动 WLM

9.    选择添加队列以添加其他工作负载队列。您可以为每个工作负载创建单独的队列(最多 8 个队列),将队列与用户组或查询组关联。

10.    选择保存

11.    将查询分配给队列

12.    配置队列的优先级状态。默认情况下,每个队列都将分配一个“正常”优先级状态。

注意:超级用户可以对查询应用“严重”优先级状态(最高优先级级别)。如果工作负载被标记为“严重”优先级,则每次只能运行其中一个查询。

13.    (可选)创建 WLM 查询监控规则,以定义查询和队列的性能边界(如时间限制或并发级别)。例如,您可以设置查询监控规则,以便在正在运行的查询超过 40 秒时更改查询的优先级状态。

手动 WLM

启用手动 WLM 后,系统会为每个队列分配集群的部分可用内存。队列的内存在队列的查询插槽之间平均分配。如果要管理多个 WLM 队列,则可以配置工作负载管理 (WLM) 队列以改进查询处理

要使用手动 WLM 在 Amazon Redshift 中设置工作负载的优先级,请执行以下步骤:

1.    登录 AWS 管理控制台。

2.    打开 Amazon Redshift 控制台

3.    从导航菜单中,选择 CONFIG

4.    选择工作负载管理

5.    选择要修改的参数组。

6.    选择工作负载管理选项卡以查看当前 WLM 配置。

7.    (可选)如果 WLM 参数组设置为手动 WLM 模式,则不需要进行更新。

8.    (可选)如果 WLM 参数组设置为自动 WLM 模式,请修改参数组的 WLM 配置。选择编辑工作负载队列以编辑 WLM 配置。然后,选择切换 WLM 模式以切换到手动 WLM

9.    选择添加队列以添加其他工作负载队列。您可以为每个工作负载创建单独的队列(最多 8 个队列),将队列与用户组或查询组关联。

10.    选择保存

11.    创建和定义查询分配规则。

注意:根据用户或查询组分配查询。未分配的查询会在默认队列中运行。

12.    使用 WLM 动态内存分配配置分配给每个队列的内存量。WLM 动态内存配置可帮助您根据内存使用情况确定工作负载的优先级。

13.    (可选)创建并定义查询监控规则以管理达到指标边界的查询。例如,您可以使用查询监控规则跳过或取消运行时间较长的查询。