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

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

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

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

文件格式

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

  • AVRO

  • PARQUET

  • TEXTFILE

  • SEQUENCEFILE

  • RCFILE

  • RegexSerDe

  • ORC

  • Grok

  • OpenCSV

  • Ion

  • JSON

Ion 和 JSON 格式仅支持标量数据类型。不支持嵌套数据类型。

注意

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

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

Compression

要减少存储空间、提高性能和最大程度地降低成本,我们强烈建议压缩您的数据文件。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 将无法均匀分配工作负载。