建立中繼資料表組態 - Amazon Simple Storage Service

建立中繼資料表組態

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

您可以針對每個一般用途儲存貯體建立一個中繼資料表組態,其中包含兩個互補的中繼資料表:

  • 日誌資料表:依預設,您的中繼資料表組態包含日誌資料表,資料表中擷取了儲存貯體中物件發生的事件。日誌資料表會以近乎即時的速度記錄對資料所做的變更,協助您進行識別上傳至儲存貯體的新資料、追蹤最近刪除的物件、監控生命週期轉換等作業。日誌資料表會記錄新物件,以及更新物件及其中繼資料的 (更新需要 PUTDELETE 運算子)。

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

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

    如需日誌資料表中存放哪些資料的詳細資訊,請參閱 S3 Metadata 日誌資料表結構描述

    為協助將儲存成本降到最低,您可以選擇啟用日誌資料表記錄到期條件。如需更多詳細資訊,請參閱 到期的日誌資料表記錄

  • 即時庫存資料表:您可以選擇將即時庫存資料表新增至中繼資料表組態。即時庫存資料表提供了儲存貯體中所有物件及其版本的簡單、可查詢的庫存,以方便您確認資料的最新狀態。

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

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

    您需要為回填即時庫存資料表付費。如果您的一般用途儲存貯體擁有超過十億個物件,則您也需為即時庫存資料表支付月費。如需詳細資訊,請參閱 Amazon S3 定價

    如需即時庫存資料表中存放哪些資料的詳細資訊,請參閱 S3 Metadata 即時庫存資料表結構描述

中繼資料資料表具有下列 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 受管資料表儲存貯體的加密使用資料表儲存貯體中的 AWS KMS 金鑰 (SSE-KMS) 指定伺服器端加密

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

b_general-purpose-bucket-name

如需有關中繼資料表命名空間的詳細資訊,請參閱 中繼資料表的運作方式

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

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

AWS 受管資料表儲存貯體不會計入 S3 Tables 配額。如需使用 AWS 受管資料表儲存貯體和 AWS 受管資料表的詳細資訊,請參閱使用 AWS 受管資料表儲存貯體

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

注意
  • 如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態,建議您刪除並重新建立組態,以便使日誌資料表記錄過期,並建立庫存資料表。如需更多詳細資訊,請參閱 在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表

  • 如果您已刪除中繼資料資料表組態,並想要為相同的一般用途儲存貯體重新建立組態,您必須先從 AWS 受管資料表儲存貯體手動刪除舊日誌和庫存資料表。否則,建立新中繼資料資料表組態會失敗,因為這些資料表已存在。若要刪除您的中繼資料表,請參閱 刪除中繼資料表

    刪除中繼資料表組態只會刪除組態。即使您刪除中繼資料表組態,AWS 受管資料表儲存貯體和您的中繼資料表仍然存在。

先決條件

建立中繼資料表組態之前,請確定您已符合下列先決條件:

  • 建立中繼資料表組態之前,請確定您具有建立和管理中繼資料表的必要 AWS Identity and Access Management (IAM) 許可。如需更多詳細資訊,請參閱 設定設定中繼資料表的許可

  • 如果您計劃使用 Amazon Athena 或其他 AWS 查詢引擎來查詢中繼資料表,請確定您將 AWS 受管資料表儲存貯體與 AWS 分析服務整合。如需更多詳細資訊,請參閱 將 Amazon S3 Tables 與 AWS 分析服務整合在一起

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

建立中繼資料表組態

建立中繼資料表組態

建立中繼資料表組態之前,請確定您已檢閱並符合先決條件,而且已檢閱中繼資料表限制

  1. 登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 在左側導覽窗格中,選擇一般用途儲存貯體

  3. 選擇您要為其建立中繼資料表組態的一般用途儲存貯體。

    注意

    請確定此一般用途儲存貯體位於可使用資料表儲存貯體的 AWS 區域。資料表儲存貯體僅適用於美國東部 (維吉尼亞北部)、美國東部 (俄亥俄) 和美國西部 (奧勒岡) 區域。

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

  5. 中繼資料索引標籤上,選擇建立中繼資料組態

  6. 建立中繼資料表組態頁面上,在日誌資料表下,選擇是否使用 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 的權限

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

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

    記錄將在符合到期條件後的 24 至 48 小時內到期。

    重要

    日誌資料表記錄到期後,便無法復原。

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

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

    您可以選擇是否使用 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 的權限

  9. 選擇建立中繼資料表組態

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

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

若要監控中繼資料表組態的更新,您可以使用 AWS CloudTrail。如需更多詳細資訊,請參閱 CloudTrail 日誌記錄所追蹤的 Amazon S3 儲存貯體層級動作

若要執行下列命令,您必須安裝並設定 AWS CLI。如果您未安裝 AWS CLI,請參閱《AWS Command Line Interface使用者指南》中的安裝或更新至 AWS CLI 的最新版本

或者,您可以使用 AWS CloudShell 從主控台執行 AWS CLI 命令。AWS CloudShell 是瀏覽器型、預先驗證身分的 Shell,可以直接從 AWS 管理主控台啟動。如需詳細資訊,請參閱《AWS CloudShell 使用者指南》中的什麼是 CloudShell開始使用 AWS CloudShell

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

建立中繼資料表組態之前,請確定您已檢閱並符合先決條件,而且已檢閱中繼資料表限制

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

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

    您必須指定是否要啟用或停用日誌資料表記錄過期。如果您選擇啟用記錄過期,您還必須指定日誌資料表記錄過期的天數。若要設定 Days 值,您可以指定介於 72147483647 之間的任何整數。例如,若要將日誌資料表記錄保留一年,請將此值設定為 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" } } }
  2. 使用下列命令,將中繼資料表組態套用至您的一般用途儲存貯體 (例如 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
  3. 若要確認已建立組態,請使用下列命令:

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

若要監控中繼資料表組態的更新,您可以使用 AWS CloudTrail。如需更多詳細資訊,請參閱 CloudTrail 日誌記錄所追蹤的 Amazon S3 儲存貯體層級動作

您可以傳送 REST 請求來建立中繼資料表組態。如需詳細資訊,請參閱 Amazon S3 API 參考中的 CreateBucketMetadataConfiguration

您可以使用 AWS SDK 在 Amazon S3 中建立中繼資料表組態。如需相關資訊,請參閱 Amazon S3 API 參考中的支援的 SDK 清單

在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表

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

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

  1. 刪除現有的中繼資料表組態。如需逐步說明,請參閱「刪除中繼資料表組態」。

  2. 建立新的中繼資料表組態。如需逐步說明,請參閱「建立中繼資料表組態」。

如果您需要協助移轉組態,請聯絡 AWS 支援。

建立新的中繼資料組態後,您會有兩個日誌資料表。如果您不再需要舊的日誌資料表,則可以將其刪除。如需逐步說明,請參閱「刪除中繼資料表」。如果您已保留舊的日誌資料表,並想要將其與新的日誌資料表聯結,請參閱 將自訂中繼資料與 S3 中繼資料表聯結 以取得如何聯結兩個資料表的範例。

移轉後,您可以執行下列動作:

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

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

    如需更多詳細資訊,請參閱 檢視中繼資料表組態

    注意

    您可以搭配舊的或新的中繼資料表組態來使用 GetBucketMetadataConfigurationDeleteBucketMetadataConfiguration API 操作。不過,如果您嘗試搭配新組態使用 GetBucketMetadataTableConfigurationDeleteBucketMetadataTableConfiguration API 操作,您會收到 HTTP 405 Method Not Allowed 錯誤。

    請務必將處理程序更新為使用新的 API 操作 (CreateBucketMetadataConfigurationGetBucketMetadataConfigurationDeleteBucketMetadataConfiguration),而非舊的 API 操作。

  2. 如果您計劃使用 Amazon Athena 或其他 AWS 查詢引擎來查詢中繼資料表,請確定您將 AWS 受管資料表儲存貯體與 AWS 分析服務整合。如果您已在此區域中整合現有的資料表儲存貯體,您的 AWS 受管資料表儲存貯體也會自動整合。如需更多詳細資訊,請參閱 將 Amazon S3 Tables 與 AWS 分析服務整合在一起