

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

# 建立中繼資料表組態
<a name="metadata-tables-create-configuration"></a>

若要在全託管 Apache Iceberg 中繼資料表中產生和儲存 Amazon S3 Metadata，您可以為一般用途儲存貯體建立中繼資料表組態。只要儲存貯體中的組態處於作用中狀態，Amazon S3 就會持續更新中繼資料的資料表，以反映資料的最新變更狀態。此外，Amazon S3 會持續最佳化中繼資料表，以協助降低儲存成本並提高分析查詢效能。

您可以針對每個一般用途儲存貯體建立一個中繼資料表組態，其中包含兩個互補的中繼資料表：
+ **日誌資料表**：依預設，您的中繼資料表組態包含*日誌資料表*，資料表中擷取了儲存貯體中物件發生的事件。日誌資料表會以近乎即時的速度記錄對資料所做的變更，協助您進行識別上傳至儲存貯體的新資料、追蹤最近刪除的物件、監控生命週期轉換等作業。日誌資料表會記錄新物件，以及更新物件及其中繼資料的 (更新需要 `PUT` 或 `DELETE` 運算子)。

  日誌資料表會擷取建立中繼資料表組態後發生之變更事件 (例如上傳、更新和刪除) 的中繼資料。由於此資料表是可查詢的，因此您可以透過簡單的 SQL 查詢，稽核對儲存貯體的變更。

  每個中繼資料表組態都需要日誌資料表。(在 S3 Metadata 的初始版本中，日誌資料表又稱為「中繼資料表」。)

  如需日誌資料表中存放哪些資料的詳細資訊，請參閱 [S3 Metadata 日誌資料表結構描述](metadata-tables-schema.md)。

  為協助將儲存成本降到最低，您可以選擇啟用日誌資料表記錄到期條件。如需詳細資訊，請參閱[到期的日誌資料表記錄](metadata-tables-expire-journal-table-records.md)。
+ **即時庫存資料表**：您可以選擇將*即時庫存資料表*新增至中繼資料表組態。即時庫存資料表提供了儲存貯體中所有物件及其版本的簡單、可查詢的庫存，以方便您確認資料的最新狀態。

  您可以使用即時庫存資料表，透過識別要針對各種工作負載進行處理的物件，簡化並加快業務工作流程和巨量資料任務。例如，您可以查詢即時庫存資料表，尋找儲存在特定儲存類別中的所有物件、具有特定標籤的所有物件、未使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 藉由伺服器端加密功能進行加密的所有物件等。

  當您為中繼資料表組態啟用即時庫存資料表，資料表會通過一個稱為*回填*的程序，在該期間 Amazon S3 會掃描您的一般用途儲存貯體，以擷取存在於儲存貯體中所有物件的初始中繼資料。根據您的儲存貯體中的物件數量，此程序可能需要幾分鐘 (至少 15 分鐘) 至數小時。回填程序完成後，即時庫存資料表的狀態會從**回填**變更為**作用中**。回填完成後，對物件的更新通常會在一小時內反映在即時庫存資料表中。

  您需要為回填即時庫存資料表付費。如果您的一般用途儲存貯體擁有超過十億個物件，則您也需為即時庫存資料表支付月費。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

  如需即時庫存資料表中存放哪些資料的詳細資訊，請參閱 [S3 Metadata 即時庫存資料表結構描述](metadata-tables-inventory-schema.md)。

中繼資料資料表具有下列 Amazon Resource Name (ARN) 格式，其中包含中繼資料資料表的資料表 ID：

`arn:aws:s3tables:region-code:account-id:bucket/aws-s3/table/table-id`

例如，美國東部 (維吉尼亞北部) 區域中的中繼資料表會有如下所示的 ARN：

`arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/a12bc345-67d8-912e-3456-7f89123g4h56`

日誌資料表具有名稱 `journal`，而即時庫存資料表具有名稱 `inventory`。

當建立中繼資料表組態時，您的中繼資料表會儲存在 AWS 受管資料表儲存貯體中。您帳戶和相同區域中的所有中繼資料表組態都會存放在單一 AWS 受管資料表儲存貯體中。這些 AWS 受管資料表儲存貯體已命名`aws-s3`，並具有下列 Amazon Resource Name (ARN) 格式：

`arn:aws:s3tables:region:account_id:bucket/aws-s3`

例如，如果您的帳戶 ID 為 123456789012，而您的一般用途儲存貯體位於美國東部 （維吉尼亞北部） (`us-east-1`)，您的 AWS 受管資料表儲存貯體也會在美國東部 （維吉尼亞北部） (`us-east-1`) 建立，並具有下列 ARN：

`arn:aws:s3tables:us-east-1:123456789012:bucket/aws-s3`

根據預設， AWS 受管資料表儲存貯體會使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密。建立第一個中繼資料組態之後，您可以設定 AWS 受管資料表儲存貯體的預設加密設定，以搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 使用伺服器端加密。如需詳細資訊，請參閱 [AWS 受管資料表儲存貯體的加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html#aws-managed-buckets-encryption)和 [使用資料表儲存貯體中的 AWS KMS 金鑰 (SSE-KMS) 指定伺服器端加密](s3-tables-kms-specify.md)。

在 AWS 受管資料表儲存貯體中，組態的中繼資料資料表通常會以下列命名格式存放在命名空間中：

`b_general-purpose-bucket-name`

如需有關中繼資料表命名空間的詳細資訊，請參閱 [中繼資料表的運作方式](metadata-tables-overview.md#metadata-tables-how-they-work)。

建立中繼資料表組態時，您可以選擇使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 透過伺服器端加密來加密 AWS 受管中繼資料表。如果您選擇使用 SSE-KMS，則必須在與您的一般用途儲存貯體相同的區域中提供客戶管理的 KMS 金鑰。您只能在建立資料表期間設定資料表的加密類型。建立 AWS 受管資料表後，您無法變更其加密設定。若要為中繼資料表指定 SSE-KMS，您必須具有特定權限。如需詳細資訊，請參閱 [SSE-KMS 的權限](metadata-tables-permissions.md#metadata-kms-permissions)。

中繼資料表的加密設定優先於預設儲存貯體層級的加密設定。如果您沒有為資料表指定加密，則會繼承儲存貯體的預設加密設定。

AWS 受管資料表儲存貯體不會計入 S3 Tables 配額。如需使用 AWS 受管資料表儲存貯體和 AWS 受管資料表的詳細資訊，請參閱[使用 AWS 受管資料表儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html)。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs 或 Amazon S3 REST API 來建立中繼資料表組態。

**注意**  
如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，建議您刪除並重新建立組態，以便使日誌資料表記錄過期，並建立庫存資料表。如需詳細資訊，請參閱[在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](#metadata-tables-migration)。
如果您已刪除中繼資料資料表組態，並想要為相同的一般用途儲存貯體重新建立組態，您必須先從 AWS 受管資料表儲存貯體手動刪除舊日誌和庫存資料表。否則，建立新中繼資料資料表組態會失敗，因為這些資料表已存在。若要刪除您的中繼資料表，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md#delete-metadata-table-procedure)。  
刪除中繼資料表組態只會刪除組態。受 AWS 管資料表儲存貯體和中繼資料資料表仍然存在，即使您刪除中繼資料資料表組態也一樣。

**先決條件**  
建立中繼資料表組態之前，請確定您已符合下列先決條件：
+ 建立中繼資料表組態之前，請確定您具有建立和管理中繼資料表的必要 AWS Identity and Access Management (IAM) 許可。如需詳細資訊，請參閱[設定設定中繼資料表的許可](metadata-tables-permissions.md)。
+ 如果您計劃使用 Amazon Athena 或其他查詢引擎 AWS 查詢中繼資料表，請確定您將 AWS 受管資料表儲存貯體與 AWS 分析服務整合。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

  如果您已在此區域中整合現有的資料表儲存貯體，您的 AWS 受管資料表儲存貯體也會自動整合。若要確定此區域中資料表儲存貯體的整合狀態，請開啟 Amazon S3 主控台，然後在左側導覽窗格中選擇**資料表儲存貯體**。在**與 AWS 分析服務的整合**下，檢查區域以及整合狀態是否顯示**已啟用**。

## 建立中繼資料表組態
<a name="create-metadata-config-procedure"></a>

### 使用 S3 主控台
<a name="create-metadata-config-console"></a>

**建立中繼資料表組態**

建立中繼資料表組態之前，請確定您已檢閱並符合[先決條件](#metadata-table-config-prereqs)，而且已檢閱[中繼資料表限制](metadata-tables-restrictions.md)。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇您要為其建立中繼資料表組態的一般用途儲存貯體。
**注意**  
請確定此一般用途儲存貯體是可使用 AWS 區域 資料表儲存貯體的 。資料表儲存貯體僅適用於美國東部 (維吉尼亞北部)、美國東部 (俄亥俄) 和美國西部 (奧勒岡) 區域。

1. 在儲存貯體的詳細資訊頁面上，選擇**中繼資料**索引標籤。

1. 在**中繼資料**索引標籤上，選擇**建立中繼資料組態**。

1. 在**建立中繼資料組態**頁面的**日誌資料表**下，您可以選擇是否使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 透過伺服器端加密來加密資料表。根據預設，日誌資料表會使用 Amazon S3 受管金鑰 (SSE-S3) 藉由伺服器端加密進行加密。

   如果您選擇使用 SSE-KMS，則必須在與您的一般用途儲存貯體相同的區域中提供客戶管理的 KMS 金鑰。
**重要**  
您只能在建立資料表期間設定中繼資料表的加密類型。建立 AWS 受管資料表後，您無法變更其加密設定。
   + 若要使用 SSE-S3 (預設) 加密日誌資料表，請選擇**不指定加密類型**。
   + 若要使用 SSE-KMS 加密日誌資料表，請選擇**指定加密類型**。在**加密類型**下，選擇**使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 的伺服器端加密**。在 **AWS KMS 金鑰**下，從現有的 KMS 金鑰中選擇，或輸入您的 KMS 金鑰 ARN。如果您還沒有 KMS 金鑰，請選擇**輸入 KMS 金鑰 ARN**，然後選擇**建立 KMS 金鑰**。

     請確定您已設定 SSE-KMS 的必要權限。如需詳細資訊，請參閱 [SSE-KMS 的權限](metadata-tables-permissions.md#metadata-kms-permissions)。

1. (選用) 根據預設，日誌資料表中的記錄不會過期。為協助將儲存成本降到最低，您可以針對**記錄過期**選擇**已啟用**。

   如果啟用日誌資料表記錄到期條件，則可以設定保留日誌資料表記錄的天數。若要設定**記錄變成過期的天數**值，您可以指定介於 `7` 和 `2147483647` 之間的任何整數。例如，若要將日誌資料表記錄保留一年，請將此值設定為 `365`。

   記錄將在符合到期條件後的 24 至 48 小時內到期。
**重要**  
日誌資料表記錄到期後，便無法復原。

   在**日誌資料表記錄將在指定天數後到期**下，選取此核取方塊。

1. (選用) 如果您要將庫存資料表新增至中繼資料資料表組態，請在**即時庫存資料表**下，針對**組態狀態**選擇**已啟用**。

   您可以選擇是否使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)，以伺服器端加密來加密資料表。根據預設，庫存資料表會使用 Amazon S3 受管金鑰 (SSE-S3) 藉由伺服器端加密進行加密。

   如果您選擇使用 SSE-KMS，則必須在與您的一般用途儲存貯體相同的區域中提供客戶管理的 KMS 金鑰。
**重要**  
您只能在建立資料表期間設定中繼資料表的加密類型。建立 AWS 受管資料表後，您無法變更其加密設定。
   + 若要使用 SSE-S3 (預設) 加密庫存資料表，請選擇**不指定加密類型**。
   + 若要使用 SSE-KMS 加密庫存資料表，請選擇**指定加密類型**。在**加密類型**下，選擇**使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 的伺服器端加密**。在 **AWS KMS 金鑰**下，從現有的 KMS 金鑰中選擇，或輸入您的 KMS 金鑰 ARN。如果您還沒有 KMS 金鑰，請選擇**輸入 KMS 金鑰 ARN**，然後選擇**建立 KMS 金鑰**。

     請確定您已設定 SSE-KMS 的必要權限。如需詳細資訊，請參閱 [SSE-KMS 的權限](metadata-tables-permissions.md#metadata-kms-permissions)。

1. 選擇**建立中繼資料表組態**。

如果您的中繼資料表組態成功，中繼資料表的名稱和 ARN 以及 AWS 受管資料表儲存貯體和命名空間的名稱，都會顯示在**中繼資料**索引標籤上。

如果您選擇為中繼資料表組態啟用即時庫存資料表，資料表會利用一個稱為*回填*的程序，在該期間 Amazon S3 會掃描您的一般用途儲存貯體，以擷取存在於儲存貯體中所有物件的初始中繼資料。根據您的儲存貯體中的物件數量，此程序可能需要幾分鐘 (至少 15 分鐘) 至數小時。回填程序完成後，庫存資料表的狀態會從**回填**變更為**作用中**。回填完成後，對物件的更新通常會在一小時內反映在庫存資料表中。

若要監控中繼資料表組態的更新，您可以使用 AWS CloudTrail。如需詳細資訊，請參閱[CloudTrail 日誌記錄所追蹤的 Amazon S3 儲存貯體層級動作](cloudtrail-logging-s3-info.md#cloudtrail-bucket-level-tracking)。

### 使用 AWS CLI
<a name="create-metadata-config-cli"></a>

若要執行下列命令，您必須 AWS CLI 安裝並設定 。如果您尚未 AWS CLI 安裝 ，請參閱*AWS Command Line Interface 《 使用者指南*》中的[安裝或更新至最新版本的 AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) 。

或者，您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) 和[開始使用 AWS CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/getting-started.html)。

**使用 建立中繼資料表組態 AWS CLI**

建立中繼資料表組態之前，請確定您已檢閱並符合[先決條件](#metadata-table-config-prereqs)，而且已檢閱[中繼資料表限制](metadata-tables-restrictions.md)。

若要使用下列範例命令，請以您自己的資訊取代 `user input placeholders`。

1. 建立包含中繼資料表組態的 JSON 檔案，然後儲存檔案 (例如 `metadata-config.json`)。以下是範例組態。

   您必須指定是否要啟用或停用日誌資料表記錄過期。如果您選擇啟用記錄過期，您還必須指定日誌資料表記錄過期的天數。若要設定 `Days` 值，您可以指定介於 `7` 和 `2147483647` 之間的任何整數。例如，若要將日誌資料表記錄保留一年，請將此值設定為 `365`。

   您可以選擇設定庫存資料表。

   對於日誌資料表和庫存資料表，您可以選擇指定加密組態。根據預設，中繼資料表會使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密，其中可以將 `SseAlgorithm` 設定為 `AES256`。

   若要使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 透過伺服器端加密來加密中繼資料表，請將 `SseAlgorithm`設定為 `aws:kms`。您還必須在一般用途儲存貯體所在的相同區域中，將 `KmsKeyArn` 設定為客戶自管 KMS 金鑰的 ARN。

   ```
   {
     "JournalTableConfiguration": {
        "RecordExpiration": {          
          "Expiration": "ENABLED",
         "Days": 10
       },
       "EncryptionConfiguration": {  
         "SseAlgorithm": "AES256"
       }
     },
     "InventoryTableConfiguration": { 
       "ConfigurationState": "ENABLED",
       "EncryptionConfiguration": {   
         "SseAlgorithm": "aws:kms",
         "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id"
       }
     }
   }
   ```

1. 使用下列命令，將中繼資料表組態套用至您的一般用途儲存貯體 (例如 `amzn-s3-demo-bucket`)：

   ```
   aws s3api create-bucket-metadata-configuration \
   --bucket amzn-s3-demo-bucket \
   --metadata-configuration file://./metadata-config.json \
   --region us-east-2
   ```

1. 若要確認已建立組態，請使用下列命令：

   ```
   aws s3api get-bucket-metadata-configuration \
   --bucket amzn-s3-demo-bucket \
   --region us-east-2
   ```

若要監控中繼資料表組態的更新，您可以使用 AWS CloudTrail。如需詳細資訊，請參閱[CloudTrail 日誌記錄所追蹤的 Amazon S3 儲存貯體層級動作](cloudtrail-logging-s3-info.md#cloudtrail-bucket-level-tracking)。

### 使用 REST API
<a name="create-metadata-config-rest-api"></a>

您可以傳送 REST 請求來建立中繼資料表組態。如需詳細資訊，請參閱 *Amazon S3 API 參考*中的 [https://docs.aws.amazon.com//AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html)。

### 使用 AWS SDKs
<a name="create-metadata-config-sdk"></a>

您可以使用 AWS SDKs 在 Amazon S3 中建立中繼資料表組態。如需相關資訊，請參閱 Amazon S3 API 參考**中的[支援的 SDK 清單](https://docs.aws.amazon.com//AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html#API_CreateBucketMetadataConfiguration_SeeAlso)。

## 在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表
<a name="metadata-tables-migration"></a>

如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，建議您刪除並重新建立組態，以便使日誌資料表記錄過期，並建立庫存資料表。刪除舊組態和建立新組態之間的一般用途儲存貯體的任何變更，都不會記錄在任一日誌資料表中。

若要從舊中繼資料組態移轉至新組態，請執行下列動作：

1. 刪除現有的中繼資料表組態。如需逐步說明，請參閱 [刪除中繼資料表組態](metadata-tables-delete-configuration.md)。

1. 建立新的中繼資料表組態。如需逐步說明，請參閱 [建立中繼資料表組態](#metadata-tables-create-configuration)。

如果您需要遷移組態的協助，請聯絡 AWS 支援。

建立新的中繼資料組態後，您會有兩個日誌資料表。如果您不再需要舊的日誌資料表，則可以將其刪除。如需逐步說明，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md)。如果您已保留舊的日誌資料表，並想要將其與新的日誌資料表聯結，請參閱 [將自訂中繼資料與 S3 中繼資料表聯結](metadata-tables-join-custom-metadata.md) 以取得如何聯結兩個資料表的範例。

移轉後，您可以執行下列動作：

1. 若要檢視您的組態，您現在可以使用 `GetBucketMetadataConfiguration` API 操作。若要確定組態是舊的還是新的，您可以查看 `GetBucketMetadataConfiguration` API 回應的下列屬性。 AWS 受管儲存貯體類型 (`"aws"`) 表示新組態，而客戶自管儲存貯體類型 (`"customer"`) 表示舊組態。

   ```
   "MetadataTableConfigurationResult": {
               "TableBucketType": ["aws" | "customer"]
   ```

   如需詳細資訊，請參閱[檢視中繼資料表組態](metadata-tables-view-configuration.md)。
**注意**  
您可以搭配舊的或新的中繼資料表組態來使用 `GetBucketMetadataConfiguration` 和 `DeleteBucketMetadataConfiguration` API 操作。不過，如果您嘗試搭配新組態使用 `GetBucketMetadataTableConfiguration` 和 `DeleteBucketMetadataTableConfiguration` API 操作，您會收到 HTTP `405 Method Not Allowed` 錯誤。  
請務必將處理程序更新為使用新的 API 操作 (`CreateBucketMetadataConfiguration`、`GetBucketMetadataConfiguration` 和 `DeleteBucketMetadataConfiguration`)，而非舊的 API 操作。

1. 如果您計劃使用 Amazon Athena 或其他查詢引擎 AWS 查詢中繼資料表，請確定您將 AWS 受管資料表儲存貯體與 AWS 分析服務整合。如果您已在此區域中整合現有的資料表儲存貯體，您的 AWS 受管資料表儲存貯體也會自動整合。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。