使用 COPY 命令加载数据 - Amazon Redshift

使用 COPY 命令加载数据

COPY 命令使用 Amazon Redshift 大规模并行处理 (MPP) 架构从 Amazon S3 上的文件、DynamoDB 表或者来自一个或多个远程主机的文本输出并行读取和加载数据。

注意

我们强烈建议使用 COPY 命令加载大量数据。使用单个 INSERT 语句填充表可能过于缓慢。此外,如果您的数据在其他 Amazon Redshift 数据库表中已经存在,请使用 INSERT INTO ... SELECT 或 CREATE TABLE AS 来提高性能。有关更多信息,请参阅 INSERTCREATE TABLE AS

要从另一 AWS 资源加载数据,您的集群必须有权访问相应资源和执行所需操作。

若要授予或撤消使用 COPY 命令将数据加载到表中的特权,请授予或撤消 INSERT 特权。

您的数据需要采用恰当的格式才能加载到 Amazon Redshift 表中。本部分介绍在加载数据前准备和验证数据以及在运行 COPY 语句前对其进行验证的指南。

若要保护文件中的信息,您可以先对数据文件进行加密,然后再将它们上载到 Amazon S3 桶;COPY 将在执行加载时解密数据。您还可以通过向用户提供临时安全凭证来限制对您的加载数据的访问。临时安全凭证可增强安全性,因为它们时效短,过期后无法重复使用。

Amazon Redshift 具有 COPY 内置功能,可以快速加载未压缩的、分隔的数据。但您可以使用 gzip、lzop 或 bzip2 来压缩您的文件,以节约上载文件的时间。

如果 COPY 查询中包含以下关键词,则不支持自动拆分以下格式的未压缩数据:ESCAPE、REMOVEQUOTES 和 FIXEDWIDTH。但是支持 CSV 关键字。

为帮助保护 AWS Cloud 中正在传输的数据,Amazon Redshift 使用硬件加速 SSL 与 Amazon S3 或 Amazon DynamoDB 通信,以执行 COPY、UNLOAD、备份和还原操作。

如果直接从 Amazon DynamoDB 表加载您的表,您可以选择控制自己占用的 Amazon DynamoDB 预配置吞吐量。

作为加载过程的一部分,您可选择让 COPY 分析您的输入数据并对您的表自动应用最佳压缩编码。