

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

# 使用物件中繼資料
<a name="UsingMetadata"></a>

Amazon S3 中的物件中繼資料有兩種：「系統定義的中繼資料」**和「使用者定義的中繼資料」**。系統定義的中繼資料包括物件建立日期、大小和儲存類別等中繼資料。使用者定義的中繼資料是您可以在上傳物件時選擇設定的中繼資料。使用者定義的中繼資料是一組名稱/值對。如需詳細資訊，請參閱 [系統定義的物件中繼資料](#SysMetadata) 及 [使用者定義的物件中繼資料](#UserMetadata)。

建立物件時，您可以指定能在 Amazon S3 儲存貯體中唯一識別物件的「物件金鑰」**(或「金鑰名稱」**)。如需詳細資訊，請參閱[命名 Amazon S3 物件](object-keys.md)。您也可以在上傳物件時，在 Amazon S3 中設定[使用者定義的中繼資料](#UserMetadata)。

上傳物件之後，即無法修改此使用者定義的中繼資料。修改此中繼資料的唯一方式是先建立物件的複本，再設定中繼資料。如需使用 Amazon S3 主控台編輯中繼資料的詳細資訊，請參閱[在 Amazon S3 主控台中編輯物件中繼資料](add-object-metadata.md)。

**使用 S3 Metadata 查詢中繼資料並加速資料探索**  
若要輕鬆尋找、儲存和查詢 S3 物件的中繼資料，您可以使用 S3 Metadata。透過 S3 Metadata，您可以快速準備資料，以用於商業分析、內容擷取、人工智慧和機器學習 (AI/ML) 模型訓練等。

S3 Metadata 透過自動擷取一般用途儲存貯體中物件的中繼資料，並將其儲存在您可以查詢的唯讀、全受管 Apache Iceberg 資料表中，從而加速資料探索。這些唯讀資料表稱為「中繼資料表」**。當您在一般用途儲存貯體中新增、更新和移除物件時，S3 Metadata 會自動重新整理對應的中繼資料表，以反映最新的變更。

根據預設，S3 Metadata 提供[系統定義的物件中繼資料](#SysMetadata) (例如物件的建立時間和儲存類別)，以及自訂中繼資料 (例如在物件上傳期間包含的標籤和[使用者定義的中繼資料](#UserMetadata))。S3 Metadata 也提供事件中繼資料，例如物件更新或刪除的時間，以及 AWS 帳戶 發出請求的 。

中繼資料表儲存在 S3 資料表儲存貯體中，提供針對表格式資料最佳化的儲存體。若要查詢中繼資料，您可以將資料表儲存貯體與 AWS 分析服務整合，例如 Amazon Athena、Amazon Redshift 和 Amazon Quick。

如需 S3 Metadata 的詳細資訊，請參閱[S3 Metadata 資料表探索您的資料](metadata-tables-overview.md)。

## 系統定義的物件中繼資料
<a name="SysMetadata"></a>

若是存放在儲存貯體中的每個物件，Amazon S3 會保留一組系統中繼資料。Amazon S3 會視需要處理此系統中繼資料。例如，Amazon S3 會保留物件建立日期與大小中繼資料，以便在物件管理過程中會使用這項資訊。

系統中繼資料可分為兩類：
+ **系統控制** – 物件建立日期之類的中繼資料由系統控制，這表示只有 Amazon S3 才能修改日期值。
+ **使用者控制** – 另一種系統中繼資料的範例包括為物件所設定的儲存體方案，以及物件是否已啟用伺服器端加密，您可以控制這類系統中繼資料的值。如果您的儲存貯體設定為網站，可能有時會希望將頁面請求重新導向至其他頁面或外部 URL。在此情況下，網頁即為您儲存貯體中的物件。Amazon S3 會將頁面重新導向值儲存為您可以控制的系統中繼資料。

  當您建立物件時，可以設定這些系統中繼資料項目的值，或視需要更新這些值。如需儲存體方案的詳細資訊，請參閱「[了解和管理 Amazon S3 儲存類別](storage-class-intro.md)」。

  Amazon S3 使用 AWS KMS 金鑰來加密 Amazon S3 物件。 只會 AWS KMS 加密物件資料。檢查總和以及指定的演算法會儲存為物件中繼資料的一部分。若物件要求伺服器端加密，檢查總和會以加密形式儲存。如需伺服器端加密的詳細資訊，請參閱「[使用加密來保護資料](UsingEncryption.md)」。

**注意**  
`PUT` 要求標頭的大小限制為 8 KB。在 `PUT` 要求標頭中，系統定義中繼資料的大小限制為 2 KB。測量系統定義中繼資料大小的方式，是透過計算每個索引鍵和值之 US-ASCII 編碼中的位元組數目加總。

下表提供系統定義的中繼資料的清單，並指出您是否可更新這些中繼資料。


| 名稱 | 描述 | 使用者是否可以修改值？ | 
| --- | --- | --- | 
| Date | 目前的日期與時間。 | 否 | 
| Cache-Control | 用於指定快取政策的一般標頭欄位。 | 是 | 
| Content-Disposition | 物件表示資訊。 | 是 | 
| Content-Encoding | 已套用至物件資料的內容編碼 (例如壓縮) | 是 | 
| Content-Length | 物件大小 (位元組)。 | 否 | 
| Content-Type | 物件的類型。 | 是 | 
| Last-Modified |  物件建立日期或上次修改日期，以最近者為準。對於分段上傳，物件建立日期是指啟動分段上傳的日期。  | 否 | 
| ETag | 表示物件特定版本的實體標籤 (ETag)。對於未做為分段上傳上傳且未加密或透過使用 Amazon S3 受管金鑰 (SSE-S3) 之伺服器端加密來進行加密的物件，ETag 是資料的 MD5 Digest。 | 否 | 
| x-amz-server-side-encryption | 指出物件是否啟用伺服器端加密的標頭，以及該加密是使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 還是使用 Amazon S3 受管加密金鑰 (SSE-S3)。如需詳細資訊，請參閱[使用伺服器端加密保護資料](serv-side-encryption.md)。 | 是 | 
| x-amz-checksum-crc64nvme, x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, x-amz-checksum-sha256 | 包含物件檢查總和或摘要的標題。根據您指示 Amazon S3 使用的檢查總和演算法，最多可以一次設定其中一個標頭。如需選擇檢查總和演算法的詳細資訊，請參閱「[在 Amazon S3 中檢查物件完整性](checking-object-integrity.md)」。 | 否 | 
| x-amz-checksum-type | 檢查總和類型，決定如何結合組件層級檢查總和，以建立多組件物件的物件層級檢查總和。 | 是 | 
| x-amz-version-id | 物件版本控制。當您啟用儲存貯體的版本控制時，Amazon S3 會將版本 ID 指派給已新增至儲存貯體的物件。如需詳細資訊，請參閱[使用 S3 版本控制保留多個版本的物件](Versioning.md)。 | 否 | 
| x-amz-delete-marker | 指出物件是否為刪除標記的布林值標記。此標記僅用於已啟用版本控制的版本控制， | 否 | 
| x-amz-storage-class | 用於存放物件的儲存體方案。如需詳細資訊，請參閱[了解和管理 Amazon S3 儲存類別](storage-class-intro.md)。 | 是 | 
| x-amz-website-redirect-location |  將關聯物件重新導向至相同儲存貯體中的其他物件或外部 URL 的標題。如需詳細資訊，請參閱[(選用) 配置網頁重新導向](how-to-page-redirect.md)。 | 是 | 
| x-amz-server-side-encryption-aws-kms-key-id | 標頭，指出用來加密物件的對稱加密 KMS AWS KMS 金鑰 ID。只有當 x-amz-server-side-encryption 標題存在且具有 aws:kms 值的時候，才會使用此標題。 | 是 | 
| x-amz-server-side-encryption-customer-algorithm | 指出是否已啟用由客戶提供加密金鑰的伺服器端加密 (SSE-C) 的標題。如需詳細資訊，請參閱[搭配客戶提供的金鑰 (SSE-C) 使用伺服器端加密](ServerSideEncryptionCustomerKeys.md)。 | 是 | 
| x-amz-tagging | 物件的標籤集。標籤集必須編碼為 URL 查詢參數。 | 是 | 

## 使用者定義的物件中繼資料
<a name="UserMetadata"></a>

您也可以在上傳物件時，將中繼資料指派給物件。您可以在傳送 `PUT` 或 `POST` 要求來建立物件時，以名稱/值 (金鑰/值) 對的形式提供這項選用資訊。當您使用 REST API 上傳物件時，選用的使用者定義中繼資料名稱必須以 `x-amz-meta-` 開頭，以便與其他 HTTP 標頭有所區別。當您使用 REST API 擷取物件時，會傳回此字首。當您使用 SOAP API 上傳物件時，不需要此字首。當您使用 SOAP API 擷取物件時，不論用於上傳物件的 API 為何，都會移除此字首。

**注意**  
 Amazon S3 的 SOAP API 不適用於新客戶，並且將於 2025 年 8 月 31 日接近生命週期結束 (EOL)。我們建議您使用 REST API 或 AWS SDKs。

透過 REST API 擷取中繼資料時，Amazon S3 會將具有相同名稱 (忽略大小寫) 的標頭合併成一份以逗號分隔的清單。如果某些中繼資料包含無法列印的字元，就不會傳回。反之，傳回的會是 `x-amz-missing-meta` 標頭，其值為無法列印的中繼資料項目數。該 `HeadObject` 動作從一個物件擷取中繼資料，而不傳回物件本身。如果您只對物件的中繼資料感興趣，此操作非常有用。若要使用 `HEAD`，您必須具有物件的 `READ` 存取權。如需詳細資訊，請參閱《 Amazon Simple Storage Service API 參考》**中的 [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)。

使用者定義的中繼資料是一組金鑰/值對。Amazon S3 會以小寫存放使用者定義的中繼資料金鑰。

Amazon S3 會允許在您的中繼資料值中有任意 Unicode 字元。

為了避免有關呈現這些中繼資料值的問題，使用 REST 時應該遵從使用 US-ASCII 字元，以及使用 SOAP 或透過 `POST` 的瀏覽器式上傳時應該遵從使用 UTF-8。

在中繼資料值中使用非 US-ASCII 字元時，會檢查提供的 Unicode 字串是否有非 US-ASCII 字元。這些標題的值是在儲存之前依據 [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047) 僅需解碼，然後依據 [RFC 2047](https://datatracker.ietf.org/doc/html/rfc2047) 進行編碼，以便在傳回之前使其能夠安全地以電子郵件寄送。如果字串只包含 US-ASCII 字元，則會依原樣呈現。

下列是 範例。

```
PUT /Key HTTP/1.1
Host: amzn-s3-demo-bucket.s3.amazonaws.com
x-amz-meta-nonascii: ÄMÄZÕÑ S3

HEAD /Key HTTP/1.1
Host: amzn-s3-demo-bucket.s3.amazonaws.com
x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?=

PUT /Key HTTP/1.1
Host: amzn-s3-demo-bucket.s3.amazonaws.com
x-amz-meta-ascii: AMAZONS3

HEAD /Key HTTP/1.1
Host: amzn-s3-demo-bucket.s3.amazonaws.com
x-amz-meta-ascii: AMAZONS3
```

**注意**  
`PUT` 要求標頭的大小限制為 8 KB。在 `PUT` 要求標頭中，使用者定義中繼資料的大小限制為 2 KB。測量使用者定義中繼資料大小的方式，是透過計算每個金鑰和值之 UTF-8 編碼中的位元組數目加總。

如需透過建立物件複本、修改它以及取代舊物件或建立新版本來變更上傳之後物件的中繼資料的相關資訊，請參閱 [在 Amazon S3 主控台中編輯物件中繼資料](add-object-metadata.md)。

# 在 Amazon S3 主控台中編輯物件中繼資料
<a name="add-object-metadata"></a>

您可以使用 Amazon S3 主控台，透過**複製**動作來編輯現有 S3 物件的中繼資料。若要編輯中繼資料，請將物件複製到相同的目的地，並指定要套用的新中繼資料，以取代物件的舊中繼資料。上傳物件時，Amazon S3 會設定某些中繼資料。例如，`Content-Length` 和 `Last-Modified` 是使用者無法修改的系統定義物件中繼資料欄位。

您也可以在上傳物件時設定使用者定義的中繼資料，並在需求變更時加以取代。例如，您可能有一組最初儲存在 `STANDARD` 儲存類別中的物件。隨著時間的推移，您可能不再需要讓這些資料高度可用。因此，您可透過將 `x-amz-storage-class` 金鑰的值從 `STANDARD` 取代為 `GLACIER`，從而將儲存類別變更為 `GLACIER`。

**注意**  
在 Amazon S3 中取代物件中繼資料時，請考慮下列事項：  
您必須指定要保留的現有中繼資料、要新增的中繼資料，以及要編輯的中繼資料。
如果您的物件小於 5 GB，您可以使用 S3 主控台中的**複製**動作來取代物件中繼資料。如果您的物件大於 5 GB，您可以在使用 [AWS CLI](mpu-upload-object.md#UsingCLImpUpload) 或 [AWS SDK](CopyingObjectsMPUapi.md) 透過分段上傳來複製物件時，取代物件中繼資料。如需詳細資訊，請參閱[使用分段上傳來複製物件](CopyingObjectsMPUapi.md)。
如需取代中繼資料所需的其他許可清單，請參閱[Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。如需授予此許可的範例政策，請參閱[Amazon S3 的身分型政策範例](example-policies-s3.md)。
此動作會建立具有更新設定和上次修改日期的物件*複本*。如果啟用 S3 版本控制，則系統會建立物件的新版本，且現有物件會變成較舊的版本。如果未啟用 S3 版本控制，則物件的新複本會取代原始物件。與變更 屬性的 IAM 角色 AWS 帳戶 相關聯的 也會成為新物件或 （物件版本） 的擁有者。
編輯中繼資料會取代現有金鑰名稱的值。
使用客戶提供的加密金鑰 (SSE-C) 加密的物件無法經由主控台複製。您必須使用 AWS CLI、 AWS SDK 或 Amazon S3 REST API。
使用 Amazon S3 主控台複製物件時，可能會收到錯誤訊息「複製的中繼資料無法驗證。」 主控台會使用標頭來擷取和設定物件的中繼資料。如果您的網路或瀏覽器組態修改網路請求，此行為可能會導致意外中繼資料 (例如修改的 `Cache-Control` 標頭) 寫入您複製的物件。Amazon S3 無法驗證此非預期的中繼資料。  
若要解決此問題，請檢查您的網路和瀏覽器組態，確保標頭不會遭到修改，例如 `Cache-Control`。如需詳細資訊，請參閱[共同責任模式](https://docs.aws.amazon.com/whitepapers/latest/applying-security-practices-to-network-workload-for-csps/the-shared-responsibility-model.html)。

**警告**  
取代資料夾的中繼資料時，請等待**複製**動作完成，再新增物件至資料夾。否則，新物件可能也會被編輯。

下列主題說明如何在 Amazon S3 主控台中使用**複製**動作來取代物件的中繼資料。

## 取代系統定義的中繼資料
<a name="add-object-metadata-system"></a>

您可以取代 S3 物件的一些系統定義中繼資料。如需系統定義的中繼資料以及您可以修改的值清單，請參閱[系統定義的物件中繼資料](UsingMetadata.md#SysMetadata)。

**取代物件的系統定義中繼資料**

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

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

1. 在儲存貯體清單中，選擇儲存貯體的名稱，其中包含您要變更的物件。

1. 選取您要變更之物件的核取方塊。

1. 從**動作**功能表上顯示的選項清單中，選擇**複製**。

1. 若要指定目的地路徑，請選擇**瀏覽 S3**，導覽至與來源物件相同的目的地，然後選取目的地核取方塊。選擇右下角的 **Choose destination** (選擇目的地)。

   或者，輸入目的地路徑。

1. 如果您「未」**啟用儲存貯體版本控制，您會看到警告，建議您啟用儲存貯體版本控制，以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件，請選取 **Enable Bucket Versioning** (啟用儲存貯體版本控制)。您也可以在**目的地詳細資訊**中檢視預設加密和物件鎖定內容。

1. 在**其他複製設定**下，選擇**指定設定**以指定**中繼資料**的設定。

1. 捲動至**中繼資料**區段，然後選擇**取代所有中繼資料**。

1. 選擇 **Add metadata** (新增中繼資料)。

1. 對於中繼資料**類型**，請選取**系統定義**。

1. 指定唯一的**金鑰**和中繼資料**值**。

1. 若要編輯其他中繼資料，請選擇**新增中繼資料** 您也可以選擇 **Remove** (移除) 以移除一組 Type-Key-Values。

1. 請選擇 **Copy** (複製)。Amazon S3 會儲存您的中繼資料變更。

## 取代使用者定義的中繼資料
<a name="add-object-metadata-user-defined"></a>

您可以透過結合中繼資料字首 `x-amz-meta-` 和您選擇建立自訂金鑰的名稱來取代物件的使用者定義中繼資料。例如，如果您新增自訂名稱 `alt-name`，則中繼資料金鑰會是 `x-amz-meta-alt-name`。

使用者定義的中繼資料最大可達 2 KB。若要計算使用者定義中繼資料的總大小，須加總 UTF-8 編碼的每個索引鍵和值的位元組數。金鑰與其值都必須符合 US-ASCII 標準。如需詳細資訊，請參閱[使用者定義的物件中繼資料](UsingMetadata.md#UserMetadata)。

**取代物件的使用者定義中繼資料**

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

1. 在導覽窗格中，選擇**儲存貯體**，然後選擇**一般用途儲存貯體**或**目錄儲存貯體**索引標籤。導覽至包含您要變更之物件的 Amazon S3 儲存貯體或資料夾。

1. 選取您要變更之物件的核取方塊。

1. 從**動作**功能表上顯示的選項清單中，選擇**複製**。

1. 若要指定目的地路徑，請選擇**瀏覽 S3**，導覽至與來源物件相同的目的地，然後選取目的地核取方塊。選擇 **Choose destination (選擇目的地)**。

   或者，輸入目的地路徑。

1. 如果您「未」**啟用儲存貯體版本控制，您會看到警告，建議您啟用儲存貯體版本控制，以協助防止意外覆寫或刪除物件。如果您要保留此儲存貯體中所有版本的物件，請選取 **Enable Bucket Versioning** (啟用儲存貯體版本控制)。您也可以在**目的地詳細資訊**中檢視預設加密和物件鎖定內容。

1. 在**其他複製設定**下，選擇**指定設定**以指定**中繼資料**的設定。

1. 捲動至**中繼資料**區段，然後選擇**取代所有中繼資料**。

1. 選擇 **Add metadata** (新增中繼資料)。

1. 對於中繼資料 **Type** (類型)，選擇 **User-defined (使用者定義)**。

1. 在 `x-amz-meta-` 後輸入唯一的自訂**索引鍵**。同時輸入中繼資料**值**。

1. 若要新增其他中繼資料，請選擇 **Add metadata** (新增中繼資料)。您也可以選擇 **Remove** (移除) 以移除一組 Type-Key-Values。

1. 請選擇 **Copy** (複製)。Amazon S3 會儲存您的中繼資料變更。

# S3 Metadata 資料表探索您的資料
<a name="metadata-tables-overview"></a>

Amazon S3 Metadata 透過自動擷取一般用途儲存貯體中物件的中繼資料，並將其儲存在您可以查詢的唯讀、全託管 Apache Iceberg 資料表中，從而加速資料探索。這些唯讀資料表稱為「中繼資料表」**。當您在一般用途儲存貯體中新增、更新或移除物件時，S3 Metadata 會自動重新整理對應的中繼資料表，以反映最新的變更。

根據預設，S3 Metadata 提供三種中繼資料類型：
+ [系統定義的中繼資料](UsingMetadata.md#SysMetadata)，例如物件的建立時間和儲存類別
+ 自訂中繼資料，例如在物件上傳期間包含的標籤和[使用者定義的中繼資料](UsingMetadata.md#UserMetadata)
+ 事件中繼資料，例如物件更新或刪除的時間，以及 AWS 帳戶 發出請求的

透過 S3 Metadata，您可以輕鬆尋找、儲存和查詢 S3 物件的中繼資料，以便快速準備資料，以用於商業分析、內容擷取、人工智慧和機器學習 (AI/ML) 模型訓練等。

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

您的中繼資料表存放在 AWS 受管 S3 資料表儲存貯體中，該儲存貯體提供針對表格式資料最佳化的儲存體。若要查詢中繼資料，您可以將資料表儲存貯體與 Amazon SageMaker 資料湖倉整合。此整合使用 AWS Glue Data Catalog 和 AWS Lake Formation，可讓 AWS 分析服務自動探索和存取您的資料表資料。

將資料表儲存貯體與 整合後 AWS Glue Data Catalog，您可以使用 Amazon Athena、Amazon EMR 和 Amazon Redshift 等 AWS 分析服務直接查詢中繼資料表。您也可以使用 Amazon Quick 建立具有查詢資料的互動式儀表板。如需有關整合 AWS 受管 S3 資料表儲存貯體與 Amazon SageMaker 資料湖倉的詳細資訊，請參閱 [將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

您也可以使用 Apache Spark、 和任何其他支援 Apache Iceberg 格式的應用程式來查詢中繼資料表Apache Trino，方法是使用 AWS Glue Iceberg REST 端點、Amazon S3 Tables Iceberg REST 端點或Apache Iceberg用戶端目錄的 Amazon S3 Tables Catalog。如需存取中繼資料表的詳細資訊，請參閱 [存取資料表資料](s3-tables-access.md)。

如需 S3 Metadata 定價，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

## 中繼資料表的運作方式
<a name="metadata-tables-how-they-work"></a>

中繼資料表是由 Amazon S3 管理，無法透過 Amazon S3 本身以外的任何 IAM 主體進行修改 不過，您可以刪除中繼資料表。因此，中繼資料表是唯讀的，這有助於確保正確反映一般用途儲存貯體的內容。

若要在 AWS 受管中繼資料表中產生和存放物件中繼資料，您可以為一般用途儲存貯體建立中繼資料表組態。只要一般用途儲存貯體中的組態處於作用中狀態，Amazon S3 就會持續更新中繼資料的資料表，以反映資料的最新變更狀態。

建立中繼資料表組態之前，請確定您具有建立和管理中繼資料表的必要 AWS Identity and Access Management (IAM) 許可。如需詳細資訊，請參閱[設定設定中繼資料表的許可](metadata-tables-permissions.md)。

**中繼資料表儲存、組織和加密**  
當建立中繼資料表組態時，您的中繼資料表會儲存在 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`

**注意**  
如果您的一般用途儲存貯體名稱包含任何句號，則句號會在命名空間名稱中轉換為底線 (`_`)。
如果您的一般用途儲存貯體是在 2018 年 3 月 1 日之前建立的，其名稱可能包含大寫字母和底線，而且長度也可能高達 255 個字元。如果您的儲存貯體名稱具有這些特性，則中繼資料表命名空間會有不同的格式。一般用途儲存貯體名稱字首為 `b_`、截斷為 63 個字元、轉換為所有小寫，且字尾為雜湊。

中繼資料資料表具有下列 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 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)。

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

**中繼資料表維護和記錄過期**  
為了讓您的 中繼資料表發揮最佳效能，Amazon S3 會對資料表執行定期維護活動，例如壓縮和移除未參考的檔案。這些維護活動有助於將儲存中繼資料表的成本降到最低，並最佳化查詢效能。此資料表維護會自動執行，您不需要選擇加入或持續管理。

**注意**  
您無法控制日誌資料表或庫存資料表快照的過期時間。對於每個資料表，Amazon S3 至少儲存 1 個快照，儲存時間最長 24 小時。
為了協助將成本降至最低，您可以將日誌資料表記錄設定為過期。根據預設，日誌資料表記錄不會過期，而且日誌資料表記錄必須至少保留 7 天。如需詳細資訊，請參閱[到期的日誌資料表記錄](metadata-tables-expire-journal-table-records.md)。

**Topics**
+ [

## 中繼資料表的運作方式
](#metadata-tables-how-they-work)
+ [

# 中繼資料表限制
](metadata-tables-restrictions.md)
+ [

# S3 Metadata 日誌資料表結構描述
](metadata-tables-schema.md)
+ [

# S3 Metadata 即時庫存資料表結構描述
](metadata-tables-inventory-schema.md)
+ [

# 設定中繼資料表
](metadata-tables-configuring.md)
+ [

# 查詢中繼資料表
](metadata-tables-querying.md)
+ [

# S3 Metadata 故障診斷
](metadata-tables-troubleshooting.md)

# 中繼資料表限制
<a name="metadata-tables-restrictions"></a>

Amazon S3 Metadata 具有下列限制和禁制：
+ S3 Metadata 目前僅可在特定區域使用。如需詳細資訊，請參閱[S3 中繼資料 AWS 區域](#metadata-tables-regions)。
+ S3 Metadata 支援一般用途儲存貯體支援的所有儲存類別。對於 S3 Intelligent-Tiering 儲存類別，中繼資料表中不會顯示特定層。
+ 當建立中繼資料表組態時，您的中繼資料表會儲存在 AWS 受管資料表儲存貯體中。您無法將組態儲存在客戶管理的資料表儲存貯體中。
+ 目錄儲存貯體、資料表儲存貯體或向量儲存貯體不支援 S3 Metadata。您只能為一般用途儲存貯體建立中繼資料表組態。日誌資料表只會擷取在您建立中繼資料表組態之後發生的變更事件 (例如上傳、更新和刪除) 的中繼資料。
+ 您無法控制日誌資料表或庫存資料表快照的過期時間。對於每個資料表，Amazon S3 至少儲存 1 個快照，儲存時間最長 24 小時。

  為了協助將成本降至最低，您可以將日誌資料表記錄設定為過期。根據預設，日誌資料表記錄不會過期，而且日誌資料表記錄必須至少保留 7 天。如需詳細資訊，請參閱[到期的日誌資料表記錄](metadata-tables-expire-journal-table-records.md)。
+ 您只能為整個一般用途儲存貯體建立中繼資料表組態。您無法在字首層級套用中繼資料表組態。
+ 您無法暫停並繼續中繼資料表的更新。不過，您可以刪除日誌或即時庫存資料表的相關中繼資料組態。刪除您的組態並不會刪除相關聯的日誌或庫存資料表。若要重新建立您的組態，您必須先刪除舊日誌或庫存資料表，然後 Amazon S3 才能建立新的日誌或庫存資料表。當您重新啟用庫存資料表時，Amazon S3 會建立新的庫存資料表，並且針對新庫存資料表回填再次向您收費。
+ 中繼資料表不包含透過 S3 庫存清單或透過 Amazon S3 REST API 提供的所有相同中繼資料。例如，中繼資料表中不提供下列資訊：
  + S3 生命週期到期資格或轉換狀態
  + 物件鎖定保留期間或控管模式
  + 物件存取控制清單 (ACL) 資訊
  + 複寫狀態
+ 當您使用 Amazon Athena 或 Amazon Redshift 查詢中繼資料表時，必須以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。如需範例，請參閱 [中繼資料表查詢範例](metadata-tables-example-queries.md)。
+ 在 Amazon EMR 或其他第三方引擎上使用 Apache Spark 查詢中繼資料表時，我議您使用 Amazon S3 Tables Iceberg REST 端點。如果您不使用此端點，則可能無法成功執行查詢。如需詳細資訊，請參閱[使用 Amazon S3 Tables Iceberg REST 端點存取資料表](s3-tables-integrating-open-source.md)。

## S3 中繼資料 AWS 區域
<a name="metadata-tables-regions"></a>

S3 中繼資料目前可在下列中使用 AWS 區域：


|  AWS 區域 名稱  |  AWS 區域 程式碼  | 
| --- | --- | 
|  非洲 (開普敦)  |  `af-south-1`  | 
|  亞太地區 (香港)  |  `ap-east-1`  | 
|  亞太地區 (雅加達)  |  `ap-southeast-3`  | 
|  亞太地區 (墨爾本)  |  `ap-southeast-4`  | 
|  亞太地區 (孟買)  |  `ap-south-1`  | 
|  亞太區域 (大阪)  |  `ap-northeast-3`  | 
|  亞太區域 (首爾)  |  `ap-northeast-2`  | 
|  亞太區域 (新加坡)  |  `ap-southeast-1`  | 
|  亞太地區 (雪梨)  |  `ap-southeast-2`  | 
|  亞太區域 (東京)  |  `ap-northeast-1`  | 
|  加拿大 (中部)  |  `ca-central-1`  | 
|  加拿大西部 (卡加利)  |  `ca-west-1`  | 
|  歐洲 (法蘭克福)  |  `eu-central-1`  | 
|  歐洲 (蘇黎世)  |  `eu-central-2`  | 
|  歐洲 (愛爾蘭)  |  `eu-west-1`  | 
|  歐洲 (倫敦)  |  `eu-west-2`  | 
|  歐洲 (米蘭)  |  `eu-south-1`  | 
|  Europe (Paris)  |  `eu-west-3`  | 
|  歐洲 (西班牙)  |  `eu-south-2`  | 
|  歐洲 (斯德哥爾摩)  |  `eu-north-1`  | 
|  以色列 (特拉維夫)  |  `il-central-1`  | 
|  Middle East (Bahrain)  |  `me-south-1`  | 
|  中東 (阿拉伯聯合大公國)  |  `me-central-1`  | 
|  南美洲 (聖保羅)  |  `sa-east-1`  | 
|  美國東部 (維吉尼亞北部)  |  `us-east-1`  | 
|  美國東部 (俄亥俄)  |  `us-east-2`  | 
|  美國西部 (加利佛尼亞北部)  |  `us-west-1`  | 
|  美國西部 (奧勒岡)  |  `us-west-2`  | 
|  中國 (北京)  |  `cn-north-1`  | 
|  中國 (寧夏)  |  `cn-northwest-1`  | 

# S3 Metadata 日誌資料表結構描述
<a name="metadata-tables-schema"></a>

日誌資料表會以近乎即時的速度記錄對資料所做的變更，協助您進行識別上傳至儲存貯體的新資料、追蹤最近刪除的物件、監控生命週期轉換等作業。日誌資料表會記錄新物件，以及更新物件及其中繼資料的 (更新需要 `PUT` 或 `DELETE` 運算子)。由於此資料表是可查詢的，因此您可以透過簡單的 SQL 查詢，稽核對儲存貯體的變更。

您可以將日誌資料表用於安全性、稽核與合規性使用案例，以追蹤儲存貯體中已上傳、刪除和變更的物件。例如，您可以查詢日誌資料表以回答以下問題：
+ S3 生命週期在過去 24 小時內刪除了哪些物件？
+ 最近的 `PUT` 請求來自哪些 IP 位址？
+ 在過去 7 天內，哪些 AWS Key Management Service (AWS KMS) 金鑰用於`PUT`請求？
+ Amazon Bedrock 在過去五天內在您的儲存貯體中建立了哪些物件？

Amazon S3 Metadata 日誌資料表包含列和欄。每一列代表一個您在一般用途儲存貯體中已建立、更新或刪除物件的變動事件。這些事件大部分是使用者動作的結果，但其中一些事件是 Amazon S3 代替您採取動作的結果，例如 S3 生命週期過期或儲存類別轉換。

S3 Metadata 日誌資料表最終會與一般用途儲存貯體中發生的變更一致。在有些情況中，在通知 S3 Metadata 物件已建立或更新之前，該物件可能已在儲存貯體中遭到覆寫或刪除。在這種情況下，便無法再擷取物件，有些資料欄可能會顯示 NULL 值，指出缺少中繼資料結構描述。

以下是名為 `amzn-s3-demo-bucket:` 之一般用途儲存貯體的日誌資料表範例 

```
bucket                key                        sequence_number                                                                                          record_type   record_timestamp           version_id   is_delete_marker   size   last_modified_date   e_tag	                           storage_class  is_multipart   encryption_status   is_bucket_key_enabled   kms_key_arn                                                                   checksum_algorithm   object_tags   user_metadata	                                                                                                                 requester      source_ip_address   request_id
amzn-s3-demo-bucket Finance/statement1.pdf     80e737d8b4d82f776affffffffffffffff006737d8b4d82f776a00000000000000000000000000000000000000000000000072   CREATE        2024-11-15 23:26:44.899                 FALSE              6223   11/15/2024 23:26     e131b86632dda753aac4018f72192b83    STANDARD	  FALSE          SSE-KMS             FALSE                   arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890df   SSECRC32             {}            {count -> Asia, customs -> false, family -> true, location -> Mary, name -> football, user -> United States}                       111122223333   192.0.2.1           CVK8FWYRW0M9JW65
amzn-s3-demo-bucket s3-dg.pdf                  80e737d8b4e39f1dbdffffffffffffffff006737d8b4e39f1dbd00000000000000000000000000000000000000000000000072   CREATE        2024-11-15 23:26:44.942                 FALSE              3554   11/15/2024 23:26     9bb49efc2d92c05558ddffbbde8636d5    STANDARD	  FALSE          DSSE-KMS            FALSE                   arn:aws:kms:us-east-1:936810216292:key/0dcebce6-49fd-4cae-b2e2-5512ad281afd   SSESHA1              {}            {}                                                                                                                                 111122223333   192.0.2.1           CVKAQDRAZEG7KXAY
amzn-s3-demo-bucket Development/Projects.xls   80e737d8b4ed9ac5c6ffffffffffffffff006737d8b4ed9ac5c600000000000000000000000000000000000000000000000072   CREATE        2024-11-15 23:26:44.966                 FALSE              7746   11/15/2024 23:26     729a6863e47fb9955b31bfabce984908    STANDARD	  FALSE          SSE-S3              FALSE                   NULL                                                                          SSECRC32             {}            {count -> Asia, customs -> Canada, family -> Billiards, filter -> true, location -> Europe, name -> Asia, user -> United States}   111122223333   192.0.2.1           CVK7Z6XQTQ90BSRV
```

日誌資料表具有下列結構描述：


| 欄名稱 | 是否為必要？ | 資料類型 |   | 
| --- | --- | --- | --- | 
| `bucket` | 是 | String | 一般用途儲存貯體名稱。如需詳細資訊，請參閱[一般用途儲存貯體命名規則](bucketnamingrules.md)。 | 
| `key` | 是 | String | 物件金鑰名稱 (或金鑰)，可唯一識別儲存貯體中的物件。如需詳細資訊，請參閱[命名 Amazon S3 物件](object-keys.md)。 | 
| `sequence_number` | 是 | String | 序號，這是包含在指定物件記錄中的序數。若要排序相同儲存貯體和金鑰的記錄，您可以依 `sequence_number` 進行排序。對於指定的儲存貯體和金鑰，字母順序較大的 `sequence_number` 值表示記錄引進儲存貯體的時間較近。 | 
| `record_type` | 是 | String | 此記錄的類型，下列其中一項：`CREATE`、`UPDATE_METADATA` 或 `DELETE`。 `CREATE` 記錄指出新物件 (或新版本的物件) 已寫入儲存貯體。 `UPDATE_METADATA` 記錄會擷取現有物件的可變中繼資料變更，例如儲存類別或標籤。 `DELETE` 記錄指出已刪除此物件 (或此版本的物件)。啟用版本控制時，`DELETE` 記錄代表刪除標記或永久刪除。透過諮詢選用的 `is_delete_marker` 欄，進一步消除歧義。 如需詳細資訊，請參閱[刪除啟用版本控制功能之儲存貯體中的物件](DeletingObjectVersions.md)。  永久刪除操作會在*除* `bucket`、`key`、`sequence_number`、`record_type`、`record_timestamp` 和 `version_id` 之外的所有欄位中保留 `NULL` 值 (即標記為必要的欄位)。  | 
| `record_timestamp` | 是 | 時間戳記 NTZ (無時區) | 與此記錄相關聯的時間戳記。 | 
| `version_id` | 否 | String |  物件的版本 ID。當您對儲存貯體啟用版本控制時，Amazon S3 會將版本號碼指派給已新增至儲存貯體的物件。如需詳細資訊，請參閱[使用 S3 版本控制保留多個版本的物件](Versioning.md)。 在您設定版本控制狀態之前，儲存在儲存貯體中的物件版本 ID 為 null。  | 
| `is_delete_marker` | 否 | Boolean |  物件的刪除標記狀態。對於刪除標記的 DELETE 記錄，此值為 `TRUE`。對於永久刪除，會省略此值 (`NULL`)。其他記錄類型 (CREATE 和 UPDATE\$1METADATA) 的值為 `FALSE`。如需詳細資訊，請參閱[使用刪除標記](DeleteMarker.md)。  刪除標記的 `record_type` 值為 `DELETE` (而不是 `UPDATE_METADATA`) 時為其新增的列。如果因為 S3 生命週期過期而建立刪除標記，則 `requester` 值為 `s3.amazonaws.com`。   | 
| `size` | 否 | Long | 物件大小 (位元組)，不包括未完成的分段上傳或物件中繼資料大小。如果 `is_delete_marker` 為 `TRUE`，則大小為 `0`。如需詳細資訊，請參閱[系統定義的物件中繼資料](UsingMetadata.md#SysMetadata)。 | 
| `last_modified_date` | 否 | 時間戳記 NTZ (無時區) | 物件建立日期或上次修改日期，以最近者為準。對於分段上傳，物件建立日期是指啟動分段上傳的日期。如需詳細資訊，請參閱[系統定義的物件中繼資料](UsingMetadata.md#SysMetadata)。 | 
| `e_tag` | 否 | String | 實體標籤 (ETag)，這是物件的雜湊值。ETag 只會反映物件內容的變更，而非其中繼資料的變更。ETag 可以是物件資料的 MD5 Digest。ETag 是否為 MD5 摘要取決於物件的建立方式和加密方式。如需詳細資訊，請參閱 *Amazon S3 API 參考*中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)。 | 
| `storage_class` | 否 | String | 用於儲存物件的儲存類別。下列其中一項：`STANDARD`、`REDUCED_REDUNDANCY`、`STANDARD_IA`、`ONEZONE_IA`、`INTELLIGENT_TIERING`、`GLACIER`、`DEEP_ARCHIVE` 或 `GLACIER_IR`。如需詳細資訊，請參閱[了解和管理 Amazon S3 儲存類別](storage-class-intro.md)。 | 
| `is_multipart` | 否 | Boolean | 物件的上傳類型。如果物件是以分段上傳的方式上傳，則此值為 `TRUE`。否則為 `FALSE`。如需詳細資訊，請參閱[在 Amazon S3 中使用分段上傳來上傳和複製物件](mpuoverview.md)。 | 
| `encryption_status` | 否 | String | 物件的伺服器端加密狀態，視使用的加密金鑰類型而定：使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)、使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS)、使用 AWS KMS keys 的雙層伺服器端加密 (DSSE-KMS)，或使用客戶提供金鑰的伺服器端加密 (SSE-C)。如果物件未加密，則此值為 null。可能的值包括 `SSE-S3`、`SSE-KMS`、`DSSE-KMS`、`SSE-C` 或 null。如需詳細資訊，請參閱[使用加密來保護資料](UsingEncryption.md)。 | 
| `is_bucket_key_enabled` | 否 | Boolean | 物件的 S3 儲存貯體金鑰啟用狀態。如果物件針對 SSE-KMS 使用 S3 儲存貯體金鑰，則此值為 `TRUE`。否則為 `FALSE`。如需詳細資訊，請參閱[在物件層級設定 S3 儲存貯體金鑰](configuring-bucket-key-object.md)。 | 
| `kms_key_arn` | 否 | String |  用來加密物件之 KMS 金鑰的 Amazon Resource Name (ARN)，適用於 `encryption_status` 為 `SSE-KMS` 或 `DSSE-KMS` 的列。如果物件未使用 SSE-KMS 或 DSSE-KMS 加密，則值為 null。如需詳細資訊，請參閱[搭配 AWS KMS 金鑰使用伺服器端加密 (SSE-KMS)](UsingKMSEncryption.md)及[使用雙層伺服器端加密搭配 AWS KMS 金鑰 (DSSE-KMS)](UsingDSSEncryption.md)。  如果列代表處理刪除或覆寫事件時不再存在的物件版本，`kms_key_arn` 會包含 null 值，即使 `encryption_status` 欄值為 `SSE-KMS` 或 `DSSE-KMS` 也一樣。   | 
| `checksum_algorithm` | 否 | String | 用來建立物件檢查總和的演算法，下列其中一項：`CRC64NVME`、`CRC32`、`CRC32C`、`SHA1` 或 `SHA256`。如果不存在檢查總和，則此值為 null。如需詳細資訊，請參閱[使用支持的檢查總和演算法](checking-object-integrity-upload.md#using-additional-checksums)。 | 
| `object_tags` | 否 | Map <String, String> |  與物件相關聯的物件標籤。物件標籤會儲存為金鑰/值對的映射。如果物件沒有物件標籤，則會儲存空的映射 (`{}`)。如需詳細資訊，請參閱[使用標籤為物件分類](object-tagging.md)。  如果 `record_type` 值為 `DELETE`，則 `object_tags` 欄會包含 null 值。如果 `record_type` 值為 `CREATE` 或 `UPDATE_METADATA`，代表處理刪除或覆寫事件時不再存在之物件版本的列會在 `object_tags` 欄中包含 null 值。   | 
| `user_metadata` | 否 | Map <String, String> |  與物件相關聯的使用者中繼資料。使用者中繼資料會儲存為金鑰/值對的映射。如果物件沒有使用者中繼資料，則會儲存空的映射 (`{}`)。如需詳細資訊，請參閱[使用者定義的物件中繼資料](UsingMetadata.md#UserMetadata)。  如果 `record_type` 值為 `DELETE`，則 `user_metadata` 欄會包含 null 值。如果 `record_type` 值為 `CREATE` 或 `UPDATE_METADATA`，代表處理刪除或覆寫事件時不再存在之物件版本的列會在 `user_metadata` 欄中包含 null 值。   | 
| `requester` | 否 | String | 提出請求的請求者或 AWS 服務 委託人的 AWS 帳戶 ID。例如，若請求者是 S3 生命週期，則此值為 `s3.amazonaws.com`。 | 
| `source_ip_address` | 否 | String | 請求的來源 IP 位址。對於使用者請求產生的記錄，此欄包含請求的來源 IP 位址。對於 Amazon S3 或代表 AWS 服務 使用者執行的動作，此欄包含 null 值。 | 
| `request_id` | 否 | String | 與請求相關聯的請求 ID。 | 

# S3 Metadata 即時庫存資料表結構描述
<a name="metadata-tables-inventory-schema"></a>

即時庫存資料表提供了儲存貯體中所有物件及其版本的簡單、可查詢的庫存，以方便您確認資料的最新狀態。對物件的更新通常會在一小時內反映在庫存資料表中。

您可以使用此資料表，透過識別要針對各種工作負載進行處理的物件，簡化並加快業務工作流程和巨量資料任務。例如，您可以查詢庫存資料表，以執行下列動作：
+ 尋找儲存在 S3 Glacier Deep Archive 儲存類別中的所有物件。
+ 建立物件標籤的分佈，或尋找沒有標籤的物件。
+ 尋找所有未加密的物件，方法是使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)。

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

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

Amazon S3 Metadata 庫存資料表包含列和欄。每一列代表一般用途儲存貯體中物件的目前狀態。庫存資料表提供了儲存貯體中所有物件簡單、可查詢的庫存，以方便您確認資料的目前狀態。

以下是名為 `amzn-s3-demo-bucket:` 之一般用途儲存貯體的庫存資料表範例 

```
bucket                key                        sequence_number                                                                                          version_id   is_delete_marker   size   last_modified_date   e_tag	                          storage_class   is_multipart   encryption_status   is_bucket_key_enabled   kms_key_arn                                                                   checksum_algorithm   object_tags   user_metadata
amzn-s3-demo-bucket Finance/statement1.pdf     80e737d8b4d82f776affffffffffffffff006737d8b4d82f776a00000000000000000000000000000000000000000000000072                FALSE              6223   11/15/2024 23:26     e131b86632dda753aac4018f72192b83    STANDARD	  FALSE          SSE-KMS             FALSE                   arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890df   SSECRC32             {}            {count -> Asia, customs -> false, family -> true, location -> Mary, name -> football, user -> United States}
amzn-s3-demo-bucket s3-dg.pdf                  80e737d8b4e39f1dbdffffffffffffffff006737d8b4e39f1dbd00000000000000000000000000000000000000000000000072                FALSE              3554   11/15/2024 23:26     9bb49efc2d92c05558ddffbbde8636d5    STANDARD	  FALSE          DSSE-KMS            FALSE                   arn:aws:kms:us-east-1:936810216292:key/0dcebce6-49fd-4cae-b2e2-5512ad281afd   SSESHA1              {}            {}
amzn-s3-demo-bucket Development/Projects.xls   80e737d8b4ed9ac5c6ffffffffffffffff006737d8b4ed9ac5c600000000000000000000000000000000000000000000000072                FALSE              7746   11/15/2024 23:26     729a6863e47fb9955b31bfabce984908    STANDARD	  FALSE          SSE-S3              FALSE                   NULL                                                                          SSECRC32             {}            {count -> Asia, customs -> Canada, family -> Billiards, filter -> true, location -> Europe, name -> Asia, user -> United States}
```

庫存資料表具有下列結構描述：


| 欄名稱 | 是否為必要？ | 資料類型 |   | 
| --- | --- | --- | --- | 
|  `bucket`  | 是 | String | 一般用途儲存貯體名稱。如需詳細資訊，請參閱[一般用途儲存貯體命名規則](bucketnamingrules.md)。 | 
|  `key`  | 是 | String | 物件金鑰名稱 (或金鑰)，可唯一識別儲存貯體中的物件。如需詳細資訊，請參閱[命名 Amazon S3 物件](object-keys.md)。 | 
|  `sequence_number`  | 是 | String |  序號，這是包含在指定物件記錄中的序數。若要排序相同儲存貯體和金鑰的記錄，您可以依 `sequence_number` 進行排序。對於指定的儲存貯體和金鑰，字母順序較大的 `sequence_number` 值表示記錄引進儲存貯體的時間較近。  | 
|  `version_id`  | 否 | String |  物件的版本 ID。當您對儲存貯體啟用版本控制時，Amazon S3 會將版本號碼指派給已新增至儲存貯體的物件。如需詳細資訊，請參閱[使用 S3 版本控制保留多個版本的物件](Versioning.md)。 在您設定版本控制狀態之前，儲存在儲存貯體中的物件版本 ID 為 null。  | 
|  `is_delete_marker`  | 否 | Boolean |  物件的刪除標記狀態。如果物件為刪除標記，則此值為 `True`。否則為 `False`。如需詳細資訊，請參閱[使用刪除標記](DeleteMarker.md)。  刪除標記的 `record_type` 值為 `DELETE` (而不是 `UPDATE_METADATA`) 時為其新增的列。如果因為 S3 生命週期過期而建立刪除標記，則 `requester` 值為 `s3.amazonaws.com`。   | 
|  `size`  | 否 | Long |  物件大小 (位元組)，不包括未完成的分段上傳或物件中繼資料大小。如果 `is_delete_marker` 為 `True`，則大小為 `0`。如需詳細資訊，請參閱[系統定義的物件中繼資料](UsingMetadata.md#SysMetadata)。  | 
|  `last_modified_date`  | 否 | 時間戳記 NTZ (無時區) |  物件建立日期或上次修改日期，以最近者為準。對於分段上傳，物件建立日期是指啟動分段上傳的日期。如需詳細資訊，請參閱[系統定義的物件中繼資料](UsingMetadata.md#SysMetadata)。  | 
|  `e_tag`  | 否 | String |  實體標籤 (ETag)，這是物件的雜湊值。ETag 只會反映物件內容的變更，而非其中繼資料的變更。ETag 可以是物件資料的 MD5 Digest。ETag 是否為 MD5 摘要取決於物件的建立方式和加密方式。如需詳細資訊，請參閱 *Amazon S3 API 參考*中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)。  | 
|  `storage_class`  | 否 | String |  用於儲存物件的儲存類別。下列其中一項：`STANDARD`、`REDUCED_REDUNDANCY`、`STANDARD_IA`、`ONEZONE_IA`、`INTELLIGENT_TIERING`、`GLACIER`、`DEEP_ARCHIVE` 或 `GLACIER_IR`。如需詳細資訊，請參閱[了解和管理 Amazon S3 儲存類別](storage-class-intro.md)。  | 
|  `is_multipart`  | 否 | Boolean |  物件的上傳類型。如果物件是以分段上傳的方式上傳，則此值為 `True`。否則為 `False`。如需詳細資訊，請參閱[在 Amazon S3 中使用分段上傳來上傳和複製物件](mpuoverview.md)。  | 
|  `encryption_status`  | 否 | String |  物件的伺服器端加密狀態，視使用的加密金鑰類型而定：使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)、使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS)、使用 AWS KMS keys 的雙層伺服器端加密 (DSSE-KMS)，或使用客戶提供金鑰的伺服器端加密 (SSE-C)。如果物件未加密，則此值為 null。可能的值包括 `SSE-S3`、`SSE-KMS`、`DSSE-KMS`、`SSE-C` 或 null。如需詳細資訊，請參閱[使用加密來保護資料](UsingEncryption.md)。  | 
|  `is_bucket_key_enabled`  | 否 | Boolean |  物件的 S3 儲存貯體金鑰啟用狀態。如果物件針對 SSE-KMS 使用 S3 儲存貯體金鑰，則此值為 `True`。否則為 `False`。如需詳細資訊，請參閱[在物件層級設定 S3 儲存貯體金鑰](configuring-bucket-key-object.md)。  | 
|  `kms_key_arn`  | 否 | String |  用來加密物件之 KMS 金鑰的 Amazon Resource Name (ARN)，適用於 `encryption_status` 為 `SSE-KMS` 或 `DSSE-KMS` 的列。如果物件未使用 SSE-KMS 或 DSSE-KMS 加密，則值為 null。如需詳細資訊，請參閱[搭配 AWS KMS 金鑰使用伺服器端加密 (SSE-KMS)](UsingKMSEncryption.md)及[使用雙層伺服器端加密搭配 AWS KMS 金鑰 (DSSE-KMS)](UsingDSSEncryption.md)。  如果列代表處理刪除或覆寫事件時不再存在的物件版本，`kms_key_arn` 會包含 null 值，即使 `encryption_status` 欄值為 `SSE-KMS` 或 `DSSE-KMS` 也一樣。   | 
|  `checksum_algorithm`  | 否 | String |  用來建立物件檢查總和的演算法，下列其中一項：`CRC64-NVME`、`CRC32`、`CRC32C`、`SHA1` 或 `SHA256`。如果不存在檢查總和，則此值為 null。如需詳細資訊，請參閱[使用支持的檢查總和演算法](checking-object-integrity-upload.md#using-additional-checksums)。  | 
|  `object_tags`  | 否 | Map <String, String> |  與物件相關聯的物件標籤。物件標籤會儲存為金鑰/值對的映射。如果物件沒有物件標籤，則會儲存空的映射 (`{}`)。如需詳細資訊，請參閱[使用標籤為物件分類](object-tagging.md)。  如果 `record_type` 值為 `DELETE`，則 `object_tags` 欄會包含 null 值。如果 `record_type` 值為 `CREATE` 或 `UPDATE_METADATA`，代表處理刪除或覆寫事件時不再存在之物件版本的列會在 `object_tags` 欄中包含 null 值。   | 
|  `user_metadata`  | 否 | Map <String, String> |  與物件相關聯的使用者中繼資料。使用者中繼資料會儲存為金鑰/值對的映射。如果物件沒有使用者中繼資料，則會儲存空的映射 (`{}`)。如需詳細資訊，請參閱[使用者定義的物件中繼資料](UsingMetadata.md#UserMetadata)。  如果 `record_type` 值為 `DELETE`，則 `user_metadata` 欄會包含 null 值。如果 `record_type` 值為 `CREATE` 或 `UPDATE_METADATA`，代表處理刪除或覆寫事件時不再存在之物件版本的列會在 `user_metadata` 欄中包含 null 值。   | 

# 設定中繼資料表
<a name="metadata-tables-configuring"></a>

Amazon S3 Metadata 透過自動擷取一般用途儲存貯體中物件的中繼資料，並將其儲存在您可以查詢的唯讀、全受管 Apache Iceberg 資料表中，從而加速資料探索。這些唯讀資料表稱為「中繼資料表」**。當您在一般用途儲存貯體中新增、更新和移除物件時，S3 Metadata 會自動重新整理對應的中繼資料表，以反映最新的變更。

透過 S3 Metadata，您可以輕鬆尋找、儲存和查詢 S3 物件的中繼資料，以便快速準備資料，以用於商業分析、人工智慧和機器學習 (AI/ML) 模型訓練等。

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

若要建立中繼資料表組態，請確定您具有建立和管理中繼資料表的必要 AWS Identity and Access Management (IAM) 許可。

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

**Topics**
+ [

# 設定設定中繼資料表的許可
](metadata-tables-permissions.md)
+ [

# 建立中繼資料表組態
](metadata-tables-create-configuration.md)
+ [

# 控制對中繼資料表的存取
](metadata-tables-access-control.md)
+ [

# 到期的日誌資料表記錄
](metadata-tables-expire-journal-table-records.md)
+ [

# 啟用或停用即時庫存資料表
](metadata-tables-enable-disable-inventory-tables.md)
+ [

# 檢視中繼資料表組態
](metadata-tables-view-configuration.md)
+ [

# 刪除中繼資料表組態
](metadata-tables-delete-configuration.md)
+ [

# 刪除中繼資料表
](metadata-tables-delete-table.md)

# 設定設定中繼資料表的許可
<a name="metadata-tables-permissions"></a>

若要建立中繼資料表組態，您必須擁有必要的 AWS Identity and Access Management (IAM) 許可，才能建立和管理中繼資料表組態，以及建立和管理中繼資料表和存放中繼資料表的資料表儲存貯體。

若要建立和管理中繼資料表組態，您必須具有下列許可：
+ `s3:CreateBucketMetadataTableConfiguration` – 此許可允許您為一般用途儲存貯體建立中繼資料表組態。若要建立中繼資料資料表組態，則需額外的許可權，包括 S3 Tables 許可，如以下各區段所述。如需必要許可的摘要資料，請參閱 [儲存貯體操作和許可](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets)。
+ `s3:GetBucketMetadataTableConfiguration` – 此許可允許您擷取中繼資料表組態的相關資訊。
+ `s3:DeleteBucketMetadataTableConfiguration` – 此許可允許您刪除中繼資料表組態。
+ `s3:UpdateBucketMetadataJournalTableConfiguration` – 此許可權可讓您更新日誌資料表組態，使日誌資料表記錄過期。
+ `s3:UpdateBucketMetadataInventoryTableConfiguration` – 此許可權可讓您更新庫存資料表組態，以啟用或停用庫存資料表。若要更新庫存資料表組態，則需其他許可權，包括 S3 Tables 許可。如需必要許可的清單，請參閱[儲存貯體操作和許可](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets)。
**注意**  
`s3:CreateBucketMetadataTableConfiguration`、`s3:GetBucketMetadataTableConfiguration` 和 `s3:DeleteBucketMetadataTableConfiguration` 許可權適用於 V1 和 V2 S3 Metadata 組態。對於 V2，對應的 API 操作名稱為 `CreateBucketMetadataConfiguration`、`GetBucketMetadataConfiguration` 和 `DeleteBucketMetadataConfiguration`。

若要建立和使用資料表和資料表儲存貯體，您必須具有特定 `s3tables` 許可。若要建立中繼資料表組態，您至少必須具有下列 `s3tables` 許可：
+ `s3tables:CreateTableBucket` – 此許可權允許您建立 AWS 受管資料表儲存貯體。您帳戶和相同區域中的所有中繼資料資料表組態都會存放在名為 的單一 AWS 受管資料表儲存貯體中`aws-s3`。如需詳細資訊，請參閱[中繼資料表的運作方式](metadata-tables-overview.md#metadata-tables-how-they-work)和[使用 AWS 受管資料表儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html)體。
+ `s3tables:CreateNamespace` – 此許可允許您在資料表儲存貯體中建立命名空間。中繼資料表通常使用 `b_general_purpose_bucket_name` 命名空間。如需有關中繼資料表命名空間的詳細資訊，請參閱 [中繼資料表的運作方式](metadata-tables-overview.md#metadata-tables-how-they-work)。
+ `s3tables:CreateTable` – 此許可權允許您建立中繼資料表。
+ `s3tables:GetTable` – 此許可權允許您擷取中繼資料表的相關資訊。
+ `s3tables:PutTablePolicy` – 此許可權允許您新增或更新中繼資料表政策。
+ `s3tables:PutTableEncryption` – 此許可允許您設定中繼資料資料表的伺服器端加密。如果您想要使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 來加密中繼資料表，則需要其他許可。如需詳細資訊，請參閱 [SSE-KMS 的權限](#metadata-kms-permissions)。
+ `kms:DescribeKey` – 此許可權允許您擷取 KMS 金鑰的相關資訊。
+ `s3tables:PutTableBucketPolicy` – 此許可可讓您建立或更新新的資料表儲存貯體政策。

如需所有資料表和資料表儲存貯體許可的詳細資訊，請參閱 [S3 Tables 的存取管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html)。

**重要**  
如果您也想要整合資料表儲存貯體與 AWS 分析服務，以便查詢中繼資料資料表，則需要額外的許可。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)。

**SSE-KMS 的權限**  
若要使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 使用伺服器端加密來加密中繼資料表，您必須擁有其他許可。

1. 使用者或 AWS Identity and Access Management (IAM) 角色需要下列許可。您可以使用 IAM 主控台授予這些權限，網址為 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. `s3tables:PutTableEncryption` 設定資料表加密

   1. `kms:DescribeKey` 在所使用的 AWS KMS 金鑰上

1. 在 KMS 金鑰的資源政策上，您需要下列許可權。您可以使用 AWS KMS 主控台授予這些許可：https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)。

   1. 將 `kms:GenerateDataKey` 權限授予 `metadata.s3.amazonaws.com` 和 `maintenance.s3tables.amazonaws.com`。

   1. 將 `kms:Decrypt` 權限授予 `metadata.s3.amazonaws.com` 和 `maintenance.s3tables.amazonaws.com`。

   1. 授予叫用 AWS 委託人的`kms:DescribeKey`許可。

除了這些權限之外，請確定用於加密資料表的客戶自管 KMS 金鑰仍然存在、作用中，且與您的一般用途儲存貯體位於相同的區域。

**範例 政策**  
若要建立和使用中繼資料表和資料表儲存貯體，您可以使用下列範例政策。在此政策中，您要套用中繼資料表組態的一般用途儲存貯體稱為 `amzn-s3-demo-bucket`。若要使用此政策，請以您自己的資訊取代 `user input placeholders`。

當建立中繼資料表組態時，您的中繼資料表會儲存在 AWS 受管資料表儲存貯體中。您帳戶和相同區域中的所有中繼資料表組態都會存放在名為 的單一 AWS 受管資料表儲存貯體中`aws-s3`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsToWorkWithMetadataTables",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucketMetadataTableConfiguration",
                "s3:GetBucketMetadataTableConfiguration",
                "s3:DeleteBucketMetadataTableConfiguration",
                "s3:UpdateBucketMetadataJournalTableConfiguration",
                "s3:UpdateBucketMetadataInventoryTableConfiguration",
                "s3tables:*",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*"
            ]
        }
    ]
}
```

------

若要查詢中繼資料表，您可以使用下列範例政策。如果您的中繼資料表已使用 SSE-KMS 加密，您將需要 `kms:Decrypt` 許可權，如下所示。若要使用此政策，請以您自己的資訊取代 `user input placeholders`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsToQueryMetadataTables",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTable",
                "s3tables:GetTableData",
                "s3tables:GetTableMetadataLocation",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*"
            ]
        }
    ]
}
```

------

# 建立中繼資料表組態
<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)。

# 控制對中繼資料表的存取
<a name="metadata-tables-access-control"></a>

若要控制對 Amazon S3 中繼資料表的存取，您可以使用連接到資料表儲存貯體和中繼資料表的 AWS Identity and Access Management (IAM) 資源型政策。換言之，您可以同時在資料表儲存貯體層級和資料表層級控制對中繼資料表的存取。

如需控制對資料表儲存貯體和資料表的存取詳細資訊，請參閱 [S3 Tables 的存取管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html)。

**重要**  
當您建立或更新資料表儲存貯體或資料表政策時，請確定您不會限制 Amazon S3 服務主體 `metadata.s3.amazonaws.com` 和 `maintenance.s3tables.amazonaws.com` 寫入資料表儲存貯體或中繼資料表。  
如果 Amazon S3 無法寫入資料表儲存貯體或中繼資料表，您必須刪除中繼資料表組態、刪除中繼資料表，然後建立新的組態。如果您的組態中有庫存資料表，則必須建立新的庫存資料表，而且您將需要再次支付回填新庫存資料表的費用。

您也可以透過 控制對中繼資料資料表中資料列和資料欄的存取 AWS Lake Formation。如需詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的[管理 Lake Formation 許可](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-permissions.html)和 [Lake Formation 中的資料篩選與儲存格層級安全性](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filtering.html)。

# 到期的日誌資料表記錄
<a name="metadata-tables-expire-journal-table-records"></a>

根據預設，日誌資料表中的記錄不會過期。為協助將日誌資料表的儲存成本降到最低，您可以啟用日誌資料表記錄到期條件。

**注意**  
如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，則無法在該組態上使日誌資料表記錄過期。建議您刪除並重新建立組態，以便使日誌資料表記錄過期，並建立庫存資料表。如需詳細資訊，請參閱[在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](metadata-tables-create-configuration.md#metadata-tables-migration)。

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

**重要**  
日誌資料表記錄到期後，便無法復原。

記錄將在符合到期條件後的 24 至 48 小時內到期。日誌記錄會從最新的快照中移除。已刪除記錄的資料和儲存體，可藉由資料表維護操作進行移除。

如果您已啟用日誌資料表記錄到期條件，您可以隨時停用此功能，以停止日誌資料表記錄到期條件。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) AWS 、 SDKs 或 Amazon S3 REST API 來使日誌資料表記錄過期。

## 如何使日誌資料表記錄過期
<a name="metadata-tables-expire-journal-table-records-procedure"></a>

### 使用 S3 主控台
<a name="metadata-tables-expire-journal-table-records-console"></a>

**使日誌資料表記錄過期**

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

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

1. 選擇包含中繼資料表組態的一般用途儲存貯體，其中包含您要使記錄過期的日誌資料表。

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

1. 在**中繼資料**索引標籤上，選擇**編輯**，然後選擇**編輯日誌資料表記錄過期**。

1. 在**編輯日誌資料表記錄過期**頁面上，選擇**記錄過期**下的**已啟用**。

1. 設定要保留日誌資料表記錄的天數。若要設定**記錄變成過期的天數**值，請指定介於 `7` 和 `2147483647` 之間的任何整數。例如，若要將日誌資料表記錄保留一年，請將此值設定為 `365`。
**重要**  
日誌資料表記錄到期後，便無法復原。

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

1. 選擇**儲存變更**。

如果您想要停用日誌資料表記錄過期功能，請重複上述步驟，但針對步驟 6 選擇**已停用**，而非**已啟用**。

### 使用 AWS CLI
<a name="metadata-tables-expire-journal-table-records-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**

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

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

   若要設定 `Days` 值，請指定介於 `7` 和 `2147483647` 之間的任何整數。例如，若要將日誌資料表記錄保留一年，請將此值設定為 `365`。

   ```
   {
     "RecordExpiration": {
       "Expiration": "ENABLED",
       "Days": 10
     }
   }
   ```

   若要停用日誌資料表記錄過期功能，請改為建立下列範例組態。如果 `Expiration` 設定為 `DISABLED`，則不得在組態中指定 `Days` 值。

   ```
   {
     "RecordExpiration": {
       "Expiration": "DISABLED"
     }
   }
   ```

1. 使用下列命令來使一般用途儲存貯體中日誌資料表的記錄過期 (例如，`amzn-s3-demo-bucket`)：

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

### 使用 REST API
<a name="metadata-tables-expire-journal-table-records-rest-api"></a>

您可以傳送 REST 請求來使日誌資料表記錄過期。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html)。

### 使用 AWS SDKs
<a name="metadata-tables-expire-journal-table-records-sdk"></a>

您可以使用 AWS SDKs 使 Amazon S3 中的日誌資料表記錄過期。如需詳細資訊，請參閱[支援的 SDK 清單](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html#API_UpdateBucketMetadataJournalTableConfiguration_SeeAlso)。

# 啟用或停用即時庫存資料表
<a name="metadata-tables-enable-disable-inventory-tables"></a>

根據預設，您的中繼資料表組態包含*日誌資料表*，表中記錄了儲存貯體中物件發生的事件。每個中繼資料表組態都需要日誌資料表。

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

**注意**  
如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，則無法在該組態上啟用庫存資料表。建議您刪除並重新建立組態，以便建立庫存資料表，並使日誌資料表記錄過期。如需詳細資訊，請參閱[在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](metadata-tables-create-configuration.md#metadata-tables-migration)。

庫存資料表包含儲存貯體中所有物件的最新中繼資料。您可以使用此資料表，透過識別要針對各種工作負載進行處理的物件，簡化並加快業務工作流程和巨量資料任務。例如，您可以查詢庫存資料表，以執行下列動作：
+ 尋找儲存在 S3 Glacier Deep Archive 儲存類別中的所有物件。
+ 建立物件標籤的分佈，或尋找沒有標籤的物件。
+ 尋找所有未加密的物件，方法是使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)。
+ 比較兩個不同時間點的庫存資料表，以了解具有特定標籤之物件的成長。

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

**注意**  
您需要為回填庫存資料表付費。如果您的一般用途儲存貯體擁有超過十億個物件，則您的庫存資料表還需要每月支付費用。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。
您無法暫停對庫存資料表的更新，於是繼續更新。不過，您可以停用庫存資料表組態。停用庫存資料表並不會將其刪除。庫存資料表留著供您記錄時使用，直到您決定刪除該表。  
如果您已停用清查資料表，但之後想要重新啟用它，您必須先從 AWS 受管資料表儲存貯體中刪除舊清查資料表。當您重新啟用庫存資料表組態時，Amazon S3 會建立新的庫存資料表，並且針對新庫存資料表回填再次向您收費。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs 或 Amazon S3 REST API 來啟用或停用清查資料表。

**先決條件**  
如果您已停用清查資料表，現在想要重新啟用它，您必須先從 AWS 受管資料表儲存貯體手動刪除舊清查資料表。否則，重新啟用庫存資料表會失敗，因為庫存資料表已存在於資料表儲存貯體中。若要刪除庫存資料表，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md#delete-metadata-table-procedure)。

當您重新啟用庫存資料表組態時，Amazon S3 會建立新的庫存資料表，並且針對新庫存資料表回填再次向您收費。

## 啟用或停用庫存資料表
<a name="metadata-tables-enable-disable-inventory-tables-procedure"></a>

### 使用 S3 主控台
<a name="metadata-tables-enable-disable-inventory-tables-console"></a>

**啟用或停用庫存資料表**

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

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

1. 選擇一般用途儲存貯體，其中包含您要啟用或停用庫存資料表的中繼資料表組態。

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

1. 在**中繼資料**索引標籤上，選擇**編輯**，然後選擇**編輯庫存資料表組態**。

1. 在**編輯庫存資料表組態**頁面上，選擇**庫存資料表**下的**已啟用**或**已停用**。
**注意**  
在選擇**已啟用**之前，請確定您已檢閱並符合[先決條件](#inventory-table-config-prereqs)。
   + 如果您選擇**已啟用**，您可以選擇是否使用 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 金鑰**。
   + 如果您選擇**已停用**，在**停用庫存資料表之後，資料表將不再更新，且無法續更新**下，選取此核取方塊。

1. 選擇**儲存變更**。

### 使用 AWS CLI
<a name="metadata-tables-enable-disable-inventory-tables-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**

若要使用下列範例命令，請以您自己的資訊取代 `user input placeholders`。
**注意**  
啟用庫存組態之前，請確定您已檢閱並符合[先決條件](#inventory-table-config-prereqs)。

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

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

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

   ```
   {
     "ConfigurationState": "ENABLED",
     "EncryptionConfiguration": {       
       "SseAlgorithm": "aws:kms",
       "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id"
     }  
   }
   ```

   如果您想要停用現有的庫存資料表，請使用下列組態：

   ```
   {
     "ConfigurationState": "DISABLED"  }  
   }
   ```

1. 使用下列命令，針對一般用途儲存貯體(例如 `amzn-s3-demo-bucket`) 更新庫存資料表組態：

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

### 使用 REST API
<a name="metadata-tables-enable-disable-inventory-tables-rest-api"></a>

您可以傳送 REST 請求來啟用或停用庫存資料表。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html)。

### 使用 AWS SDKs
<a name="metadata-tables-enable-disable-inventory-tables-sdk"></a>

您可以使用 AWS SDKs 在 Amazon S3 中啟用或停用清查資料表。如需詳細資訊，請參閱[支援的 SDK 清單](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html#API_UpdateBucketMetadataInventoryTableConfiguration_SeeAlso)。

# 檢視中繼資料表組態
<a name="metadata-tables-view-configuration"></a>

如果您已針對一般用途儲存貯體建立中繼資料表組態，您可以檢視組態的相關資訊，例如是否已啟用庫存資料表，或是否已啟用日誌資料表記錄過期功能。您也可以檢視日誌和庫存資料表的狀態。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs 或 Amazon S3 REST API 來檢視一般用途儲存貯體的中繼資料表組態。

## 檢視中繼資料表組態
<a name="metadata-tables-view-configuration-procedure"></a>

### 使用 S3 主控台
<a name="metadata-tables-view-configuration-console"></a>

**檢視中繼資料表組態**

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

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

1. 選擇包含您要檢視之中繼資料表組態的一般用途儲存貯體。

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

1. 在**中繼資料**索引標籤上，向下捲動至**中繼資料組態**區段。在**日誌資料表**和**庫存資料表**區段中，可以檢視這些組態的各種資訊，例如其 Amazon Resource Name (ARN)、資料表的狀態，以及您是否已啟用日誌資料表記錄過期功能或庫存資料表。

### 使用 AWS CLI
<a name="metadata-tables-view-configuration-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**

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

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

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

1. 檢視此命令的輸出，以查看中繼資料表組態的狀態。例如：

   ```
   {
       "GetBucketMetadataConfigurationResult": {
           "MetadataConfigurationResult": {
               "DestinationResult": {
                   "TableBucketType": "aws",
                   "TableBucketArn": "arn:aws:s3tables:us-east-2:111122223333:bucket/aws-managed-s3-111122223333-us-east-2",
                   "TableNamespace": "b_general-purpose-bucket-name"
               },
               "JournalTableConfigurationResult": {
                   "TableStatus": "ACTIVE",
                   "TableName": "journal",
                   "TableArn": "arn:aws:s3tables:us-east-2:111122223333:bucket/aws-managed-s3-111122223333-us-east-2/table/0f01234c-fe7a-492f-a4c7-adec3864ea85",
                   "EncryptionConfiguration": {
                       "SseAlgorithm": "AES256"
                   },
                   "RecordExpiration": {
                       "Expiration": "ENABLED",
                       "Days": 10
                   }
               },
               "InventoryTableConfigurationResult": {
                   "ConfigurationState": "ENABLED",
                   "TableStatus": "BACKFILL_COMPLETE",
                   "TableName": "inventory",
                   "TableArn": "arn:aws:s3tables:us-east-2:111122223333:bucket/aws-managed-s3-111122223333-us-east-2/table/e123456-b876-4e5e-af29-bb055922ee4d",
                   "EncryptionConfiguration": {
                       "SseAlgorithm": "AES256"
                   }
               }
           }
       }
   }
   ```

### 使用 REST API
<a name="metadata-tables-view-configuration-rest-api"></a>

您可以傳送 REST 請求來檢視中繼資料表組態。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html)。

**注意**  
您可以搭配 V1 或 V2 中繼資料表組態來使用 V2 `GetBucketMetadataConfiguration` API 操作。不過，如果您嘗試搭配 V2 組態使用 V1 `GetBucketMetadataTableConfiguration` API 操作，您將會收到 HTTP `405 Method Not Allowed` 錯誤。

### 使用 AWS SDKs
<a name="metadata-tables-view-configuration-sdk"></a>

您可以使用 AWS SDKs 在 Amazon S3 中檢視中繼資料表組態。如需詳細資訊，請參閱[支援的 SDK 清單](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html#API_GetBucketMetadataTableConfiguration_SeeAlso)。

# 刪除中繼資料表組態
<a name="metadata-tables-delete-configuration"></a>

如果您想要停止更新 Amazon S3 一般用途儲存貯體的中繼資料表組態，您可以刪除連接至儲存貯體的中繼資料表組態。刪除中繼資料表組態只會刪除組態。受 AWS 管資料表儲存貯體和中繼資料資料表仍然存在，即使您刪除中繼資料資料表組態也一樣。不過，中繼資料表將不再更新。

**注意**  
如果刪除中繼資料資料表組態，並想要為相同的一般用途儲存貯體重新建立組態，您必須先從 AWS 受管資料表儲存貯體手動刪除舊日誌和庫存資料表。否則，建立新中繼資料資料表組態會失敗，因為這些資料表已存在。若要刪除您的中繼資料表，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md)。

若要刪除您的中繼資料表，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md#delete-metadata-table-procedure)。若要刪除您的資料表儲存貯體，請參閱 Amazon S3 API 參考**中的[刪除資料表儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-delete.html)和[https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucket.html)。

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

## 刪除中繼資料表組態
<a name="delete-metadata-config-procedure"></a>

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

**刪除中繼資料表組態**

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

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

1. 選擇您要從中移除中繼資料表組態的一般用途儲存貯體。

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

1. 在**中繼資料**索引標籤上，選擇**刪除**。

1. 在**刪除中繼資料組態**對話方塊中，輸入 **confirm** 以確認您要刪除組態。然後選擇**刪除**。

### 使用 AWS CLI
<a name="delete-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**

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

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

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

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

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

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

您可以傳送 REST 請求來刪除中繼資料表組態。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html)。

**注意**  
您可以搭配 V1 或 V2 中繼資料表組態來使用 V2 `DeleteBucketMetadataConfiguration` API 操作。不過，如果您嘗試搭配 V2 組態使用 V1 `DeleteBucketMetadataTableConfiguration` API 操作，您將會收到 HTTP `405 Method Not Allowed` 錯誤。

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

您可以使用 AWS SDKs來刪除 Amazon S3 中的中繼資料表組態。如需詳細資訊，請參閱[支援的 SDK 清單](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html#API_DeleteBucketMetadataConfiguration_SeeAlso)。

# 刪除中繼資料表
<a name="metadata-tables-delete-table"></a>

如果您想要刪除為 Amazon S3 一般用途儲存貯體建立的中繼資料表，您可以從 AWS 受管資料表儲存貯體中刪除中繼資料表。

**重要**  
刪除資料表即永久刪除，無法復原。刪除資料表之前，請確定您已備份所有的重要資料。
您刪除中繼資料表之前，建議先刪除一般用途儲存貯體上的相關聯中繼資料表組態。如需詳細資訊，請參閱[刪除中繼資料表組態](metadata-tables-delete-configuration.md)。

若要刪除受 AWS 管資料表儲存貯體，請參閱《*Amazon S3 API 參考*[https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucket.html)》中的[刪除資料表儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-delete.html)體和 。刪除 AWS 受管資料表儲存貯體之前，建議您先刪除與此儲存貯體相關聯的所有中繼資料資料表組態。您也必須先刪除儲存貯體中的所有中繼資料表。

您可以使用 AWS Command Line Interface (AWS CLI)、 AWS SDKs或 Amazon S3 REST API 來刪除中繼資料表。

## 刪除中繼資料表
<a name="delete-metadata-table-procedure"></a>

### 使用 AWS CLI
<a name="delete-metadata-table-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**

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

1. 使用下列命令從 AWS 受管資料表儲存貯體中刪除中繼資料資料表：

   ```
   aws s3tables delete-table \
   --table-bucket-arn arn:aws:s3tables:us-east-2:111122223333:bucket/aws-s3 \
   --namespace b_general-purpose-bucket-name \
   --name journal \
   --region us-east-2
   ```

1. 若要確認已刪除資料表，請使用下列命令：

   ```
   aws s3tables get-table \
   --table-bucket-arn arn:aws:s3tables:us-east-2:111122223333:bucket/aws-s3 \
   --namespace b_general-purpose-bucket-name \
   --name journal \
   --region us-east-2
   ```

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

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

### 使用 AWS SDKs
<a name="delete-metadata-table-sdk"></a>

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

# 查詢中繼資料表
<a name="metadata-tables-querying"></a>

您的 Amazon S3 中繼資料表存放在 AWS 受管 S3 資料表儲存貯體中，該儲存貯體提供針對表格式資料最佳化的儲存體。若要查詢中繼資料，您可以將資料表儲存貯體與 Amazon SageMaker 資料湖倉整合。此整合使用 AWS Glue Data Catalog 和 AWS Lake Formation，可讓 AWS 分析服務自動探索和存取您的資料表資料。

將資料表儲存貯體與 整合後 AWS Glue Data Catalog，您可以使用 Amazon Athena、Amazon EMR 和 Amazon Redshift 等 AWS 分析服務直接查詢中繼資料表。您也可以使用 Amazon Quick 建立具有查詢資料的互動式儀表板。

如需整合 AWS 受管 S3 資料表儲存貯體與 Amazon SageMaker Lakehouse 的詳細資訊，請參閱 [將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

您也可以使用 Apache Spark、 Apache Trino和任何其他支援 Apache Iceberg 格式的應用程式來查詢中繼資料表，方法是使用 AWS Glue Iceberg REST 端點、Amazon S3 Tables Iceberg REST 端點或Apache Iceberg用戶端目錄的 Amazon S3 Tables Catalog。如需存取中繼資料表的詳細資訊，請參閱 [存取資料表資料](s3-tables-access.md)。

您也可以使用支援 Apache Iceberg 格式的任何查詢引擎來分析您的中繼資料表。例如，您可以查詢中繼資料表來執行下列動作：
+ 探索儲存空間用量模式和趨勢
+ 跨物件的 Audit AWS Key Management Service (AWS KMS) 加密金鑰用量
+ 依使用者定義的中繼資料和物件標籤搜尋物件
+ 了解物件中繼資料隨時間的變化
+ 了解物件何時更新或刪除，包括發出請求的 AWS 帳戶 ID 或 IP 地址

您也可以聯結 S3 受管中繼資料表和自訂中繼資料表，讓您可以跨多個資料集進行查詢。

## 查詢定價考量
<a name="metadata-tables-querying-pricing"></a>

在中繼資料表上執行查詢須額外支付費用。如需詳細資訊，請參閱您正在使用的查詢引擎定價資訊。

如需讓您的查詢更符合成本效益的資訊，請參閱[最佳化中繼資料表查詢效能](metadata-tables-optimizing-query-performance.md)。

**Topics**
+ [

## 查詢定價考量
](#metadata-tables-querying-pricing)
+ [

# 查詢中繼資料表的許可權
](metadata-tables-bucket-query-permissions.md)
+ [

# 使用 AWS 分析服務查詢中繼資料表
](metadata-tables-bucket-integration.md)
+ [

# 使用開放原始碼查詢引擎查詢中繼資料表
](metadata-tables-bucket-integration-open-source.md)
+ [

# 最佳化中繼資料表查詢效能
](metadata-tables-optimizing-query-performance.md)
+ [

# 中繼資料表查詢範例
](metadata-tables-example-queries.md)

# 查詢中繼資料表的許可權
<a name="metadata-tables-bucket-query-permissions"></a>

您必須擁有特定 S3 Tables 許可權，才能查詢 S3 Metadata 日誌和即時庫存資料表。如果您的中繼資料表已使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 並藉由伺服器端加密進行加密，您還必須具有解密資料表資料的 `kms:Decrypt` 許可權。

當建立中繼資料表組態時，您的中繼資料表會儲存在 AWS 受管資料表儲存貯體中。您帳戶和相同區域中的所有中繼資料表組態都會存放在名為 的單一 AWS 受管資料表儲存貯體中`aws-s3`。

若要查詢中繼資料表，您可以使用下列範例政策。若要使用此政策，請以您自己的資訊取代 `user input placeholders`。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"PermissionsToQueryMetadataTables",
         "Effect":"Allow",
         "Action":[
             "s3tables:GetTable",
             "s3tables:GetTableData",
             "s3tables:GetTableMetadataLocation",
             "kms:Decrypt"
         ],
         "Resource":[
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
            "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*",
            "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
         ]
       }
    ]
}
```

# 使用 AWS 分析服務查詢中繼資料表
<a name="metadata-tables-bucket-integration"></a>

您可以使用 Amazon Athena、Amazon Redshift 和 Amazon EMR 等 AWS 分析服務來查詢 S3 受管中繼資料表。

您必須先將 AWS 帳戶 和 區域中的[AWS 受管 S3 資料表儲存貯體與分析服務整合](s3-tables-integrating-aws.md)，才能執行查詢。 AWS 

## 使用 Amazon Athena 查詢中繼資料表
<a name="metadata-tables-bucket-integration-athena"></a>

[將 AWS 受管 S3 資料表儲存貯體與分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)之後，您就可以開始在 Athena 中查詢中繼資料表。 AWS 在查詢中，執行下列操作：
+ 將您的目錄指定為 `s3tablescatalog/aws-s3`，並將資料庫指定為 `b_general_purpose_bucket_name` (這通常是中繼資料表的命名空間)。
+ 請務必以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。

如需詳細資訊，請參閱[使用 Athena 查詢 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-athena.html)。

您也可以從 Amazon S3 主控台，在 Athena 中執行查詢。

### 使用 S3 主控台和 Amazon Athena
<a name="query-metadata-table-console"></a>

下列程序使用 Amazon S3 主控台存取 Athena 查詢編輯器，讓您可以使用 Amazon Athena 查詢資料表。

**查詢中繼資料表**

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

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

1. 在**一般用途儲存貯體**索引標籤上，選擇包含您要查詢之中繼資料表組態的儲存貯體。

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

1. 選擇**使用 Athena 查詢資料表**，然後選擇日誌或庫存資料表的其中一個範例查詢。

1. Amazon Athena 主控台隨即開啟，並顯示 Athena 查詢編輯器，其中提供為您載入的範例查詢。視需要為您的使用案例修改此查詢。

   在查詢編輯器中，**目錄**欄位應填入 **s3tablescatalog/aws-s3**。**資料庫**欄位應填入儲存資料表的命名空間 (例如 **b\$1*general-purpose-bucket-name***)。
**注意**  
如果您在**目錄**和**資料庫**欄位中沒有看到這些值，請確定您已將 AWS 受管資料表儲存貯體與此區域中的 AWS 分析服務整合。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

1. 若要執行查詢，選擇 **Run** (執行)。
**注意**  
如果您嘗試在 Athena 中執行查詢時收到錯誤訊息：「執行查詢的權限不足。主體對指定資源沒有任何權限」，您必須獲得資料表上必要的 Lake Formation 許可權。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。  
此外，請確定您具有適當的 AWS Identity and Access Management (IAM) 許可來查詢中繼資料表。如需詳細資訊，請參閱[查詢中繼資料表的許可權](metadata-tables-bucket-query-permissions.md)。
如果您在嘗試執行查詢時收到錯誤「Iceberg 無法存取請求的資源」，請前往 AWS Lake Formation 主控台，並確定您已授予自己所建立資料表儲存貯體目錄和資料庫 （命名空間） 的許可。授予這些許可權時，請勿指定資料表。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。

## 使用 Amazon Redshift 查詢中繼資料表
<a name="metadata-tables-bucket-integration-redshift"></a>

[將 AWS 受管 S3 資料表儲存貯體與分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)後，請執行下列動作： AWS 
+ [建立資源連結](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html#database-link-tables)至中繼資料表命名空間 (通常是 `b_general_purpose_bucket_name`)。
+ 請務必以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。

完成後，您可以在 Amazon Redshift 主控台開始查詢中繼資料表。如需詳細資訊，請參閱[使用 Amazon Redshift 存取 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html)。

## 使用 Amazon EMR 查詢中繼資料表
<a name="metadata-tables-bucket-integration-emr"></a>

若要使用 Amazon EMR 查詢中繼資料表，您可以建立為 Apache Iceberg 設定的 Amazon EMR 叢集，並使用 Apache Spark 連線到中繼資料表。您可以將 AWS 受管 S3 資料表儲存貯體與 AWS 分析服務整合，或使用適用於Iceberg用戶端目錄的開放原始碼 Amazon S3 資料表目錄來設定此項目。

**注意**  
在 Amazon EMR 或其他第三方引擎上使用 Apache Spark 查詢中繼資料表時，我議您使用 Amazon S3 Tables Iceberg REST 端點。如果您不使用此端點，則可能無法成功執行查詢。如需詳細資訊，請參閱[使用 Amazon S3 Tables Iceberg REST 端點存取資料表](s3-tables-integrating-open-source.md)。

 如需詳細資訊，請參閱[使用 Amazon EMR 存取 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-emr.html)。

# 使用開放原始碼查詢引擎查詢中繼資料表
<a name="metadata-tables-bucket-integration-open-source"></a>

您可以使用開放原始碼查詢引擎 (例如 Apache Spark) 來查詢 S3 受管中繼資料表。在 Amazon EMR 或其他第三方引擎上使用 Apache Spark 查詢中繼資料表時，我議您使用 Amazon S3 Tables Iceberg REST 端點。如果您不使用此端點，則可能無法成功執行查詢。如需詳細資訊，請參閱[使用 Amazon S3 Tables Iceberg REST 端點存取資料表](s3-tables-integrating-open-source.md)。

# 最佳化中繼資料表查詢效能
<a name="metadata-tables-optimizing-query-performance"></a>

由於 S3 Metadata 採用 Apache Iceberg 資料表格式，因此您可以使用特定時間範圍來最佳化日誌資料表查詢的效能和[成本](#metadata-tables-optimizing-query-performance)。

例如，下列 SQL 查詢提供 S3 一般用途儲存貯體中新物件的敏感程度：

```
SELECT key, object_tags['SensitivityLevel'] 
FROM "b_general-purpose-bucket-name"."journal"
WHERE record_type = 'CREATE'
GROUP BY object_tags['SensitivityLevel']
```

此查詢會掃描整個日誌資料表，因此可能需要很長的執行時間。若要提升效能，您可以包含 `record_timestamp` 欄，以專注於特定時間範圍。我們也建議使用完整資料表名稱，此名稱可以在一般用途儲存貯體的**中繼資料**索引標籤的中繼資料組態詳細資訊頁面上的 Amazon S3 主控台找到。以下是上一個查詢的更新版本，旨在查看上個月的新物件：

```
SELECT key, object_tags['SensitivityLevel'] 
FROM b_general-purpose-bucket-name"."aws-s3.b_general-purpose-bucket-name.journal"
WHERE record_type = 'CREATE'
AND record_timestamp > (CURRENT_TIMESTAMP – interval '1' month)
GROUP BY object_tags['SensitivityLevel']
```

若要改善庫存資料表的查詢效能，請務必僅查詢所需的最少資料欄。

# 中繼資料表查詢範例
<a name="metadata-tables-example-queries"></a>

下列範例示範如何使用標準 SQL 查詢，從 S3 Metadata 資料表取得不同類型的資訊。

使用下列範例時，請記住：
+ 這些範例是為了與 Amazon Athena 搭配使用所撰寫。您可能需要修改範例，以搭配不同的查詢引擎使用。
+ 確定您了解如何[最佳化查詢](metadata-tables-optimizing-query-performance.md)。
+ 以您的命名空間名稱取代 `b_general-purpose-bucket-name`。
+ 如需支援欄的完整清單，請參閱 [S3 Metadata 日誌資料表結構描述](metadata-tables-schema.md) 和 [S3 Metadata 即時庫存資料表結構描述](metadata-tables-inventory-schema.md)。

**Contents**
+ [

## 日誌資料表範例查詢
](#metadata-tables-example-queries-journal-tables)
  + [

### 依副檔名尋找物件
](#metadata-tables-example-query-object-pattern)
  + [

### 列出物件刪除
](#metadata-tables-example-query-delete-events)
  + [

### 列出物件使用的 AWS KMS 加密金鑰
](#metadata-tables-example-query-objects-using-kms-key)
  + [

### 列出未使用 KMS 金鑰的物件
](#metadata-tables-example-query-objects-not-using-kms-key)
  + [

### 列出過去 7 天內用於 `PUT` 操作的 AWS KMS 加密金鑰
](#metadata-tables-example-query-objects-using-kms-key-puts)
  + [

### 列出 S3 生命週期在過去 24 小時內刪除的物件
](#metadata-tables-example-query-objects-deleted-lifecycle)
  + [

### 檢視 Amazon Bedrock 提供的中繼資料
](#metadata-tables-example-query-bedrock)
  + [

### 了解物件的目前狀態
](#metadata-tables-example-query-current-state)
+ [

## 庫存資料表範例查詢
](#metadata-tables-example-queries-inventory-tables)
  + [

### 探索使用特定標籤的資料集
](#metadata-tables-example-query-datasets-specific-tags)
  + [

### 列出未使用 SSE-KMS 加密的物件
](#metadata-tables-example-query-objects-not-kms-encrypted)
  + [

### 列出未加密的物件
](#metadata-tables-example-query-objects-not-encrypted)
  + [

### 列出 Amazon Bedrock 產生的物件
](#metadata-tables-example-query-objects-generated-bedrock)
  + [

### 使用日誌資料表與庫存資料表核對
](#metadata-tables-example-query-generate-latest-inventory)
  + [

### 尋找物件的目前版本
](#metadata-tables-example-query-latest-version)
+ [

# 將自訂中繼資料與 S3 中繼資料表聯結
](metadata-tables-join-custom-metadata.md)
+ [

# 使用 Amazon Quick 視覺化中繼資料表資料
](metadata-tables-quicksight-dashboards.md)

## 日誌資料表範例查詢
<a name="metadata-tables-example-queries-journal-tables"></a>

您可以使用下列範例查詢來查詢日誌資料表。

### 依副檔名尋找物件
<a name="metadata-tables-example-query-object-pattern"></a>

下列查詢會傳回具有特定副檔名的物件 (在本例中為 `.jpg`)：

```
SELECT key FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE key LIKE '%.jpg'
AND record_type = 'CREATE'
```

### 列出物件刪除
<a name="metadata-tables-example-query-delete-events"></a>

下列查詢會傳回物件刪除事件，包括發出請求的 AWS 帳戶 ID 或服務 AWS 主體：

```
SELECT DISTINCT bucket, key, sequence_number, record_type, record_timestamp, requester, source_ip_address, version_id
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE record_type = 'DELETE';
```

### 列出物件使用的 AWS KMS 加密金鑰
<a name="metadata-tables-example-query-objects-using-kms-key"></a>

下列查詢會傳回加密物件之 AWS Key Management Service (AWS KMS) 金鑰ARNs：

```
SELECT DISTINCT kms_key_arn
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal";
```

### 列出未使用 KMS 金鑰的物件
<a name="metadata-tables-example-query-objects-not-using-kms-key"></a>

下列查詢會傳回未使用 AWS KMS 金鑰加密的物件：

```
SELECT DISTINCT kms_key_arn
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE encryption_status NOT IN ('SSE-KMS', 'DSSE-KMS')
AND record_type = 'CREATE';
```

### 列出過去 7 天內用於 `PUT` 操作的 AWS KMS 加密金鑰
<a name="metadata-tables-example-query-objects-using-kms-key-puts"></a>

下列查詢會傳回加密物件之 AWS Key Management Service (AWS KMS) 金鑰ARNs：

```
SELECT DISTINCT kms_key_arn 
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE record_timestamp > (current_date - interval '7' day)
AND kms_key_arn is NOT NULL;
```

### 列出 S3 生命週期在過去 24 小時內刪除的物件
<a name="metadata-tables-example-query-objects-deleted-lifecycle"></a>

下列查詢傳回 S3 生命週期在最後一天過期的物件清單：

```
SELECT bucket, key, version_id, last_modified_date, record_timestamp, requester
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE requester = 's3.amazonaws.com'
AND record_type = 'DELETE' 
AND record_timestamp > (current_date - interval '1' day)
```

### 檢視 Amazon Bedrock 提供的中繼資料
<a name="metadata-tables-example-query-bedrock"></a>

有些 AWS 服務 （例如 [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)) 會將物件上傳至 Amazon S3。您可以查詢這些服務提供的物件中繼資料。例如，下列查詢會包含 `user_metadata` 欄，以判斷是否有物件由 Amazon Bedrock 上傳至一般用途儲存貯體：

```
SELECT DISTINCT bucket, key, sequence_number, record_type, record_timestamp, user_metadata
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
WHERE record_type = 'CREATE'
AND user_metadata['content-source'] = 'AmazonBedrock';
```

如果 Amazon Bedrock 已將物件上傳至您的儲存貯體，`user_metadata` 欄會在查詢結果中顯示以下與物件相關聯的中繼資料：

```
user_metadata
{content-additional-params -> requestid="CVK8FWYRW0M9JW65", signedContentSHA384="38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b", content-model-id -> bedrock-model-arn, content-source -> AmazonBedrock}
```

### 了解物件的目前狀態
<a name="metadata-tables-example-query-current-state"></a>

下列查詢可協助您判斷物件的目前狀態。查詢會識別每個物件的最新版本、篩選掉已刪除的物件，並根據序號標記每個物件的最新版本。結果會依 `bucket`、`key` 和 `sequence_number` 欄排序。

```
WITH records_of_interest as (
   -- Start with a query that can narrow down the records of interest.
    SELECT * from "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal"
),

version_stacks as (
   SELECT *,
          -- Introduce a column called 'next_sequence_number', which is the next larger
          -- sequence_number for the same key version_id in sorted order.
          LEAD(sequence_number, 1) over (partition by (bucket, key, coalesce(version_id, '')) order by sequence_number ASC) as next_sequence_number
   from records_of_interest
),

-- Pick the 'tip' of each version stack triple: (bucket, key, version_id).
-- The tip of the version stack is the row of that triple with the largest sequencer.
-- Selecting only the tip filters out any row duplicates.
-- This isn't typical, but some events can be delivered more than once to the table
-- and include rows that might no longer exist in the bucket (since the
-- table contains rows for both extant and extinct objects).
-- In the next subquery, eliminate the rows that contain deleted objects.
current_versions as (
    SELECT * from version_stacks where next_sequence_number is NULL
),

-- Eliminate the rows that are extinct from the bucket by filtering with
-- record_type. An object version has been deleted from the bucket if its tip is
-- record_type==DELETE.
existing_current_versions as (
    SELECT * from current_versions where not (record_type = 'DELETE' and is_delete_marker = FALSE)
),

-- Optionally, to determine which of several object versions is the 'latest',
-- you can compare their sequence numbers. A version_id is the latest if its
-- tip's sequencer is the largest among all other tips in the same key.
with_is_latest as (
    SELECT *,
           -- Determine if the sequence_number of this row is the same as the largest sequencer for the key that still exists.
           sequence_number = (MAX(sequence_number) over (partition by (bucket, key))) as is_latest_version
    FROM existing_current_versions
)

SELECT * from with_is_latest
ORDER BY bucket, key, sequence_number;
```

## 庫存資料表範例查詢
<a name="metadata-tables-example-queries-inventory-tables"></a>

您可以使用下列範例查詢來查詢庫存資料表。

### 探索使用特定標籤的資料集
<a name="metadata-tables-example-query-datasets-specific-tags"></a>

下列查詢會傳回使用指定標籤的資料集：

```
SELECT * 
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."inventory"
WHERE object_tags['key1'] = 'value1'
AND object_tags['key2'] = 'value2';
```

### 列出未使用 SSE-KMS 加密的物件
<a name="metadata-tables-example-query-objects-not-kms-encrypted"></a>

下列查詢會傳回未使用 SSE-KMS 加密的查詢：

```
SELECT key, encryption_status 
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."inventory"
WHERE encryption_status != 'SSE-KMS';
```

### 列出未加密的物件
<a name="metadata-tables-example-query-objects-not-encrypted"></a>

下列查詢會傳回未加密的物件：

```
SELECT bucket, key, version_id  
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."inventory"
WHERE encryption_status IS NULL;
```

### 列出 Amazon Bedrock 產生的物件
<a name="metadata-tables-example-query-objects-generated-bedrock"></a>

下列查詢列出 Amazon Bedrock 產生的物件：

```
SELECT DISTINCT bucket, key, sequence_number, user_metadata
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."inventory"
WHERE user_metadata['content-source'] = 'AmazonBedrock';
```

### 使用日誌資料表與庫存資料表核對
<a name="metadata-tables-example-query-generate-latest-inventory"></a>

下列查詢會產生已更新為目前儲存貯體內容的 inventory-table-like 清單。更精確地說，產生的清單結合了庫存資料表的最新快照，和日誌資料表中的最新事件。

若要讓此查詢產生最準確的結果，日誌和庫存資料表都必須處於作用中狀態。

建議您將此查詢用於包含少於十億 (10^9) 個物件的一般用途儲存貯體。

此範例查詢會將下列簡化項目套用至清單結果 (相較於庫存資料表)：
+ **資料欄遺漏** – 資料欄 `bucket`、`is_multipart`、`encryption_status`、`is_bucket_key_enabled`、`kms_key_arn` 和 `checksum_algorithm` 不屬於最終結果的一部分。將一組選用資料欄保持在最低限度，以提升效能。
+ **包含所有記錄** – 查詢會傳回所有物件金鑰和版本，包括 null 版本 (未進行版本控制或暫停版本控制儲存貯體) 和刪除標記。如需如何篩選結果以僅顯示您感興趣的金鑰範例，請參閱查詢結尾的 `WHERE` 子句。
+ **加速對帳** – 在極少數情況下，查詢可能會暫時呈報已不再位於儲存貯體中的物件。一旦庫存資料表有下一個快照可用，就會消除這些差異。此行為是效能和準確性之間的權衡。

若要在 Amazon Athena 中執行此查詢，請務必為包含日誌和庫存資料表的一般用途儲存貯體中繼資料組態選取 `s3tablescatalog/aws-s3` 目錄和 `b_general-purpose-bucket-name` 資料庫。

```
WITH inventory_time_cte AS (
    SELECT COALESCE(inventory_time_from_property, inventory_time_default) AS inventory_time FROM
    (
      SELECT * FROM
        (VALUES (TIMESTAMP '2024-12-01 00:00')) AS T (inventory_time_default)
      LEFT OUTER JOIN
        (
         SELECT from_unixtime(CAST(value AS BIGINT) / 1000.0) AS inventory_time_from_property FROM "journal$properties"
         WHERE key = 'aws.s3metadata.oldest-uncoalesced-record-timestamp' LIMIT 1
        )
      ON TRUE
    )
),

working_set AS (
    SELECT
        key,
        sequence_number,
        version_id,
        is_delete_marker,
        size,
        COALESCE(last_modified_date, record_timestamp) AS last_modified_date,
        e_tag,
        storage_class,
        object_tags,
        user_metadata,
        (record_type = 'DELETE' AND NOT COALESCE(is_delete_marker, FALSE)) AS _is_perm_delete
    FROM journal j
    CROSS JOIN inventory_time_cte t
    WHERE j.record_timestamp > (t.inventory_time - interval '15' minute)

    UNION ALL

    SELECT
        key,
        sequence_number,
        version_id,
        is_delete_marker,
        size,
        last_modified_date,
        e_tag,
        storage_class,
        object_tags,
        user_metadata,
        FALSE AS _is_perm_delete
    FROM inventory i
),

updated_inventory AS (
    SELECT * FROM (
        SELECT *,
            MAX(sequence_number) OVER (PARTITION BY key, version_id) AS _supremum_sn
        FROM working_set
    )
    WHERE sequence_number = _supremum_sn
)

SELECT
    key,
    sequence_number,
    version_id,
    is_delete_marker,
    size,
    last_modified_date,
    e_tag,
    storage_class,
    object_tags,
    user_metadata
FROM updated_inventory
-- This filter omits only permanent deletes from the results. Delete markers will still be shown.
WHERE NOT _is_perm_delete
-- You can add additional filters here. Examples:
--    AND object_tags['department'] = 'billing'
--    AND starts_with(key, 'reports/')
ORDER BY key ASC, sequence_number DESC;
```

### 尋找物件的目前版本
<a name="metadata-tables-example-query-latest-version"></a>

下列查詢會使用庫存資料表來產生新的輸出資料表，其顯示哪些物件版本為最新版本。輸出資料表刻意相似於 S3 庫存清單報告。輸出資料表包含 `is_latest` 欄位，該欄指出物件是否為目前版本。`is_latest` 欄位等同於 [S3 庫存報告](storage-inventory.md#storage-inventory-contents)中的 **IsLatest** 欄位。

此查詢適用於 [S3 版本控制](Versioning.md)處於已啟用版本控制，或暫停版本控制狀態的一般用途儲存貯體。

**先決條件**  
查詢會將結果輸出到新的 S3 資料表以支援進一步的查詢，並以此獲得比在螢幕上輸出資料列更高的效能。因此，在執行此查詢之前，請確定您符合下列條件。如果您選擇不將結果輸出到新資料表，則可略過這些步驟。
+ 您必須擁有現有的客戶自管資料表儲存貯體，並將現有的命名空間做為輸出新資料表的位置。如需詳細資訊，請參閱[建立資料表儲存貯體](s3-tables-buckets-create.md)及[建立命名空間](s3-tables-namespace-create.md)。
+ 要查詢新的輸出資料表，您必須設定用於查詢的存取方法。如需詳細資訊，請參閱[存取資料表資料](s3-tables-access.md)。如果您想要使用 Amazon Athena 等 AWS 分析服務查詢輸出資料表，您的客戶受管資料表儲存貯體必須與 AWS 分析服務整合。如需詳細資訊，請參閱[Amazon S3 Tables 與 AWS 分析服務整合概觀](s3-tables-integration-overview.md)。

若要使用此查詢，請將 `amzn-s3-demo-table-bucket` 取代為您要建立新輸出資料表所在之現有客戶自管資料表儲存貯體名稱。將 *`existing_namespace`* 取代為您要在資料表儲存貯體中建立輸出資料表的命名空間名稱。將 *`new_table`* 取代為您要用於輸出資料表的名稱。請確定輸出資料表的名稱遵循[資料表命名規則](s3-tables-buckets-naming.md#naming-rules-table)。

若要在 Amazon Athena 中執行此查詢，請務必為包含庫存資料表的一般用途儲存貯體中繼資料組態，選取 `s3tablescatalog/aws-s3` 目錄和 `b_general-purpose-bucket-name` 資料庫。

```
-- If you don't want to output the results to a new table, remove the following two lines 
-- (everything before the WITH clause). 
CREATE TABLE "s3tablescatalog/amzn-s3-demo-table-bucket"."existing_namespace"."new_table" 
as (
WITH 
my_inventory AS (
  SELECT 
        bucket,
        key,
        version_id,
        sequence_number,
        is_delete_marker,
        size,
        last_modified_date,
        storage_class
  FROM inventory
-- For prefix filtering, use a WHERE clause with % at the end.
--     WHERE key LIKE 'prefix%'
  ),
 
inventory_with_is_latest as (
SELECT *,
       ROW_NUMBER() OVER (
         PARTITION BY key 
         ORDER BY sequence_number DESC
       ) = 1 AS is_latest
FROM my_inventory
    )

SELECT
        bucket,
        key,
        version_id,
        sequence_number,
        is_delete_marker,
        size,
        last_modified_date,
        storage_class,
        is_latest

FROM inventory_with_is_latest

-- If you want only the current version of each key, uncomment the following WHERE clause.
-- WHERE is_latest = TRUE
-- If you aren't outputting the results to a new table, remove the next line: 
);
```

# 將自訂中繼資料與 S3 中繼資料表聯結
<a name="metadata-tables-join-custom-metadata"></a>

您可以分析 AWS 受管中繼資料表和客戶 （自我管理） 中繼資料表之間的資料。透過使用標準 SQL `JOIN` 運算子，您可以從上述多個來源查詢資料。

下列範例 SQL 查詢會尋找 AWS 受管日誌資料表 (`"journal"`) 與自我管理中繼資料資料表 () 之間的相符記錄`my_self_managed_metadata_table`。該查詢也會根據 `CREATE` 事件篩選資訊，這些事件表示新物件 (或物件的新版本) 已寫入儲存貯體。(如需詳細資訊，請參閱《[S3 Metadata 日誌資料表結構描述](metadata-tables-schema.md)》。)

```
SELECT *
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."journal" a
JOIN "my_namespace"."my_self_managed_metadata_table" b
ON a.bucket = b.bucket AND a.key = b.key AND a.version_id = b.version_id
WHERE a.record_type = 'CREATE';
```

下列範例 SQL 查詢會尋找 AWS 受管庫存資料表 (`"inventory"`) 與自我管理中繼資料資料表 () 之間的相符記錄`my_self_managed_metadata_table`：

```
SELECT *
FROM "s3tablescatalog/aws-s3"."b_general-purpose-bucket-name"."inventory" a
JOIN "my_namespace"."my_self_managed_metadata_table" b
ON a.bucket = b.bucket AND a.key = b.key AND a.version_id = b.version_id;
```

# 使用 Amazon Quick 視覺化中繼資料表資料
<a name="metadata-tables-quicksight-dashboards"></a>

使用 Amazon Quick，您可以建立互動式儀表板來分析和視覺化有關 S3 受管中繼資料表的 SQL 查詢結果。快速儀表板可協助您監控統計資料、追蹤變更，以及取得中繼資料表的操作洞見。

日誌資料表的儀表板可能會顯示：
+ 相較於刪除，物件上傳的百分比是多少？
+ S3 生命週期在過去 24 小時內刪除了哪些物件？
+ 最近的 `PUT` 請求來自哪些 IP 位址？

庫存資料表的儀表板可能會顯示：
+ 不同儲存類別中有多少物件？
+ 相較於大型物件，儲存資料是小型物件的百分比是多少？
+ 我的儲存貯體中有哪些類型的物件？

[將 S3 資料表儲存貯體與分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)後，您可以從中繼資料資料表建立資料集，並在 Amazon Quick 中使用 SPICE或從您的查詢引擎引導 SQL 查詢。 AWS 快速支援 Amazon Athena 和 Amazon Redshift 作為資料來源。

如需詳細資訊，請參閱[使用 Amazon Quick 視覺化資料表資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-quicksight.html)。

# S3 Metadata 故障診斷
<a name="metadata-tables-troubleshooting"></a>

請使用以下資訊來協助您診斷和修正使用 Amazon S3 Metadata 時可能遇到的常見問題。

## 我無法刪除我的 AWS 受管資料表儲存貯體和中繼資料表
<a name="metadata-tables-troubleshooting-cannot-delete-aws-managed-bucket-or-tables"></a>

您必須先刪除一般用途儲存貯體上的相關聯中繼資料表組態，才能刪除中繼資料表。如需詳細資訊，請參閱[刪除中繼資料表組態](metadata-tables-delete-configuration.md)。

您必須先刪除與此儲存貯體相關聯的所有中繼資料表組態，以及儲存貯體中的所有中繼資料表，才能刪除 AWS 受管資料表儲存貯體。如需詳細資訊，請參閱[刪除中繼資料表組態](metadata-tables-delete-configuration.md)及[刪除中繼資料表](metadata-tables-delete-table.md)。

## 我無法設定或變更 AWS 受管中繼資料表的加密設定
<a name="metadata-tables-troubleshooting-cannot-change-encryption"></a>

建立中繼資料表組態時，您可以選擇使用 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 受管資料表儲存貯體會使用 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)。

## 當我嘗試重新建立中繼資料表組態時，會遇到錯誤
<a name="metadata-tables-troubleshooting-cannot-recreate-configuration"></a>

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

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

若要刪除您的中繼資料表，請參閱 [刪除中繼資料表](metadata-tables-delete-table.md)。

## 我無法在我的組態上啟用庫存資料表
<a name="metadata-tables-troubleshooting-cannot-enable-inventory"></a>

如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，則無法在該組態上啟用庫存資料表。建議您刪除並重新建立組態，以便建立庫存資料表，並使日誌資料表記錄過期。如需詳細資訊，請參閱[在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](metadata-tables-create-configuration.md#metadata-tables-migration)。

## 我無法在我的組態上啟用日誌資料表記錄過期功能
<a name="metadata-tables-troubleshooting-cannot-enable-record-expiration"></a>

如果您在 2025 年 7 月 15 日之前建立 S3 Metadata 組態，則無法在該組態上使日誌資料表記錄過期。建議您刪除並重新建立組態，以便使日誌資料表記錄過期，並建立庫存資料表。如需詳細資訊，請參閱[在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](metadata-tables-create-configuration.md#metadata-tables-migration)。

## 我無法查詢中繼資料表
<a name="metadata-tables-troubleshooting-cannot-query-metadata-tables"></a>

如果您無法查詢中繼資料表，請檢查下列項目：
+ 當您使用 Amazon Athena 或 Amazon Redshift 查詢中繼資料表時，必須以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。
+ 在 Amazon EMR 或其他第三方引擎上使用 Apache Spark 查詢中繼資料表時，我議您使用 Amazon S3 Tables Iceberg REST 端點。如果您不使用此端點，則可能無法成功執行查詢。如需詳細資訊，請參閱[使用 Amazon S3 Tables Iceberg REST 端點存取資料表](s3-tables-integrating-open-source.md)。
+ 請確定您具有適當的 AWS Identity and Access Management (IAM) 許可來查詢中繼資料表。如需詳細資訊，請參閱[查詢中繼資料表的許可權](metadata-tables-bucket-query-permissions.md)。
+ 如果您使用 Amazon Athena，並在嘗試執行查詢時遇到錯誤，請執行下列動作：
  + 如果您嘗試在 Athena 中執行查詢時收到錯誤訊息：「執行查詢的權限不足。主體對指定資源沒有任何權限」，您必須獲得資料表上必要的 Lake Formation 許可權。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。
  + 如果您在嘗試執行查詢時收到錯誤「Iceberg 無法存取請求的資源」，請前往 AWS Lake Formation 主控台，並確定您已授予自己所建立資料表儲存貯體目錄和資料庫 （命名空間） 的許可。授予這些許可權時，請勿指定資料表。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。

## 當我嘗試使用特定 S3 Metadata AWS CLI 命令和 API 操作時，收到 405 個錯誤
<a name="metadata-tables-troubleshooting-405-errors"></a>

針對 V2 中繼資料表組態呼叫 V1 `GetBucketMetadataTableConfiguration` API 操作或使用 `get-bucket-metadata-table-configuration` AWS Command Line Interface (AWS CLI) 命令會導致 HTTP `405 Method Not Allowed`錯誤。 V2 同樣地，呼叫 V1 `DeleteBucketMetadataTableConfiguration` API 操作或使用 `delete-bucket-metadata-table-configuration` AWS CLI 命令也會導致 405 錯誤。

您可以針對 V1 或 V2 中繼資料表組態使用 V2 `GetBucketMetadataConfiguration` API 操作或 `get-bucket-metadata-configuration` AWS CLI 命令。同樣地，您可以針對 V1 或 V2 中繼資料表組態使用 V2 `DeleteBucketMetadataConfiguration` API 操作或 `delete-bucket-metadata-configuration` AWS CLI 命令。

建議您更新您的處理程序，以使用新的 V2 API 操作 (`CreateBucketMetadataConfiguration`、`GetBucketMetadataConfiguraion` 和 `DeleteBucketMetadataConfiguration`)，而非 V1 API 操作。如需有關從 S3 Metadata 的 V1 移轉至 V2 的詳細資訊，請參閱 [在 2025 年 7 月 15 日之前建立的中繼資料組態上啟用庫存資料表](metadata-tables-create-configuration.md#metadata-tables-migration)。

若要確定您的組態是 V1 還是 V2，您可以查看 `GetBucketMetadataConfiguration` API 回應的下列屬性。 AWS 受管儲存貯體類型 (`"aws"`) 表示 V2 組態，而客戶受管儲存貯體類型 (`"customer"`) 表示 V1 組態。

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

如需詳細資訊，請參閱[檢視中繼資料表組態](metadata-tables-view-configuration.md)。