本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Athena 使用壓縮
Athena 支援各種壓縮格式來讀取和寫入資料,包括從使用多種壓縮格式的資料表讀取。例如,當某些鑲木地板檔案以 Snappy 壓縮時,Athena 可以成功讀取使用 Parquet 檔案格式的表格中的資料,而其他實木地板檔案也會以壓縮方式進行壓縮。GZIP同樣的原則適ORC用於文本文件和JSON存儲格式。
Athena 支援以下壓縮格式:
-
BZIP2— 使用布魯斯-惠勒算法的格式.
-
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有兩個實現:
-
標準 LZO — 如需詳細資訊,請參閱 Oberhumer 網站上的LZO摘要
。 -
LZO兼容 hadoop- 此實現將LZO算法包裝在 .java 類中。BlockCompressorStream
-
-
SNAPPY— 壓縮算法是倫皮爾 ZIV 的一部分 77 () LZ7 家庭. Snappy 著重於高壓縮和解壓縮速度,而不是資料的最大壓縮。
-
ZLIB— 以 Deflate 為基礎,ZLIB是ORC資料儲存格式檔案的預設寫入壓縮格式。如需詳細資訊,請參閱中的 zlib
頁面 GitHub。 -
ZSTD— Zstandard 實時數據壓縮算法
是一種快速壓縮算法,可提供高壓縮比。Zstandard (ZSTD) 程式庫是使用BSD授權以開放原始碼軟體的形式提供。ZSTD是冰山資料表的預設壓縮。寫入ZSTD壓縮資料時,Athena 預設會使用ZSTD壓縮等級 3。如需在 Athena 中使用ZSTD壓縮等級的詳細資訊,請參閱使用ZSTD壓縮層級。
注意
Athena 不支援撰寫使用LZ4或LZO格式壓縮的實木複合地板檔案。支援讀取這些壓縮格式。
指定壓縮格式
撰寫CREATETABLE或CTAS陳述式時,您可以指定壓縮屬性,以指定 Athena 寫入這些資料表時要使用的壓縮類型。
-
如需壓縮表屬性的清單 CREATETABLE,請ALTER TABLE SET TBLPROPERTIES參閱。
指定不壓縮
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 的十大效能調整秘訣
。