Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何调整 Amazon Redshift 集群的大小?
我想调整 Amazon Redshift 集群的大小,并想了解调整大小对性能和账单的影响。
简短描述
要调整集群大小,请使用弹性大小调整或经典大小调整。如果您的集群符合条件,则最佳做法是使用弹性大小调整。如果您的集群不符合条件,请使用经典大小调整。
解决方法
确定您的集群是否符合条件
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要验证您的集群是否符合弹性大小调整的条件,请运行 describe-node-configuration-options AWS CLI 命令:
aws redshift describe-node-configuration-options --cluster-identifier example-cluster-id --action-type resize-cluster
**注意:**请将 example-cluster-id 替换为您的集群 ID。
如果集群符合弹性大小调整的条件,则输出将类似于以下内容:
{ "NodeConfigurationOptionList": [ { "NodeType": "dc2.large", "NumberOfNodes": 2, "EstimatedDiskUtilizationPercent": 0.01 }, { "NodeType": "ra3.16xlarge", "NumberOfNodes": 2, "EstimatedDiskUtilizationPercent": 0.01 } ] }
如果集群不符合弹性大小调整的条件,则输出将类似于以下内容:
{ "NodeConfigurationOptionList": [] }
缩短操作时间
当您对具有相同节点类型的集群使用弹性大小调整时,该操作不会创建新集群,且能快速完成。
使用经典大小调整时,操作时间基于以下因素:
- 源集群上的工作负载。
- 从源集群传输到目标集群的表的数量和大小。
- 数据在计算节点和切片之间的分布情况。
- 源集群和目标集群中的节点配置。
要缩短经典大小调整的持续时间,请执行以下操作:
- 迁移到 RA3 节点类型。
- 识别并修复偏斜的表。要识别偏斜的表,请运行 AWS Labs 表检查器脚本。有关详细信息,请参阅 GitHub 网站上的 table_inspector。要修复偏斜的表,请选择适当的分配密钥。
- 删除未使用的表。要识别未使用的表,请运行 AWS Labs 未扫描的表摘要脚本。有关详细信息,请参阅 GitHub 网站上的 unscanned_table_summary。
**注意:**未扫描的表摘要仅显示过去 2-5 天的最新历史记录。要捕获较长时间段的使用数据,请使用系统对象持久化实用程序。有关详细信息,请参阅 GitHub 网站上的 SystemTablePersistence。 - 识别缺失的表数据。要识别缺失的表数据,请使用 AWS Labs missing_table_stats 脚本。有关详细信息,请参阅 GitHub 网站上的 missing_table_stats。然后,对这些表运行 ANALYZE 命令。
有关调整大小性能优化的详细信息,请参阅“Amazon Redshift 的十大性能优化技术”。要使用 Amazon Redshift 控制台检查调整大小操作的状态,请在集群详细信息页面上选择 Status(状态)选项卡。Status(状态)选项卡显示平均传输速率、已用时间和剩余时间。
调整集群大小
使用弹性大小调整来更改集群的节点类型和/或节点数量。
当弹性大小调整无法更改集群大小或节点时,请使用经典大小调整。
对调整大小操作进行故障排除
在调整大小操作期间,您的表可能会增大或缩小。有关详细信息,请参阅为什么 Amazon Redshift 预置集群中的表使用的磁盘存储空间高于或低于预期?
如果您的集群在 AWS CLI 中的状态为 NONE,则表明 Amazon Redshift 仍在预置目标集群。在预置阶段完成之前,您的目标集群不会进行复制。当 Amazon Redshift 完成目标集群的预置后,状态将更改为 IN_PROGRESS。
如果您的 AWS CloudFormation StackSets 无法调整大小,且您收到了内部错误消息,请检查您的集群是否符合弹性大小调整的条件。错误消息类似于: “An internal error has occurred.Please try your query again at a later time.” 出现此错误是因为 CloudFormation 堆栈使用了弹性大小调整,且默认设置了 Classic:false。
如果您收到错误消息“Please choose a larger target cluster”,则说明您的数据无法放入目标集群。使用更多节点或其他节点类型来调整您的 Amazon Redshift 集群的大小。
要在经典大小调整操作完成之前取消该操作,请从 Amazon Redshift 控制台的集群列表中选择 Cancel resize(取消调整大小)。
调整大小后的集群的计费
在调整大小操作期间,AWS 会对您可用的集群进行计费。例如,在调整大小操作期间,AWS 会对源配置进行计费。调整大小完成后,AWS 不再对源配置进行计费。集群状态更改为 Available(可用)后,系统会立即开始对目标配置进行计费。
当您将较小的节点类型(例如 large 或 xlarge)调整为较大的节点类型(例如 8xlarge)时,您的集群中每个节点需要更多存储空间。每个节点的存储空间越多,运行 COMMIT 操作时写入的元数据就越多。因此,对于较大的节点,单个 COMMIT 操作的基础成本会更高。如果您同时运行多个小型 COMMIT 操作,则可能会看到性能下降。为了提高性能,请将多项更改合并为一个 COMMIT 操作。
如果您购买了预留实例,则您的账单将取决于调整后的集群配置、预留节点类型和预留节点数量。有关详细信息,请参阅预留节点的工作方式。
相关信息
- 语言
- 中文 (简体)
