在 Athena 中使用壓縮 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 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 原始/無框架 – LZ4 區塊壓縮格式的無框架標準實作。如需詳細資訊,請參閱 GitHub 上的 LZ4 區塊格式說明

    • LZ4 框架 – LZ4 的一般框架實作。如需詳細資訊,請參閱 GitHub 上的 LZ4 框架格式說明

    • LZ4 Hadoop 相容 – LZ4 的 Apache Haddop 實作。這個實作使用 BlockCompressorStream.java 類別包裝 LZ4 壓縮。

  • LZO – 使用 Lempel–Ziv–Oberhumer 演算法的格式,該演算法著重於高壓縮和解壓縮速度,而不是資料的最大壓縮。LZO 有兩種實作:

    • 標準 LZO – 如需詳細資訊,請參閱 Oberhumer 網站上的 LZO 摘要

    • LZO Hadoop 相容 – 這個實作使用 BlockCompressorStream.java 類別包裝 LZO 演算法。

  • SNAPPY – 屬於 Lempel-Ziv 77 (LZ7) 系列的壓縮演算法。Snappy 著重於高壓縮和解壓縮速度,而不是資料的最大壓縮。

  • ZLIB – 根據 Deflate,ZLIB 是 ORC 資料儲存格式中檔案的預設寫入壓縮格式。如需詳細資訊,請參閱 GitHub 上的 zlib 頁面。

  • ZSTDZstandard 即時資料壓縮演算法是一種提供高壓縮比的快速壓縮演算法。Zstandard (ZSTD) 程式庫是使用 BSD 授權作為開放原始碼所提供。ZSTD 是 Iceberg 資料表的預設壓縮。寫入 ZSTD 壓縮資料時,Athena 預設使用 ZSTD 壓縮級別 3。如需有關在 Athena 中使用 ZSTD 壓縮級別的詳細資訊,請參閱 使用 ZSTD 壓縮層級

注意

Athena 不支援編寫以 LZ4 或 LZO 格式壓縮的 Parquet 檔案。支援這些壓縮格式的讀取。

指定壓縮格式

當您寫入 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 Athena AWS 大數據部落格文章前 10 大效能調校秘訣的第 3 節 (「壓縮和分割檔案」)。 Amazon Athena