加载数据文件 - Amazon Redshift

加载数据文件

源数据文件采用不同的格式,并使用不同的压缩算法。使用 COPY 命令加载数据时,Amazon Redshift 会加载 Amazon S3 桶前缀引用的所有文件。(前缀是对象键名称开头的一串字符。) 如果前缀指的是多个文件或可以拆分的文件,Amazon Redshift 会利用 Amazon Redshift 的 MPP 架构并行加载数据。这将在集群中的节点间划分工作负载。相比之下,当您从无法拆分的文件加载数据时,Amazon Redshift 会强制执行序列化加载,这样速度会慢得多。以下部分介绍将不同文件类型加载到 Amazon Redshift 的建议方法,具体取决于它们的格式和压缩情况。

从可以拆分的文件中加载数据

加载以下文件的数据时,可以自动拆分这些文件:

  • 未压缩的 CSV 文件

  • 使用 BZIP 压缩的 CSV 文件

  • 列式文件(Parquet/ORC)

Amazon Redshift 会自动将 128MB 或更大的文件拆分成数据块。列式文件(特别是 Parquet 和 ORC)如果小于 128MB,则不会被拆分。Redshift 利用并行工作的切片来加载数据。实现快速加载性能。

从无法拆分的文件加载数据

使用 GZIP 等其他压缩算法进行压缩时,JSON 或 CSV 等文件类型不会自动拆分。对于这些文件类型,我们建议您手动将数据拆分为多个大小接近的小文件,这些小文件压缩后的大小介于 1MB 到 1GB 之间。此外,将文件数设为您的集群中切片数的倍数。有关如何将数据拆分为多个文件的更多信息和如何使用 COPY 加载数据的示例,请参阅从 Amazon S3 加载数据