Amazon Redshift 预置集群
Amazon Redshift 数据仓库是一个由称作节点的各种计算资源构成的集合,这些节点已整理到名为集群的组中。每个集群运行一个 Amazon Redshift 引擎并包含一个或多个数据库。
注意
目前提供 Amazon Redshift 版本 1.0 引擎。不过,随着引擎不断更新,我们可能会提供多个 Amazon Redshift 引擎版本供您选择。
Amazon Redshift 中的集群和节点
Amazon Redshift 集群由节点组成。每个集群包括一个领导节点以及一个或多个计算节点。领导节点接收来自客户端应用程序的查询、解析查询并制定查询执行计划。然后,领导节点和计算节点协调这些计划并行执行,之后,领导节点聚合来自计算节点的中间结果。然后,领导节点会将这些结果最终返回至客户端应用程序。
计算节点运行查询执行计划,并在节点自身之间传输数据以对这些查询提供服务。中间结果被送回至客户端应用程序之前,会先发送至领导节点进行聚合。有关领导节点和计算节点的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的数据仓库系统架构。
注意
当您在 Amazon Redshift 控制台 (https://console.aws.amazon.com/redshiftv2/
当您启动集群时,您指定的一个选项是节点类型。节点类型决定了每个节点的 CPU、RAM、存储容量和存储驱动类型。
Amazon Redshift 提供不同的节点类型以满足您的工作负载要求,我们建议根据所需的性能、数据大小和预期数据增长选择 RA3 或 DC2。
通过使用具有托管存储的 RA3 节点,您可以单独扩展和支付计算和托管存储以优化数据仓库。通过使用 RA3,您可以根据性能要求选择节点数,并且仅为您使用的托管存储支付费用。根据您每天处理的数据量调整 RA3 集群大小。您可以在 Virtual Private Cloud (VPC) 中启动使用 RA3 节点类型的集群。您无法在 EC2-Classic 中启动 RA3 集群。有关更多信息,请参阅 在 VPC 中创建 Redshift 预置集群或 Amazon Redshift Serverless 工作组。
Amazon Redshift 托管存储在每个 RA3 节点中使用大型高性能 SSD 以提供快速的本地存储,并使用 Amazon S3 提供更长时间的持久存储。如果节点中的数据超过大型本地 SSD 的大小,Amazon Redshift 托管存储自动将该数据分流到 Amazon S3。无论数据存储在高性能 SSD 还是 Amazon S3 中,Amazon Redshift 托管存储采用相同的费率,而且费用较低。对于需要不断增长的存储的工作负载,您可以通过托管式存储,独立于计算节点自动扩展数据仓库存储容量。
通过使用 DC2 节点,您可以创建包含本地 SSD 存储的计算密集型数据仓库。您可以根据数据大小和性能要求选择所需的节点数。DC2 节点在本地存储数据以获得较高的性能;随着数据大小增长,您可以添加更多计算节点以增加集群的存储容量。对于 1 TB 以下的数据集(压缩),我们建议使用 DC2 节点类型,从而以最低的价格获得最佳的性能。如果预计数据将会增长,我们建议您使用 RA3 节点,以便单独调整计算和存储大小以降低价格并提高性能。您可以在 Virtual Private Cloud (VPC) 中启动使用 DC2 节点类型的集群。您无法在 EC2-Classic 中启动 DC2 集群。有关更多信息,请参阅 在 VPC 中创建 Redshift 预置集群或 Amazon Redshift Serverless 工作组。
节点类型有各种不同的大小。节点大小和节点数决定了集群的总存储容量。有关更多信息,请参阅 节点类型详细信息。
一些节点类型允许一个节点(单节点)或者两个/更多节点(多节点)。某些节点类型的集群的最小节点数为两个节点。在单节点集群上,该节点由领导功能和计算功能共用。不建议使用单节点集群运行生产工作负载。在多节点集群上,领导节点与计算节点是分开的。领导节点与计算节点的节点类型相同。您仅需为计算节点付费。
Amazon Redshift 为每个 Amazon 区域内的每个 Amazon 账户应用资源配额。配额限制您的账户可以在 Amazon 区域中为给定资源类型(如节点或快照)创建的资源数。有关适用于 Amazon Redshift 资源的默认配额的更多信息,请参阅 Amazon Redshift 资源中的配额和限制。
您的集群成本取决于 Amazon 区域、节点类型、节点数以及是否提前预留节点。有关节点成本的更多信息,请参阅 Amazon Redshift 定价
节点类型详细信息
以下各表总结了每个节点类型和大小的节点规范。表中的标题具有以下含义:
-
vCPU 指的是每个节点的虚拟 CPU 数。
-
RAM 指的是每个节点的内存量,以吉字节 (GiB) 为单位。
-
每个节点的默认切片数 是指,在创建集群或使用经典调整大小调整集群大小时,将计算节点划分到的切片数。
如果使用弹性调整大小来调整集群大小,则每个节点的切片数可能会发生变化。不过,在进行弹性调整大小后,集群中所有计算节点上的切片总数将保持不变。
在使用从快照中还原操作创建集群时,如果更改节点类型,创建的集群的切片数可能与原始集群不同。
-
存储指的是每个节点的容量和存储类型。
-
节点范围指的是针对节点类型和大小,Amazon Redshift 支持的最少和最多节点数。
注意
根据应用到所选 Amazon 区域中您的 Amazon 账户的配额,您可能只能使用少量节点。有关适用于 Amazon Redshift 资源的默认配额的更多信息,请参阅 Amazon Redshift 资源中的配额和限制。
-
总容量指的是集群的总存储容量(如果您部署了节点范围中指定的最大数目的节点)。
下表介绍 RA3 节点的规格。
节点类型 | vCPU | RAM (GiB) | 每个节点的默认切片数 | 每个节点的托管式存储限制 1 | 创建集群的节点范围 | 总托管式存储容量 2 |
---|---|---|---|---|---|---|
ra3.large(单节点) | 2 | 16 | 2 | 1TB | 1 | 1 TB3 |
ra3.large(多节点) | 2 | 16 | 2 | 8 TB | 2-16 | 128 TB |
ra3.xlplus(单节点) | 4 | 32 | 2 | 4 TB | 1 | 4 TB3 |
ra3.xlplus(多节点) | 4 | 32 | 2 | 32 TB | 2–164 | 1024 TB4 |
ra3.4xlarge | 12 | 96 | 4 | 128 TB | 2–325 | 8192 TB5 |
ra3.16xlarge | 48 | 384 | 16 | 128 TB | 2–128 | 16384 TB |
1 Amazon Redshift 托管存储的存储限制。这是一个硬性限制。
2 总托管式存储限制是每个节点的最大节点数乘以托管式存储限制。
3 要将单节点集群的大小调整为多节点,只支持经典大小调整。
4 您可以创建一个最多包含 16 个节点的 ra3.xlplus(多节点)节点类型的集群。对于多节点集群,您可以使用弹性调整大小将大小调整为最多 32 个节点。
5 您可以使用最多包含 32 个节点的 ra3.4xlarge 节点类型创建一个集群。您可以通过弹性调整大小将大小调整为最多 64 个节点。
下表介绍密集计算节点的规格。
节点类型 | vCPU | RAM (GiB) | 每个节点的默认切片数 | 每个节点的存储 | 节点范围 | 总容量 |
---|---|---|---|---|---|---|
dc2.large | 2 | 15 | 2 | 160 GB NVMe-SSD | 1–32 | 5.12 TB |
dc2.8xlarge | 32 | 244 | 16 | 2.56 TB NVMe-SSD | 2–128 | 326 TB |
注意
密集存储(DS2)节点类型不再可用。
以前的节点类型名称
在先前的 Amazon Redshift 版本中,某些节点类型的名称不同。您可以在 Amazon Redshift API 和 Amazon CLI 中使用以前的名称。但是,我们建议您更新引用这些名称的所有脚本,以改用当前名称。当前名称和以前的名称如下所示。
当前名称 | 以前的名称 |
---|---|
ds2.xlarge | ds1.xlarge、dw.hs1.xlarge、dw1.xlarge |
ds2.8xlarge | ds1.8xlarge、dw.hs1.8xlarge、dw1.8xlarge |
dc1.large | dw2.large |
dc1.8xlarge | dw2.8xlarge |
确定节点数
由于 Amazon Redshift 在集群的所有计算节点间并行分配和运行查询,因此您可以通过向集群添加节点来提高查询性能。在运行具有至少两个计算节点的集群时,每个节点上的数据将镜像到其他节点的磁盘上,从而降低数据丢失的风险。
您可以在 Amazon Redshift 控制台中使用 Amazon CloudWatch 指标监控查询性能。您还可以根据需要添加或删除节点,以便在集群的价格和性能之间达到平衡。当您请求额外节点时,Amazon Redshift 会处理部署、负载均衡和数据维护方面的所有详细信息。有关集群性能的更多信息,请参阅监控 Amazon Redshift 集群性能。
预留节点适合状态稳定的生产工作负载,可以提供比按需节点大得多的折扣。在运行试验和概念验证以验证生产配置后,您可以购买预留节点。有关更多信息,请参阅 预留节点。
在暂停集群时,您可以在集群暂停期间暂停按需计费。在该暂停时间内,您仅需为备份存储付费。这可避免规划和购买超出需求的数据仓库容量,并使您能够经济高效地管理环境以进行开发或测试。
有关按需和预留节点定价的信息,请参阅 Amazon Redshift 定价
在创建集群时使用 EC2-VPC
Amazon Redshift 集群在已针对您选择的 Amazon Redshift 节点类型和大小配置的 Amazon EC2 实例中运行。使用 EC2-VPC 创建集群。如果您仍在使用 EC2-Classic,我们建议您使用 EC2-VPC 以提高性能和安全性。有关这些联网平台的更多信息,请参阅《Amazon EC2 用户指南》中的支持的平台。您的 Amazon 账户设置决定了您可以使用 EC2-VPC 还是 EC2-Classic。
注意
为了防止 SQL 客户端工具与 Amazon Redshift 数据库之间出现连接问题,建议执行下列两项操作之一。您可以配置一个允许主机协商数据包大小的入站规则。或者,您可以通过在 Amazon EC2 实例的网络接口 (NIC) 上将最大传输单位 (MTU) 设置为 1500 来禁用 TCP/IP 巨型帧。有关这些方法的更多信息,请参阅查询似乎挂起,有时无法连接到集群。
EC2-VPC
在使用 EC2-VPC 时,集群在逻辑上与您的 Amazon 账户隔离的 Virtual Private Cloud (VPC) 中运行。如果您在 EC2-VPC 中预置集群,则可以将一个或多个 VPC 安全组与集群关联以控制对集群的访问。有关更多信息,请参阅《Amazon VPC 用户指南》 中的您的 VPC 的安全组。
要在 VPC 中创建集群,您必须先通过提供 VPC 的子网信息来创建一个 Amazon Redshift 集群子网组,然后在启动集群时提供该子网组。有关更多信息,请参阅 Redshift 资源的子网。
有关 Amazon Virtual Private Cloud (Amazon VPC) 的更多信息,请参阅 Amazon VPC 产品详细信息页面
默认磁盘空间警报
创建 Amazon Redshift 集群时,您可以选择配置一个 Amazon CloudWatch 告警来监控在集群的所有节点中已用磁盘空间所占的平均百分比。我们将此警报称为默认磁盘空间警报。
默认磁盘空间警报的目的是帮助您监控集群的存储容量。您可以根据数据仓库的需要配置此警报。例如,您可以使用警告作为可能需要调整集群大小的指示器。您可以将大小调整为不同的节点类型或添加节点,或者购买预留节点以供将来扩展。
当磁盘的使用率在指定持续时间达到或超出指定百分比一定次数,则会触发默认磁盘空间警报。默认情况下,当磁盘的使用率达到您指定的百分比并保持或超出这一百分比五分钟或更长时间,则会触发此警报。启动集群后,您可以编辑默认值。
当触发 CloudWatch 告警时,Amazon Simple Notification Service (Amazon SNS) 会向指定收件人发送通知,以提醒他们已达到百分比阈值。Amazon SNS 使用主题来指定接收方,并以通知的形式发送消息。您可以使用现有 Amazon SNS 主题;如果不使用的话,系统会根据您启动集群时指定的设置创建一个主题。启动集群后,您可以编辑此警报的主题。有关创建 Amazon SNS 主题的更多信息,请参阅开始使用 Amazon Simple Notification Service。
启动集群后,您可以从该集群 Status 窗口的 CloudWatch Alarms 下方查看和编辑警报。其名称为 percentage-disk-space-used-default-<string
>。您可以打开该告警,以查看与其相关联的 Amazon SNS 主题以及编辑告警设置。如果您未选择使用现有的 Amazon SNS 主题,则系统为您创建的主题名为 <clustername
>-default-alarms (<recipient
>),例如 examplecluster-default-alarms (notify@example.com)。
有关配置和编辑默认磁盘空间警报的更多信息,请参阅创建集群和创建磁盘空间警报。
注意
如果您将集群删除,与该集群相关联的警报不会被删除,但也不会触发。如果您不再需要该警报,可以从 CloudWatch 控制台中将其删除。
集群状态
集群状态显示了集群的当前状态。下表提供了对每个集群状态的说明。
状态 | 描述 |
---|---|
available |
集群正在运行且可供使用。 |
available, prep-for-resize |
该集群正在为弹性调整大小操作做准备。集群正在运行且可用于读取和写入查询,但集群操作(例如,创建快照)不可用。 |
available, resize-cleanup |
弹性调整大小操作正在完成到新集群节点的数据传输。集群正在运行且可用于读取和写入查询,但集群操作(例如,创建快照)不可用。 |
cancelling-resize |
正在取消调整大小操作。 |
creating |
Amazon Redshift 正在创建集群。有关更多信息,请参阅 创建集群。 |
deleting |
Amazon Redshift 正在删除集群。有关更多信息,请参阅 关闭和删除集群。 |
final-snapshot |
Amazon Redshift 正在删除集群前对其拍摄最终快照。有关更多信息,请参阅 关闭和删除集群。 |
hardware-failure |
集群发生了硬件故障。 如果您的集群为单节点集群,则该节点无法替换。要恢复您的集群,请还原快照。有关更多信息,请参阅 Amazon Redshift 快照和备份。 |
incompatible-hsm |
Amazon Redshift 无法连接到硬件安全模块 (HSM)。检查集群和 HSM 之间的 HSM 配置。有关更多信息,请参阅 使用硬件安全模块的加密。 |
incompatible-network |
基本网络配置出现问题。确保您在其中启动集群的 VPC 及其设置正确无误。有关更多信息,请参阅 VPC 中的 Redshift 资源。 |
incompatible-parameters |
相关联的参数组中的一个或多个参数值出现问题,此时无法应用这些参数值。修改参数组并更新所有无效值。有关更多信息,请参阅 Amazon Redshift 参数组。 |
incompatible-restore |
从快照中还原集群时出现问题。使用其他快照再次尝试还原集群。有关更多信息,请参阅 Amazon Redshift 快照和备份。 |
modifying |
Amazon Redshift 正在将更改应用于集群。有关更多信息,请参阅 修改集群。 |
paused |
集群已暂停。有关更多信息,请参阅 暂停和恢复集群。 |
rebooting |
Amazon Redshift 正在重启集群。有关更多信息,请参阅 重新引导集群。 |
renaming |
Amazon Redshift 正在将新名称应用于集群。有关更多信息,请参阅 重命名集群。 |
resizing |
Amazon Redshift 正在调整集群的大小。有关更多信息,请参阅 调整集群大小。 |
rotating-keys |
Amazon Redshift 正在轮换集群的加密密钥。有关更多信息,请参阅 加密密钥轮换。 |
storage-full |
集群已达到其存储容量。调整集群的大小以添加节点或选择其他节点大小。有关更多信息,请参阅 调整集群大小。 |
updating-hsm |
Amazon Redshift 正在更新 HSM 配置。 |