最佳化處理 Iceberg 資料表 - Amazon Athena

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

最佳化處理 Iceberg 資料表

隨著 Iceberg 資料表中的資料累積,由於開啟檔案時所需的處理時間增加,查詢的效率會逐漸降低。如果資料表內含 delete 檔案,則運算成本會更高。Iceberg 中的 delete 檔案會儲存資料列級的刪除內容,引擎查詢結果時也必須將已刪除的資料列納入查詢範圍。

為了最佳化 Iceberg 資料表查詢的效能,Athena 支援使用手動壓縮的資料表維護命令。壓縮可在不改變資料表內容的情況下,最佳化資料表的版面配置。

OPTIMIZE

OPTIMIZE table REWRITE DATA 壓縮動作會根據相關 delete 檔案的大小和數量,將資料檔案重寫成更好的版面配置。如需有關語法和資料表屬性的詳細資訊,則請參閱 OPTIMIZE

範例

下列範例將 delete 檔案合併到資料檔案中,並產生接近目標檔案大小的檔案,其中 category 的值是 c1

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VACUUM

VACUUM 會執行快照過期孤立檔案移除。這些動作會減少中繼資料大小,並移除不在目前資料表狀態的檔案,這些檔案也早於為資料表指定的保留期間。如需有關語法的詳細資訊,則請參閱 VACUUM

範例

下列範例會使用資料表屬性來將資料表 iceberg_table 設定為保留最近三天的資料,然後使用 VACUUM 將舊快照集設為過期,並從資料表中移除孤立檔案。

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table