Amazon Redshift
数据库开发人员指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

实施工作负载管理

目前,并非在所有 Amazon Redshift 区域中都提供自动 WLM。在即将发布的版本中,自动 WLM 和关联的 Amazon Redshift 控制台更改将部署到其他 AWS 区域中。

您可以使用工作负载管理 (WLM) 定义多个查询队列并在运行时将查询路由到适当的队列。

在一些情况下,您可能有多个会话或用户同时运行查询。在这些情况下,某些查询可能会长时间占用集群资源,从而影响其他查询的性能。例如,假设一组用户时不时提交复杂、耗时的查询(从多个大型表中选择和排序行)。另一组用户经常提交短查询(仅从一个或两个表中选择少量行,运行时长只有数秒)。这种情况下,短时查询可能不得不在队列中等待耗时查询完成。

使用并发扩展,您可以支持几乎无限的并发用户和并发查询,同时提供始终如一的快速查询性能。有关更多信息,请参阅并发扩展

您可以配置 Amazon Redshift WLM 以通过自动 WLM 或手动 WLM 运行。

  • 自动 WLM

    您可以启用 Amazon Redshift 来管理如何划分资源以使用自动 WLM 运行并行查询。自动 WLM 管理运行查询所需的资源。Amazon Redshift 确定有多少个并发查询以及向分派的各个查询分配多少内存。您可以使用 Amazon Redshift 控制台,依次选择 Switch WLM mode (切换 WLM 模式)Auto WLM (自动 WLM),从而启用自动 WLM。使用此选项,一个队列用于管理查询,并且 Memory (内存)Concurrency on main (主集群上的并发) 字段均设置为 auto (自动)。有关更多信息,请参阅自动工作负载管理 (WLM)

  • 手动 WLM

    此外,您可以通过修改 WLM 配置,为耗时查询和短时查询分别创建队列,来管理系统性能和用户体验。在运行时,您可以根据用户组或查询组将查询路由到这些队列。使用 Amazon Redshift 控制台切换到 Manual WLM (手动 WLM) 即可启用此手动配置。使用此选项,您可以指定用于管理查询的队列,以及 Memory (内存)Concurrency on main (主集群上的并发) 字段值。

    使用手动配置,您可以配置多达八个查询队列,并设置可在每个队列中同时运行的查询数。您可以设置规则以根据运行查询的用户或指定的标签将查询路由到特定的队列。您还可以配置分配到每个队列的内存量,使大型查询在内存更多的队列中运行。您还可以配置查询监控规则 (QMR) 来限制长时间运行的查询。

    注意

    我们建议您为手动 WLM 查询队列配置不超过 15 个查询槽。有关更多信息,请参阅并发级别

Auto WLM (自动 WLM)Manual WLM (手动 WLM) 之间切换时,集群将置于 pending reboot 状态。在集群重新启动之前,更改不会生效。