

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

# 目錄層級資料表最佳化工具
<a name="catalog-level-optimizers"></a>

使用一次性目錄組態，您可以為 AWS Glue Data Catalog中所有新的和更新的 Apache Iceberg 資料表設定自動最佳化工具，例如壓縮、快照保留和孤立檔案刪除。目錄層級最佳化工具組態可讓您在目錄內的所有資料表上套用一致的最佳化工具設定，無需為每個資料表個別設定最佳化工具。

資料湖管理員可以在 Lake Formation 主控台中選取預設目錄，並使用 `Table optimization` 選項啟用最佳化工具，以設定資料表最佳化工具。當您在 Data Catalog 中建立新資料表或更新現有資料表時，Data Catalog 會自動執行資料表最佳化，以減少操作負擔。

如果您已在資料表層級設定最佳化，或先前已刪除資料表的資料表最佳化設定，則這些資料表特定設定優先於資料表最佳化的預設目錄設定。如果未在資料表或目錄層級定義組態參數，則會套用 Iceberg 資料表屬性值。此設定適用於快照保留和孤立檔案刪除最佳化工具。

啟用目錄層級最佳化工具時，考慮下列事項：
+ 當您在建立目錄時設定最佳化設定，並隨後透過「更新目錄」請求停用最佳化時，操作會逐級瀏覽目錄內的所有資料表。
+ 如果您已為指定的資料表設定最佳化工具，則目錄層級的停用操作不會影響此資料表。
+ 當您在目錄層級停用最佳化工具時，具有現有最佳化工具組態的資料表將維持其特定設定，並不受目錄層級變更的影響。但是，沒有自己的最佳化工具組態的資料表會從目錄層級繼承已停用的狀態。
+ 由於快照保留和孤立檔案刪除最佳化工具可以以排程為基礎，因此更新會在排程開始時引入隨機延遲。這會導致每個最佳化工具在稍微不同的時間啟動，從而分散負載並降低超出服務限制的可能性。
+ 啟用 AWS Glue Data Catalog 加密時，資料表不會自動繼承目錄層級最佳化工具設定。如果您的目錄已啟用中繼資料加密，您必須為每個資料表個別設定資料表最佳化工具。若要使用目錄層級最佳化工具繼承，目錄上必須停用中繼資料加密。

**Topics**
+ [啟用目錄層級自動最佳化資料表](enable-auto-table-optimizers.md)
+ [檢視目錄層級最佳化](view-catalog-optimizations.md)
+ [停用目錄層級資料表最佳化](disable-auto-table-optimizers.md)

# 啟用目錄層級自動最佳化資料表
<a name="enable-auto-table-optimizers"></a>

 您可以在 Data Catalog 中為所有新 Apache Iceberg 資料表啟用自動最佳化資料表。建立資料表後，您也可以手動明確更新資料表最佳化設定。

 若要更新 Data Catalog 設定以啟用目錄層級最佳化資料表，所使用的 IAM 角色必須具有根目錄的 `glue:UpdateCatalog` 許可。您可以使用 `GetCatalog` API 驗證目錄屬性。

 對於 Lake Formation 受管資料表，目錄最佳化組態期間選取的 IAM 角色需要任何新資料表或更新資料表的 Lake Formation `ALTER`、`DESCRIBE`、`INSERT` 和 `DELETE` 許可。

## 啟用目錄層級最佳化工具 (主控台)
<a name="enable-catalog-optimizers-console"></a>

1. 開啟 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。

1. 在導覽窗格中，選擇 **Data Catalog**。

1. 選取**目錄**索引標籤。

1. 選擇帳戶層級目錄。

1. 選擇**資料表最佳化**、**資料表最佳化**索引標籤下的**編輯**。您也可以從**動作**中選擇**編輯最佳化**。  
![\[螢幕擷取畫面顯示在目錄層級啟用最佳化的編輯選項。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/catalog-edit-optimizations.png)

1. 在**資料表最佳化**頁面上，設定下列選項：  
![\[螢幕擷取畫面顯示目錄層級的最佳化選項。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/catalog-optimization-options.png)

   1. 設定**壓縮**設定：
      + 啟用/停用壓縮。
      + 選擇具有執行最佳化工具所需許可的 IAM 角色。

        如需 IAM 角色的許可要求的詳細資訊，請參閱[資料表最佳化先決條件](optimization-prerequisites.md)。

   1. 設定**快照保留**設定：
      + 啟用/停用保留。
      + 設定快照保留期間 (天) - 預設值為 5 天。
      + 設定要保留的快照數目 - 預設值為 1 個快照。
      + 啟用/停用清除過期檔案。

   1. 設定**孤立檔案刪除**設定：
      + 啟用/停用孤立檔案刪除。
      + 設定孤立檔案保留期間 (天) - 預設值為 3 天。

1. 選擇**儲存**。

## 透過 啟用目錄層級最佳化工具 AWS CLI
<a name="catalog-auto-optimizers-cli"></a>

使用下列 CLI 命令，透過最佳化工具設定更新現有的目錄：

**Example 透過最佳化工具設定更新目錄**  

```
aws glue update-catalog \
   --name catalog-id \
  --catalog-input \
  '{
    "CatalogId": "111122223333",
    "CatalogInput": {
        "CatalogProperties": {
            "CustomProperties": {
                "ColumnStatistics.Enabled": "false",
                "ColumnStatistics.RoleArn": "arn:aws:iam::111122223333:role/service-role/stats-role-name"
            },
            "IcebergOptimizationProperties": {
                "RoleArn": "arn:aws:iam::111122223333:role/optimizer-role-name",
                "Compaction": {
                    "enabled": "true"
                },
                "Retention": {
                    "enabled": "true",
                    "snapshotRetentionPeriodInDays": "10",
                    "numberOfSnapshotsToRetain": "5",
                    "cleanExpiredFiles": "true"
                },
                "OrphanFileDeletion": {
                    "enabled": "true",
                    "orphanFileRetentionPeriodInDays": "3"
                }
            }
        }
    }
}'
```

如果您遇到目錄層級最佳化工具的問題，請檢查下列項目：
+ 確保 IAM 角色具有正確的許可，如「先決條件」一節中所述。
+ 檢查 CloudWatch 日誌是否有任何與最佳化工具操作相關的錯誤訊息。

   如需詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[檢視可用指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。
+ 檢查目錄組態，以確認目錄設定已成功套用。
+ 對於資料表存取失敗，請檢查 CloudWatch 日誌和 EventBridge 通知，以取得詳細的錯誤資訊。

# 檢視目錄層級最佳化
<a name="view-catalog-optimizations"></a>

 啟用目錄層級資料表最佳化時，只要透過 或 `UpdateTable` APIs、 AWS 管理主控台 SDK 或 建立`CreateTable`或更新 Apache Iceberg 資料表 AWS Glue 編目程式，就會為該資料表建立對等的資料表層級設定。

 建立或更新資料表之後，您可以驗證資料表詳細資訊以確認資料表最佳化。`Table optimization` 會顯示設為 `Catalog` 的 `Configuration source` 屬性。

![\[已套用具有目錄層級最佳化組態的 Apache Iceberg 資料表的影像。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/catalog-optimization-enabled.png)


# 停用目錄層級資料表最佳化
<a name="disable-auto-table-optimizers"></a>

 您可以使用 AWS Lake Formation 主控台 `glue:UpdateCatalog` API 來停用新資料表的資料表最佳化。

**在目錄層級停用資料表最佳化**

1. 開啟 Lake Formation 主控台，網址為 [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。

1. 在左側導覽列上，選擇**目錄**。

1. 在**目錄摘要**頁面上，選擇**資料表最佳化**下的**編輯**。

1. 在**編輯最佳化**頁面上，取消選取**最佳化選項**。

1. 選擇**儲存**。