实施工作负载管理 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

实施工作负载管理

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

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

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

自动 WLM

为了最大限度地提高系统吞吐量和高效地使用资源,您可以启用 Amazon Redshift 来管理如何划分资源以使用自动 WLM 运行并行查询。自动 WLM 管理运行查询所需的资源。Amazon Redshift 确定有多少个查询并发运行以及向每个分派的查询分配多少内存。您可以使用 Amazon Redshift 控制台,依次选择切换 WLM 模式自动 WLM,从而启用自动 WLM。使用此选项,最多八个队列用于管理查询,并且内存主要并发字段均设置为自动。您可以指定优先级来反映映射到每个队列的工作负载或用户的业务优先级。默认的查询优先级设置为正常。有关如何更改队列中查询的优先级的信息,请参阅查询优先级。有关更多信息,请参阅实施自动 WLM

在运行时,您可以根据用户组或查询组将查询路由到这些队列。您还可以配置查询监控规则 (QMR) 来限制长时间运行的查询。

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

注意

我们建议您创建参数组并选择自动 WLM 来管理查询资源。有关如何从手动 WLM 迁移到自动 WLM 的详细信息,请参阅 从手动 WLM 迁移到自动 WLM

手动 WLM

此外,您可以通过修改 WLM 配置,为耗时查询和短时查询分别创建队列,来管理系统性能和用户体验。在运行时,您可以根据用户组或查询组将查询路由到这些队列。使用 Amazon Redshift 控制台切换到手动 WLM即可启用此手动配置。使用此选项,您可以指定用于管理查询的队列,以及内存主要并发字段值。使用手动配置,您可以配置多达八个查询队列,并设置可在每个队列中同时运行的查询数。

您可以设置规则以根据运行查询的用户或指定的标签将查询路由到特定的队列。您还可以配置分配到每个队列的内存量,使大型查询在内存更多的队列中运行。您还可以配置查询监控规则 (QMR) 来限制长时间运行的查询。有关更多信息,请参阅实施手动 WLM

注意

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

WLM 排队限制

请注意,对于手动 WLM 配置,您可以分配给队列的最大插槽数为 50。但是,这并不意味着在自动 WLM 配置中,Amazon Redshift 集群总是会同时运行 50 个查询。根据集群上的内存需求或其他类型的资源分配,这一数字会发生改变。

自动 WLM 和手动 WLM 的使用案例

当您希望 Amazon Redshift 管理如何划分资源以运行并发查询时,请使用自动 WLM。相比手动 WLM,使用自动 WLM 通常会导致更高的吞吐量。使用自动 WLM,您可以为队列中的工作负载定义查询优先级。有关查询优先级的更多信息,请参阅查询优先级

如果您想对并发性进行更多控制,请使用手动 WLM。