本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用壓縮最佳化工具
您可以使用 AWS Glue 主控台 AWS CLI或 AWS API,為 AWS Glue Data Catalog 中的 Apache Iceberg 資料表啟用壓縮。針對新的資料表,您可以選擇 Apache Iceberg 作為資料表格式,並在您建立資料表時啟用壓縮功能。新資料表依預設會停用壓縮功能。
- Console
-
啟用壓縮功能
-
在 https://https://console.aws.amazon.com/glue/ 開啟 AWS Glue 主控台,並以資料湖管理員、資料表建立者或已在資料表上授予 glue:UpdateTable
和 lakeformation:GetDataAccess
許可的使用者身分登入。
-
在導覽面板的 Data Catalog 下方,選擇資料表。
在資料表頁面上,選擇您要啟用壓縮的開放資料表格式資料表,然後在動作功能表下,選擇最佳化,然後選擇啟用。
您也可以選取資料表詳細資訊頁面上的資料表最佳化索引標籤來啟用壓縮。 選擇頁面下半區段的資料表最佳化索引標籤,然後選擇啟用壓縮。
當您在資料目錄中建立新的 Iceberg 資料表時,也可以使用啟用最佳化選項。
-
在啟用最佳化頁面上,選擇最佳化選項下的壓縮。
-
接著,從下拉式清單中選取 IAM 角色,其中包含 資料表最佳化先決條件 區段中顯示的許可。
您也可以選擇建立新的 IAM 角色選項,以建立具有執行壓縮所需許可的自訂角色。
請依照以下步驟更新現有 IAM 角色:
-
若要更新 IAM 角色的權限政策,請在 IAM 主控台中,前往用於執行壓縮程序的 IAM 角色。
-
在新增許可區段中,選擇建立政策。在新開啟的瀏覽器視窗中,建立要搭配您角色使用的新政策。
-
在建立政策頁面上,選擇 JSON
索引標籤。將先決條件中顯示的 JSON 程式碼複製到政策編輯器欄位。
-
如果您有安全政策組態,其中 Iceberg 資料表最佳化工具需要從特定虛擬私有雲端 (VPC) 存取 Amazon S3 儲存貯體,請建立 AWS Glue 網路連線或使用現有的網路連線。
如果您尚未設定 AWS Glue VPC 連線,請依照使用 AWS Glue 主控台或 AWS CLI/SDK 建立連接器連線一節中的步驟建立新的連線。
-
選擇壓縮策略。可用的選項包括:
Binpack – Binpack 是 Apache Iceberg 中的預設壓縮策略。它將較小的資料檔案合併成較大的檔案,以獲得最佳效能。
-
排序 – 在 Apache Iceberg 中排序是一種資料組織技術,可根據指定的資料欄在檔案中叢集資訊,透過減少需要處理的檔案數量來大幅改善查詢效能。您可以使用排序順序欄位在 Iceberg 的中繼資料中定義排序順序,並在指定多個資料欄時,資料會依資料欄出現的排序順序排序,以確保具有類似值的記錄存放在檔案中。排序壓縮策略透過排序分割區內所有檔案的資料,進一步進行最佳化。
Z 順序 – 當您需要依具有相同重要性的多個資料欄排序時,Z 順序是一種整理資料的方式。與排定資料欄優先順序的傳統排序不同,Z 排序為每個資料欄提供平衡權重,協助您的查詢引擎在搜尋資料時讀取較少的檔案。
該技術的運作方式是將不同資料欄的值的二進位數字組合在一起。例如,如果您有兩個資料欄中的數字 3 和 4,Z 排序會先將它們轉換為二進位 (3 變成 011,4 變成 100),然後交錯這些數字以建立新的值:011010。此交錯會建立模式,讓相關資料保持實際接近。
Z 排序對多維查詢特別有效。例如,相較於跨多個維度查詢的階層排序,依收入、狀態和郵遞區號排序的客戶資料表 Z 可提供卓越的效能。此組織允許以收入和地理位置的特定組合為目標的查詢,以快速找到相關資料,同時盡量減少不必要的檔案掃描。
-
最小輸入檔案 – 觸發壓縮之前,分割區中所需的資料檔案數目。
-
刪除檔案閾值 – 在資料檔案中符合壓縮資格之前所需的最低刪除操作。
-
選擇啟用最佳化。
- AWS CLI
-
下列範例顯示如何啟用壓縮功能。以有效的帳戶 ID 取代 AWS 帳戶 ID。將資料庫名稱和資料表名稱取代為實際的 Iceberg 資料表名稱和資料庫名稱。將 roleArn
取代為 IAM 角色的 AWS Resource Name (ARN),以及具有執行壓縮程序之必要權限的 IAM 角色名稱。您可以將壓縮策略取代sort
為其他支援的策略,例如 z-order
或 binpack
。
順序」,視您的需求而定。
aws glue create-table-optimizer \
--catalog-id 123456789012
\
--database-name iceberg_db
\
--table-name iceberg_table
\
--table-optimizer-configuration '{
"roleArn": "arn:aws:iam::123456789012:role/optimizer_role
",
"enabled": true,
"vpcConfiguration": {"glueConnectionName": "glue_connection_name"},
"compactionConfiguration": {
"icebergConfiguration": {"strategy": "sort
"}
}
}'\
--type compaction
- AWS API
-
呼叫 CreateTableOptimizer 操作以啟用資料表的壓縮。
啟用壓縮後,資料表最佳化索引標籤會在壓縮執行完成後顯示下列壓縮詳細資訊:
- 開始時間
-
在 Data Catalog 中啟動壓縮程序的時間。該值為以 UTC 時間為單位的時間戳記。
- 結束時間
-
壓縮程序在 Data Catalog 中結束的時間。該值為以 UTC 時間為單位的時間戳記。
- Status
-
壓縮執行的狀態。值會是 success 或 fail。
- 壓縮的檔案
壓縮的檔案總數。
- 已壓縮的位元組
-
壓縮的位元組總數。