Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用说明

限制

Amazon Redshift 强制实施每个群集最多 9,900 个永久表的限制。

表名的最大字符数为 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 列的有效查询处理限制将因大量因素而异。

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

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