Athena 压缩支持 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Athena 压缩支持

Athena 支持多种用于读取和写入数据的压缩格式,例如从使用多种压缩格式的表中进行读取。例如,当某些 Parquet 文件使用 Snappy 压缩而其他 Parquet 文件使用 GZIP 压缩时,Athena 可以成功读取使用 Parquet 文件格式的表中的数据。同样的原则适用于 ORC、文本文件和 JSON 存储格式。

Athena 支持以下压缩格式:

  • BZIP2 – 使用 Burrows-Wheeler 算法的格式。

  • DEFLATE – 基于 LZSSHuffman 编码的压缩算法。Deflate 仅与 Avro 文件格式相关。

  • GZIP – 基于 Deflate 的压缩算法。对于 Athena 引擎版本 2 和 3 中的 Hive 表,以及 Athena 引擎版本 2 中的 Iceberg 表,GZIP 是 Parquet 和文本文件存储格式文件的默认写入压缩格式。不支持 tar.gz 格式的文件。

  • LZ4 – 属于 Lempel-Ziv 77 (LZ7) 系列,并且也侧重于压缩和解压缩速度,而非对数据的最大限度压缩。LZ4 具有以下成帧格式:

    • LZ4 Raw/Unframed – LZ4 数据块压缩格式的标准无帧实现。有关更多信息,请参阅上的 LZ4 区块格式说明。 GitHub

    • LZ4 Framed – 常见的 LZ4 成帧实现。有关更多信息,请参阅上的 LZ4 帧格式说明。 GitHub

    • LZ4 Hadoop-Compatible – LZ4 的 Apache Hadoop 实现。此实现将 LZ4 压缩与 BlockCompressorStream.j ava 类封装在一起。

  • LZO – 使用 Lempel–Ziv–Oberhumer 算法的格式,该算法侧重于高速压缩和解压缩,而非对数据的最大限度压缩。LZO 具有两个实现:

  • SNAPPY – 属于 Lempel-Ziv 77 (LZ7) 系列的压缩算法。Snappy 侧重于高速压缩和解压速度,而非对数据的最大限度压缩。

  • ZLIB – 基于 Deflate,ZLIB 是 ORC 数据存储格式文件的默认写入压缩格式。有关更多信息,请参阅上的 zlib 页面。 GitHub

  • ZSTDZstandard 实时数据压缩算法是一种具有高压缩率的快速压缩算法。Zstandard(ZSTD)库作为使用 BSD 许可证的开源软件提供。ZSTD 是 Iceberg 表的默认压缩格式。在写入 ZSTD 压缩数据时,Athena 默认使用 ZSTD 压缩级别 3。有关在 Athena 中使用 ZSTD 压缩级别的更多信息,请参阅 在 Athena 中使用 ZSTD 压缩级别

指定压缩格式

写入 CREATE TABLE 或 CTAS 语句时,您可以指定压缩属性,该属性可指定 Athena 写入这些表时要使用的压缩类型。

指定无压缩

CREATE TABLE 语句支持写入未压缩的文件。要写入未压缩的文件,请使用以下语法:

  • CREATE TABLE(文本文件或 JSON)– 在 TBLPROPERTIES 中,请指定 write.compression = NONE

  • CREATE TABLE (Parquet) – 在 TBLPROPERTIES 中,请指定 parquet.compression = UNCOMPRESSED

  • CREATE TABLE (ORC) – 在 TBLPROPERTIES 中,请指定 orc.compress = NONE

注释和资源

  • 目前,Athena 无法识别大写文件扩展名,例如 .GZ.BZIP2。避免使用包含大写文件扩展名的数据集,或将数据文件扩展名重命名为小写。

  • 对于 CSV、TSV 和 JSON 格式的数据,Athena 根据文件扩展名确定压缩类型。如果不存在文件扩展名,则 Athena 将数据视为未压缩的纯文本。如果您的数据已压缩,请确保文件名包含压缩扩展名,例如 gz

  • 不支持 ZIP 文件格式。

  • 要查询来自 Athena 的 Amazon Data Firehose 日志,支持的格式包括 GZIP 压缩或采用 SNAPPY 压缩的 ORC 文件。

  • 有关使用压缩的更多信息,请参阅 Amazon 大数据博客文章 Amazon Athena 的十大性能调整技巧的第 3 节(“压缩和拆分文件”)。