在 Athena 使用壓縮 - Amazon Athena

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

在 Athena 使用壓縮

Athena 支援各種壓縮格式來讀取和寫入資料,包括從使用多種壓縮格式的資料表讀取。例如,當某些鑲木地板檔案以 Snappy 壓縮時,Athena 可以成功讀取使用 Parquet 檔案格式的表格中的資料,而其他實木地板檔案也會以壓縮方式進行壓縮。GZIP同樣的原則適ORC用於文本文件和JSON存儲格式。

Athena 支援以下壓縮格式:

  • BZIP2— 使用布魯斯-惠勒算法的格式.

  • DEFLATE— 基於LZSS霍夫曼編碼的壓縮算法. Deflate 僅適用於 Avro 檔案格式。

  • GZIP— 基於放氣壓縮算法. 對於 Athena 引擎版本 2 和 3 中的 Hive 資料表,以及 Athena 引擎版本 2 中的 Iceberg 資料表,GZIP是 Parquet 和文字檔儲存格式檔案的預設寫入壓縮格式。不支援 tar.gz 格式的檔案。

  • LZ4— Lempel-Ziv 77 (LZ7) 系列的這個成員還專注於壓縮和解壓縮速度,而不是資料的最大壓縮。LZ4具有以下框架格式:

    • LZ4原@@ 生/無框架 — 區塊壓縮格式的無框標準實作LZ4。若要取得更多資訊,請參閱中的LZ4圖塊格式描述 GitHub。

    • LZ4陷害-通常的框架實現LZ4. 如需詳細資訊,請參閱(詳見)的LZ4框架格式說明 GitHub。

    • LZ4哈多普兼容 — 阿帕奇 Hadoop 的實現. LZ4 此實作會使用 BlockCompressorStream.java 類別封裝LZ4壓縮。

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

  • SNAPPY— 壓縮算法是倫皮爾 ZIV 的一部分 77 () LZ7 家庭. Snappy 著重於高壓縮和解壓縮速度,而不是資料的最大壓縮。

  • ZLIB— 以 Deflate 為基礎,ZLIB是ORC資料儲存格式檔案的預設寫入壓縮格式。如需詳細資訊,請參閱中的 zlib 頁面 GitHub。

  • ZSTDZstandard 實時數據壓縮算法是一種快速壓縮算法,可提供高壓縮比。Zstandard (ZSTD) 程式庫是使用BSD授權以開放原始碼軟體的形式提供。ZSTD是冰山資料表的預設壓縮。寫入ZSTD壓縮資料時,Athena 預設會使用ZSTD壓縮等級 3。如需在 Athena 中使用ZSTD壓縮等級的詳細資訊,請參閱使用ZSTD壓縮層級

注意

Athena 不支援撰寫使用LZ4或LZO格式壓縮的實木複合地板檔案。支援讀取這些壓縮格式。

指定壓縮格式

撰寫CREATETABLE或CTAS陳述式時,您可以指定壓縮屬性,以指定 Athena 寫入這些資料表時要使用的壓縮類型。

指定不壓縮

CREATETABLE語句支持寫入未壓縮文件。若要編寫未壓縮檔案,請使用下列語法:

  • CREATETABLE(文字檔案或JSON) — 在中TBLPROPERTIES,指定write.compression = NONE

  • CREATETABLE(鑲木地板) — 在中TBLPROPERTIES,指定parquet.compression = UNCOMPRESSED

  • CREATETABLE(ORC) — 在中TBLPROPERTIES,指定orc.compress = NONE

備註和資源

  • 目前 Athena 無法識別大寫的副檔名,諸如 .GZ.BZIP2。避免使用大寫副檔名的資料集,或將資料副檔名重新以小寫字母命名。

  • 對於CSV、TSV和中的資料JSON,Athena 會決定副檔名的壓縮類型。如果不存在任何副檔名,Athena 會將資料視為未壓縮的純文字。如果您的資料已壓縮,請確定檔案名稱包含副檔名,例如 gz

  • 不支援ZIP檔案格式。

  • 若要查詢來自 Athena 的 Amazon 資料 Firehose 日誌,支援的格式包括GZIP壓縮或壓SNAPPY縮ORC檔案。

  • 如需有關使用壓縮的詳細資訊,請參閱第 3 節 (「壓縮和分割檔案」) AWS 大數據部落格文章 Amazon Athena 的十大效能調整秘訣