我想在 Amazon Redshift 中创建特定查询队列并确定其优先级。
简短描述
在 Amazon Redshift 中,您可以创建提取、转换、加载(ETL)查询,然后根据优先级将其分入不同队列。您可以根据用户组、查询组和查询分配规则确定查询的优先级。
如需确定查询的优先级,请使用 Amazon Redshift 工作负载管理(WLM)。Amazon Redshift 支持自动 WLM 和手动 WLM 配置。
与手动 WLM 不同,您可以使用自动 WLM 设置查询优先级值来表明工作负载的相对优先级。对于自动和手动 WLM,都可以创建单独的查询队列。如需确定查询的优先级,请选择您的用例最适合的 WLM 配置。
解决方法
自动 WLM
**注意:**最佳做法是在将配置迁移到生产环境之前,在现有查询或工作负载上测试自动 WLM。
如需使用自动 WLM 在 Amazon Redshift 中确定工作负载的优先级,请完成以下步骤:
- 登录到 AWS 管理控制台。
- 打开 Amazon Redshift 控制台。
- 在导航窗格中,选择配置。
- 选择工作负载管理。
- 选择要修改的参数组。
- 选择工作负载管理选项卡,查看当前 WLM 配置。
- (可选)更新您的 WLM 参数组。如果您的 WLM 参数组设置为自动 WLM 模式,则无需更新。如果您的 WLM 参数组设置为手动 WLM 模式,则修改参数组的 WLM 配置。选择编辑工作负载队列以编辑 WLM 配置。然后,选择切换 WLM 模式,切换到自动 WLM。
- 选择添加队列,添加更多工作负载队列。您最多可以为每个工作负载创建八个队列,并将队列与用户组或查询组关联起来。
- 为队列配置优先级状态。默认情况下,每个队列都将分配一个“正常”优先级状态。
**注意:**超级用户可以应用“关键”最高优先级状态。如果工作负载被标记为“关键”优先级,则每次仅可运行其中一个查询。
- (可选)创建 WLM 查询监控规则,用于划定查询和队列的性能界限,例如时间限制或并发级别。例如,您可以设置查询监控规则,以便在正在运行的查询超过 40 秒时更改查询的优先级状态。
- 选择保存。
- 创建和定义队列分配规则,并将查询分配给队列。
**注意:**根据用户或查询组分配查询。未分配的查询将在默认队列中执行。
手动 WLM
如果要管理多个 WLM 队列,则可以配置工作负载管理(WLM)队列以改进查询处理。
如需使用手动 WLM 在 Amazon Redshift 中确定工作负载的优先级,请完成以下步骤:
- 登录到 AWS 管理控制台。
- 打开 Amazon Redshift 控制台。
- 在导航菜单中,选择配置。
- 选择工作负载管理。
- 选择要修改的参数组。
- 选择工作负载管理选项卡,查看当前 WLM 配置。
- (可选)更新您的 WLM 参数组。如果您的 WLM 参数组设置为手动 WLM 模式,则无需更新。如果您的 WLM 参数组设置为自动 WLM 模式,则修改参数组的 WLM 配置。选择编辑工作负载队列以编辑 WLM 配置。然后,选择切换 WLM 模式以切换到手动 WLM。
- 选择添加队列,添加工作负载队列。您最多可以为每个工作负载创建八个队列,并将队列与用户组或查询组关联。
- 使用 WLM 动态内存分配来配置分配给每个队列的内存大小。WLM 动态内存配置可帮助您根据内存使用情况确定工作负载的优先级。
- (可选)创建并定义查询监控规则以管理达到指标边界的查询。例如,您可以使用查询监控规则来跳过或取消执行时间过长的查询。
- 选择保存。
- 创建和定义队列分配规则,并将查询分配给队列。
**注意:**根据用户或查询组分配查询。未分配的查询将在默认队列中执行。
相关信息
WLM 系统表和视图
STV_WLM_QUERY_QUEUE_STATE
STV_WLM_QUERY_STATE
STV_WLM_SERVICE_CLASS_CONFIG