Working with concurrency scaling - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Working with concurrency scaling

使用并发扩展功能,您可以支持几乎无限的并发用户和并发查询,同时提供始终如一的快速查询性能。启用并发扩展后,Amazon Redshift 会在需要时自动增加额外的集群容量来处理增多的并发读取查询。写入操作像往常一样继续在主集群上进行。不管查询在主集群上运行还是在并发扩展集群上运行,用户将始终看到最新的数据。仅当并发扩展集群处于使用状态时,您才需要为其付费。有关定价的更多信息,请参阅 Amazon Redshift 定价。您可以通过配置 WLM 队列来管理将哪些查询发送到并发扩展集群。为队列启用并发扩展后,符合条件的查询将发送到并发扩展集群,而不是排队等待。

Concurrency scaling regions

并发扩展功能仅在以下 AWS 区域中可用:

  • 美国东部(弗吉尼亚北部)地区 (us-east-1)

  • 美国东部(俄亥俄)区域 (us-east-2)

  • 美国西部(加利福利亚北部)区域 (us-west-1)

  • 美国西部(俄勒冈)区域 (us-west-2)

  • 亚太地区(孟买)区域 (ap-south-1)

  • 亚太区域(首尔) (ap-northeast-2)

  • 亚太区域(新加坡) (ap-southeast-1)

  • 亚太区域(悉尼) (ap-southeast-2)

  • 亚太区域(东京) (ap-northeast-1)

  • 加拿大 (中部) 区域 (ca-central-1)

  • 欧洲(法兰克福)区域 (eu-central-1)

  • 欧洲(爱尔兰)区域 (eu-west-1)

  • 欧洲(伦敦)区域 (eu-west-2)

  • 欧洲(巴黎)区域 (eu-west-3)

  • 南美洲(圣保罗)区域 (sa-east-1)

Concurrency scaling candidates

仅当主集群满足以下要求时,才将查询路由到并发扩展集群:

  • EC2-VPC platform.

  • Node type must be dc2.8xlarge, ds2.8xlarge, dc2.large, ds2.xlarge, ra3.4xlarge, or ra3.16xlarge.

  • Maximum of 32 compute nodes for clusters with 8xlarge or 16xlarge node types. In addition, the number of nodes of the main cluster can't be larger than 32 nodes when the cluster was originally created. For example, even if a cluster currently has 20 nodes, but was originally created with 40, it does not meet the requirements for concurrency scaling. Conversely, if a cluster currently has 40 nodes, but was originally created with 20, it does meet the requirements for concurrency scaling.

  • Not a single-node cluster.

查询必须满足以下所有条件才能成为并发扩展的候选者:

  • The query must be a read-only query.

  • The query doesn't reference tables that use an interleaved sort key.

  • The query doesn't reference user-defined temporary tables.

Configuring concurrency scaling queues

通过将工作负载管理器 (WLM) 队列启用为并发扩展队列来将查询路由到并发扩展集群。要在队列上启用并发扩展,请将 Concurrency Scaling mode (并发扩展模式) 值设置为 auto (自动)

当路由到并发扩展队列的查询数超过队列配置的并发数时,符合条件的查询将发送到并发扩展集群。当有槽位可用时,将在主集群上运行查询。队列数仅受每集群允许的队列数限制。与任何 WLM 队列一样,您可以根据用户组或通过使用查询组标签标记查询来将查询路由到并发扩展队列。您还可以通过定义 WLM query monitoring rules来路由查询。例如,您可以将所有耗时超过 5 秒的查询路由到并发扩展队列。

并发扩展集群的默认数量为 1。可以使用的并发扩展集群的数量由 max_concurrency_scaling_clusters 控制。

Monitoring concurrency scaling

您可以通过以下方式查看查询运行在主集群还是并发扩展集群上:查看 Amazon Redshift 控制台,导航到集群,选择一个集群。然后选择查询选项卡并查看列 Executed on (执行载体) 中的值来确定运行查询的集群。

要查找执行时间,请查询 STL_QUERY 表并筛选 concurrency_scaling_status 列。以下查询比较在并发扩展集群上运行的查询与在主集群上运行的查询的队列时间和执行时间。

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND q.starttime > '2019-01-04 16:38:00' AND q.endtime < '2019-01-04 17:40:00' GROUP BY 1,2 ORDER BY 1,2;

Concurrency scaling system views

一组带有前缀 SVCS 的系统视图提供了系统日志表中有关主集群和并发扩展集群上的查询的详细信息。

以下视图与相应的STL视图或SVL视图相似:

以下视图专门用于并发扩展。

有关并发扩展的更多信息,请参阅 Amazon Redshift Cluster Management Guide 中的以下主题。