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

使用说明

限制

对于 large 和 xlarge 群集节点类型,最大表数为 9,900,对于 8xlarge 群集节点类型,最大表数为 20,000。此限制包括临时表。临时表包括用户定义的临时表以及查询处理或系统维护期间由 Amazon Redshift 创建的临时表。此限制中并不包括视图。有关群集节点类型的更多信息,请参阅 Amazon Redshift Cluster Management Guide 中的群集和节点

表名的最大字符数为 127。

可在单个表中定义的列的最大数目为 1,600。

可在单个表中定义的 SORTKEY 列的最大数目为 400。

列级设置和表级设置的摘要

可在列级或表级设置若干属性和设置。在某些情况下,在列级或表级设置属性或约束的效果相同。在其他情况下,它们会产生不同的结果。

下面的列表汇总了列级和表级设置:

DISTKEY

无论是在列级设置还是在表级设置,效果是相同的。

如果在列级或表级设置 DISTKEY,则 DISTSTYLE 必须设置为 KEY 或者根本不设置 DISTSTYLE。只能在表级设置 DISTSTYLE。

SORTKEY

如果在列级进行设置,则 SORTKEY 必须为单个列。如果在表级设置 SORTKEY,则一个或多个列可构成复合或交错复合排序键。

UNIQUE

在列级别,可将一个或多个键设置为 UNIQUE;UNIQUE 约束分别应用于每个列。如果在表级设置 UNIQUE,则一个或多个列可构成复合 UNIQUE 约束。

PRIMARY KEY

如果在列级进行设置,则 PRIMARY KEY 必须为单个列。如果在表级设置 PRIMARY KEY,则一个或多个列可构成复合主键。

FOREIGN KEY

无论是在列级设置还是在表级设置 FOREIGN KEY,效果是相同的。在列级别,语法为 REFERENCES reftable [ ( refcolumn )]。

传入数据分配

如果传入数据的哈希分配方案与目标表的哈希分配方案匹配,则在加载数据时,没有实际必要的数据物理分配。例如,如果为新表设置分配键并从相同键列上分配的另一个表中插入数据,则使用相同的节点和切片就地加载数据。不过,如果源表和目标表都设置为 EVEN 分配,则数据将重新分配到目标表。

宽表

您也许能够创建很宽的表,但无法对表执行查询处理,例如 INSERT 或 SELECT 语句。具有宽度固定的列(例如 CHAR)的表的最大宽度为 64KB - 1(即 65535 字节)。如果表包含 VARCHAR 列,则表可以具有更大的声明宽度,而不会返回错误,因为 VARCHARS 列不会将其完全声明的宽度计入计算出的查询处理限制。针对 VARCHAR 列的有效查询处理限制将因大量因素而异。

如果表对于插入或选择操作来说太宽,您将收到以下错误。

ERROR: 8001 DETAIL: The combined length of columns processed in the SQL statement exceeded the query-processing limit of 65535 characters (pid:7627)