啟用快照保留最佳化工具
您可以使用 AWS Glue 主控台、AWS CLI 或 AWS API,在 Data Catalog 中為 Apache Iceberg 資料表啟用快照保留最佳化工具。針對新的資料表,您可以選擇 Apache Iceberg 作為資料表格式,並在您建立資料表時啟用快照保留最佳化工具。新資料表的快照保留預設為停用。
- Console
-
啟用快照保留最佳化工具
-
在 https://console.aws.amazon.com/glue/ 中開啟 AWS Glue 主控台,然後以資料湖管理員、資料表建立者,或經授予資料表中 glue:UpdateTable 和 lakeformation:GetDataAccess 權限之使用者的身分登入。
-
在導覽面板的 Data Catalog 下方,選擇資料表。
在資料表頁面上,選擇要啟用快照保留最佳化工具的 Iceberg 資料表,然後在動作功能表下,選擇最佳化下的啟用。
您也可以透過選取資料表並開啟資料表詳細資訊頁面,來啟用最佳化。選擇頁面下半部分的資料表最佳化索引標籤,然後選擇啟用快照保留。
-
在啟用最佳化頁面的最佳化組態下,您具有兩個選項:使用預設設定或自訂設定。如果您選擇使用預設設定,AWS Glue 會使用 Iceberg 資料表組態中定義的屬性,來確定快照保留期間和要保留的快照數目。如果沒有此組態,AWS Glue 會保留一個快照五天,並刪除與過期快照關聯的檔案。
-
接著,選擇 AWS Glue 可代表您擔任的 IAM 角色,以執行最佳化工具。如需 IAM 角色所需許可的詳細資訊,請參閱 資料表最佳化先決條件 一節。
請依照以下步驟更新現有 IAM 角色:
-
若要更新 IAM 角色的權限政策,請在 IAM 主控台中,前往用於執行壓縮程序的 IAM 角色。
-
在新增權限區段中,選擇建立政策。在新開啟的瀏覽器視窗中,建立要搭配您角色使用的新政策。
在建立政策頁面上,選擇 JSON 標籤。將「先決條件」中顯示的 JSON 程式碼複製到政策編輯器欄位中。
-
如果您要手動設定快照保留組態的值,請選擇自訂設定。
-
選擇方塊 將選取的 IAM 角色套用至選取的最佳化工具選項,以對所有啟用的最佳化工具使用單一 IAM 角色。
-
如果您具有安全政策組態,其中 Iceberg 資料表最佳化工具需要從特定虛擬私有雲端 (VPC) 存取 Amazon S3 儲存貯體,請建立 AWS Glue 網路連線或使用現有的網路連線。
如果您尚未設定「AWS Glue VPC 連線」,請依照使用 AWS Glue 主控台或 AWS CLI/SDK 建立連接器的連線一節中的步驟建立新的連線。
接下來,在快照保留組態下,選擇使用 Iceberg 資料表組態中指定的值,或指定快照保留期間的自訂值 (history.expire.max-snapshot-age-ms)、要保留的快照數目下限 (history.expire.min-snapshots-to-keep),以及連續快照刪除任務執行之間的小時數。
-
在資料表最佳化工具從資料表中繼資料中刪除舊快照時,選擇刪除關聯的檔案以刪除基礎檔案。
如果您未選擇此選項,從資料表中繼資料中移除較舊的快照時,關聯的檔案會保留在儲存體中作為孤立檔案。
-
接著,閱讀注意聲明,然後選擇我確認以繼續。
在 Data Catalog 中,快照保留最佳化工具會遵守由分支和標籤層級保留政策控制的生命週期。如需詳細資訊,請參閱 Iceberg 文件中的分支和標記一節。
-
檢閱組態,然後選擇啟用最佳化。
等待幾分鐘,讓保留最佳化工具執行,並根據組態使舊快照過期。
- AWS CLI
-
若要在 AWS Glue 中啟用新 Iceberg 資料表的快照保留,您需要建立類型為 retention 的資料表最佳化工具,並將 table-optimizer-configuration 中的 enabled 欄位設定為 true。您可以使用 AWS CLI 命令 create-table-optimizer 或 update-table-optimizer 來執行此作業:此外,您需要根據您的要求指定保留組態欄位,例如 snapshotRetentionPeriodInDays 和 numberOfSnapshotsToRetain。
下列範例示範如何啟用快照保留最佳化工具。將帳戶 ID 取代為有效的 AWS 帳戶 ID。將資料庫名稱和資料表名稱取代為實際的 Iceberg 資料表名稱和資料庫名稱。將 roleArn 取代為 IAM 角色的 AWS Resource Name (ARN),以及具有執行快照保留最佳化工具所需許可的 IAM 角色名稱。
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"}, "retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7,"numberOfSnapshotsToRetain":3,"cleanExpiredFiles":'true'}}}'\
--type retention
此命令會為指定型錄、資料庫和區域中指定的 Iceberg 資料表建立保留最佳化工具。table-optimizer-configuration 指定要使用的 IAM 角色 ARN、啟用最佳化工具,以及設定保留組態。在此範例中,其會保留快照 7 天,至少保留 3 個快照,並清除過期檔案。
-
snapshotRetentionPeriodInDays – 快照過期前保留的天數。預設值為 5。
-
numberOfSnapshotsToRetain – 要保留的快照數目下限,即使其早於保留期間。預設值為 1。
-
cleanExpiredFiles – 布林值,指出是否要在快照過期後刪除過期的資料檔案。預設值為 true。
設定為 true 時,較舊的快照會從資料表中繼資料中移除,而基礎檔案會刪除。如果將此參數設定為 false,較舊的快照會從資料表中繼資料中移除,但基礎檔案會保留在儲存體中作為孤立檔案。
- AWS API
-
呼叫 CreateTableOptimizer 操作以啟用資料表的快照保留最佳化工具。
啟用壓縮功能後,資料表最佳化索引標籤會顯示下列壓縮詳細資料 (大約 15-20 分鐘後):
- 開始時間
-
快照保留最佳化工具啟動的時間。該值為以 UTC 時間為單位的時間戳記。
- 執行時間
-
時間顯示最佳化工具完成任務所需的時間。該值為以 UTC 時間為單位的時間戳記。
- Status
-
最佳化工具執行的狀態。值會是 success 或 fail。
- 刪除的資料檔案數
刪除的檔案總數。
- 刪除的資訊清單檔案數
-
刪除的資訊清單檔案總數。
- 刪除的資訊清單數
-
刪除的資訊清單總數。