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

数据加载操作

通过指定以下参数来管理加载操作的默认行为,以进行故障排除或缩短加载时间。

参数

COMPROWS numrows

指定要用作压缩分析的样本大小的行数。将对来自每个数据切片的行运行分析。例如,如果指定 COMPROWS 1000000 (1000000) 且系统总共包含 4 个切片,则将为每个切片读取和分析的行数不超过 250000。

如果未指定 COMPROWS,则每个切片的样本大小默认为 100000。小于每个切片 100000 行这一默认值的 COMPROWS 值将自动升级到此默认值。但是,如果加载的数据量不足以生成有意义的样本,则不会执行自动压缩。

如果 COMPROWS 数量大于输入文件中的行数,则 COPY 命令仍将继续并对所有可用行运行压缩分析。此参数接受的范围介于 1000 到 1000000000 (1000000000) 之间。

COMPUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

控制是否在 COPY 期间自动应用压缩编码。

COPY 命令将根据输入数据的一个样本为目标表中的每个列自动选择最佳压缩编码。有关更多信息,请参阅 使用自动压缩加载表

如果忽略 COMPUPDATE,则仅当目标表为空且表的所有列具有 RAW 编码或无编码时,COPY 才会应用自动压缩。此行为是默认行为。

通过设置 COMPUPDATE ON(或 TRUE),COPY 将在表为空时应用自动压缩,即使表的列已具有除 RAW 之外的编码。将替换现有编码。如果指定 COMPUPDATE,则此行为是默认行为。

通过设置 COMPUPDATE OFF(或 FALSE),将禁用自动压缩。

MAXERROR [AS] error_count

如果加载操作返回 error_count 数量的错误或更多错误,加载将失败。如果加载操作返回较少的错误,则将继续并返回指示无法加载的行数的 INFO 消息。使用此参数可允许加载操作在某些行因为格式设置错误或数据中的其他不一致性而未能加载到表中时继续。

如果您希望加载操作在出现第一个错误时就失败,请将此值设置为 01。AS 关键字是可选的。MAXERROR 默认值为 0,限制值为 100000

由于 Amazon Redshift 的并行处理特性,报告的实际错误数量可能高出指定的 MAXERROR。如果 Amazon Redshift 群集中的任何节点检测到已超出 MAXERROR,则每个节点将报告它遇到的所有错误。

NOLOAD

检查数据文件的有效性,而不用实际加载数据。通过使用 NOLOAD 参数,可以在运行实际数据加载之前确保数据文件将会加载而不产生任何错误。将 COPY 与 NOLOAD 参数结合运行将比加载数据要快很多,因为前者仅分析文件。

STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

在成功的 COPY 命令结束时,控制对优化器统计数据的自动计算和刷新。默认情况下,如果未使用 STATUPDATE 参数,则将在表最初为空时自动更新统计数据。

将数据插入非空表中将明显更改表的大小,我们建议通过运行 ANALYZE 命令或使用 STATUPDATE ON 参数来更新统计数据。

使用 STATUPDATE ON(或 TRUE),不管表最初是否为空,都将自动更新统计数据。如果使用 STATUPDATE,则当前用户必须是表所有者或超级用户。如果未指定 STATUPDATE,则仅需要 INSERT 权限。

通过使用 STATUPDATE OFF(或 FALSE),将从不更新统计数据。

有关更多信息,请参见分析表