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

为 Amazon Redshift Spectrum 中的查询创建数据文件

您用于 Amazon Redshift Spectrum 中查询的数据文件通常与您用于其他应用程序(如 Amazon Athena、Amazon EMR、Amazon QuickSight 等)的文件类型相同。如果文件的格式为 Redshift Spectrum 支持的格式,并且文件位于您的集群可访问的 Amazon S3 存储桶中,则您可直接从 Amazon S3 以数据的原始格式查询数据。

包含数据文件的 Amazon S3 存储桶以及 Amazon Redshift 集群必须位于同一 AWS 区域。有关支持的 AWS 区域的信息,请参阅 Amazon Redshift Spectrum 区域

Redshift Spectrum 支持以下结构化和半结构化数据格式:

  • AVRO

  • PARQUET

  • TEXTFILE

  • SEQUENCEFILE

  • RCFILE

  • RegexSerDe

  • 优化的行列式 (ORC)

  • Grok

  • OpenCSV

  • Ion

  • JSON

注意

文本文件中的时间戳值的格式必须为 yyyy-MM-dd HH:mm:ss.SSSSSS,如以下时间戳值所示:2017-05-01 11:30:59.000000

我们建议使用列式存储文件格式 (如 Parquet)。利用列式存储文件格式,您可以通过仅选择所需的列来最大程度地减少 Amazon S3 外部的数据传输。

Compresión

要减少存储空间、提高性能和最大程度地降低成本,我们强烈建议压缩您的数据文件。Redshift Spectrum 基于文件扩展名识别文件压缩类型。

Redshift Spectrum 支持以下压缩类型和扩展名:

  • gzip – .gz

  • Snappy – .snappy

  • bzip2 – .bz2

Redshift Spectrum 以透明方式解密使用以下加密选项加密的数据文件:

  • 使用由 Amazon S3 管理的 AES-256 加密密钥的服务器端加密 (SSE-S3)。

  • 具有由 AWS Key Management Service 管理的密钥的服务器端加密 (SSE-KMS)。

Redshift Spectrum 不支持 Amazon S3 客户端加密。有关更多信息,请参阅使用服务器端加密保护数据

Amazon Redshift 使用大规模并行处理 (MPP) 实现对大量数据的复杂查询操作的快速执行。Redshift Spectrum 将同一原则延伸到了查询外部数据,并按需使用多个 Redshift Spectrum 实例来扫描文件。将文件放在每个表的单独的文件夹中。

您可通过以下做法优化数据的并行处理:

  • 将大文件分成很多较小的文件。我们建议使用大小为 64 MB 或更大的文件。将表的文件存储在同一文件夹中。

  • 将所有文件保持在大致相同的大小。如果某些文件大于其他文件,Redshift Spectrum 将无法均匀分配工作负载。