

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

# S3 Tables 維護
<a name="s3-tables-maintenance-overview"></a>

Amazon S3 會自動執行維護，以增強 S3 資料表儲存貯體中的資料表的效能。在資料表儲存貯體和個別資料表層級執行維護，並且包含下列項目：

**資料表儲存貯體層級的維護：**  
+ **未參考的檔案移除** – 清除孤立的檔案，以最佳化儲存用量和成本。

**資料表層級維護：**  
+ **檔案壓縮** – 整合小型檔案以改善查詢效能，並降低儲存成本。
+ **快照管理** – 控制資料表版本歷史記錄，並防止中繼資料過度增長。

預設會啟用這些選項。您可以透過維護組態檔案來編輯或停用這些操作。

除了這些選項之外，您也可以啟用和設定資料表的記錄過期設定。使用此選項時，Amazon S3 會在記錄過期時自動從資料表中移除記錄。

**Topics**
+ [S3 Tables 維護任務狀態](s3-tables-maintenance-status.md)
+ [資料表儲存貯體的維護](s3-table-buckets-maintenance.md)
+ [資料表的維護](s3-tables-maintenance.md)
+ [記錄資料表的過期時間](s3-tables-record-expiration.md)
+ [維護任務的考量和限制](s3-tables-considerations.md)

# S3 Tables 維護任務狀態
<a name="s3-tables-maintenance-status"></a>

系統會針對 S3 資料表或資料表儲存貯體定期執行 S3 Tables 維護任務。您可以使用 `GetTableMaintenanceJobStatus` API 查詢這些任務的狀態。

**使用 取得維護任務的狀態 AWS CLI**  
下列範例會使用 `GetTableMaintenanceJobStatus` API 取得維護任務的狀態。  

```
aws s3tables get-table-maintenance-job-status \
   --table-bucket-arn="arn:aws:s3tables:arn:aws::111122223333:bucket/amzn-s3-demo-bucket1" \
   --namespace="mynamespace" \
   --name="testtable"
```
如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/get-table-maintenance-job-status.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/get-table-maintenance-job-status.html)。

S3 Tables 維護任務可轉換為四種可能的狀態：
+ `Successful`
+ `Failed`
+ `Disabled`
+ `Not_Yet_Run`

失敗狀態的任務將包含失敗訊息。下列清單描述可能的失敗訊息。
+ 嘗試讀取資料表時遇到 Iceberg 驗證例外狀況。確保您的資料表可讀取、遵守 Iceberg 規格，並且僅包含以 S3 Table 別名開頭的 S3 路徑。
+ Iceberg 快照管理目前不支援使用者定義的標籤或參考。
+ Iceberg 資料表維護組態與 'history.expire.max-snapshot-age-ms' 和 'history.expire.min-snapshots-to-keep' 資料表屬性不相容。
+ 當 'gc.enabled' 資料表屬性為 false 時，不支援 Iceberg 快照管理和未參考的檔案移除。請確定此屬性未設定，或明確設為 true。
+ 由於中繼資料過期而無法遞交。會在下一個可用的機會重試維護。
+ 存取權限不足，無法執行資料表維護。確定用於加密資料表的金鑰為作用中、存在，並且具有授予 S3 服務主體 `maintenance.s3tables.amazonaws.com` 存取權的資源政策。
**注意**  
 如需 S3 Tables AWS KMS 許可的詳細資訊，請參閱 [S3 Tables SSE-KMS 加密的許可要求](s3-tables-kms-permissions.md)。
+ 內部錯誤

# 資料表儲存貯體的維護
<a name="s3-table-buckets-maintenance"></a>

Amazon S3 可提供維護操作，以增強資料表儲存貯體的管理和效能。所有資料表儲存貯體預設都會啟用下列選項。您可以透過指定資料表儲存貯體的維護組態檔案來編輯或停用此選項。

編輯此組態需要 `s3tables:PutTableBucketMaintenanceConfiguration` 許可。

**Topics**
+ [未參考檔案移除](#s3-table-bucket-maintenance-unreferenced)
+ [考量與限制](#s3-tables-buckets-considerations-see-more)

## 未參考檔案移除
<a name="s3-table-bucket-maintenance-unreferenced"></a>

未參考檔案移除會識別和刪除所有未由任何資料表快照參考的物件。您可以在未參考檔案移除政策中設定兩個屬性：`unreferencedDays` (預設為 3 天) 和 `nonCurrentDays` (預設為 10 天)。

對於未由資料表參考且早於 `unreferencedDays` 屬性的任何物件，S3 會將物件標記為非最新物件。S3 會在 `nonCurrentDays` 屬性指定的天數之後刪除非最新物件。

**注意**  
刪除非最新物件會永久性刪除這些物件，而且無法加以復原。

若要檢視或復原標示為非最新的物件，您必須聯絡 AWS 支援。如需聯絡的相關資訊 AWS 支援，請參閱[聯絡 AWS](https://aws.amazon.com/contact-us/)或[AWS 支援 文件](https://aws.amazon.com/documentation/aws-support/)。

未參考檔案移除會透過僅參考資料表來決定要從該資料表中刪除的物件。對這些物件的任何資料表外部參考，都無法阻止未參考檔案移除功能刪除物件。

如果您停用未參考檔案移除功能，則不會影響任何進行中的任務。新組態將對組態變更後的下一個任務生效。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)中的定價資訊。

您只能在資料表儲存貯體層級設定未參考檔案移除。此組態將套用至儲存貯體中的每個資料表。

**使用 設定未參考的檔案移除 AWS CLI**  
下列範例會使用 `PutTableBucketMaintenanceConfiguration` API 將 `unreferencedDays` 設定為 4 天，並將 `nonCurrentDays` 設定為 10 天。  

```
aws s3tables put-table-bucket-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
   --type icebergUnreferencedFileRemoval \
   --value '{"status":"enabled","settings":{"icebergUnreferencedFileRemoval":{"unreferencedDays":4,"nonCurrentDays":10}}}'
```

如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-bucket-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-bucket-maintenance-configuration.html)。

## 考量與限制
<a name="s3-tables-buckets-considerations-see-more"></a>

若要進一步了解未參考檔案移除的其他考量和限制，請參閱[維護任務的考量和限制](s3-tables-considerations.md)。

# 資料表的維護
<a name="s3-tables-maintenance"></a>

S3 Tables 提供維護操作，以增強個別資料表的管理效率和效能。所有資料表儲存貯體中的資料表預設會啟用下列選項。您可以透過指定 S3 資料表的維護組態檔案來編輯或停用這些檔案。

編輯此組態需要 `s3tables:GetTableMaintenanceConfiguration` 和 `s3tables:PutTableMaintenanceConfiguration` 許可。

**注意**  
您可以透過 CloudTrail 日誌追蹤資料表上的 S3 Tables 自動化維護操作，如需詳細資訊，請參閱 [適用於 S3 Tables 維護的 CloudTrail 管理事件](s3-tables-logging.md#s3-tables-maintenance-events)。

**Topics**
+ [壓縮](#s3-tables-maintenance-compaction)
+ [快照管理](#s3-tables-maintenance-snapshot)
+ [考量與限制](#s3-tables-considerations-see-more)

## 壓縮
<a name="s3-tables-maintenance-compaction"></a>

在資料表層級設定壓縮，並將多個較小的物件合併為較少但較大的物件，以改善 Apache Iceberg 查詢效能。合併物件時，壓縮也會套用資料表中資料列層級刪除的效果。

所有資料表都預設啟用壓縮，且預設目標檔案大小為 512 MB，或者您可以指定介於 64MB 到 512MB 之間的自訂值。系統會將經壓縮的檔案寫入為資料表的最新快照。

**注意**  
壓縮支援 Apache Parquet、Avro 和 ORC 檔案類型。

### 壓縮策略
<a name="s3-tables-maintenance-compaction-strategies"></a>

您可以從多個壓縮策略中選擇，並可根據您的查詢模式和資料表排序順序進一步提高查詢效能。

S3 Tables 支援這些資料表的壓縮策略：
+ **自動 (預設)**
  + Amazon S3 會根據資料表排序順序選取最佳壓縮策略。這是所有資料表的預設壓縮策略。
  + 對於中繼資料中具有已定義排序順序的資料表，`auto` 會自動套用 `sort` 壓縮。
  + 對於沒有排序順序的資料表，`auto` 會預設為使用 `binpack` 壓縮。
+ **Binpack**
  + 將小型檔案合併為較大的檔案，通常以大小超過 100 MB 為目標，同時套用任何待定的刪除。這是未排序資料表的預設壓縮策略。
+ **排序**
  + 根據在壓縮期間自動以階層方式排序的所指定資料欄來組織資料，從而改善篩選操作的查詢效能。在您的查詢經常篩選特定資料欄時，建議使用此策略。當您使用此策略，在資料表屬性中定義 `sort_order` 時，S3 Tables 會自動針對直欄套用階層排序。
+ **Z 順序**
  + 透過將多個屬性混合到可用於排序的單一純量值來最佳化資料組織，從而實現跨多個維度的有效查詢。在您需要同時查詢多個維度的資料時，建議使用此策略。此策略要求您先使用 `sort_order` 資料表屬性在 Iceberg 資料表屬性中定義排序順序。

壓縮會產生額外費用。`z-order` 和 `sort` 壓縮策略的成本可能會高於 `binpack`。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)中的定價資訊。

### 壓縮範例
<a name="tables-compaction-examples"></a>

下列範例示範資料表壓縮的組態。

**使用 設定壓縮目標檔案大小 AWS CLI**  
目標壓縮檔案大小下限為 64MB，上限為 512MB。  
下列範例會使用 `PutTableMaintenanceConfiguration` API，將目標檔案大小變更為 256 MB。  

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \
   --type icebergCompaction \
   --namespace mynamespace \
   --name testtable \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html)。

**使用 設定壓縮策略 AWS CLI**  
下列範例會使用 `PutTableMaintenanceConfiguration` API，將壓縮策略變更為 `sort`。設定壓縮時，您可以從下列壓縮策略中做選擇：`auto`、`binpack`、`sort` 或 `z-order`  
若要將壓縮策略設定為 `sort` 或 `z-order`，您需要下列先決條件：  
+ 在 Iceberg 資料表屬性中定義的排序順序。
+ `s3tables:GetTableData` 許可。

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
   --type icebergCompaction \
   --namespace mynamespace \
   --name testtable \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'
```
如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html)。

**使用 停用壓縮 AWS CLI**  
下列範例將使用 `PutTableMaintenanceConfiguration` API 停用壓縮。  

```
aws s3tables put-table-maintenance-configuration \
   --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
   --type icebergCompaction \
   --namespace mynamespace \
   --name testtable \
   --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html)。

## 快照管理
<a name="s3-tables-maintenance-snapshot"></a>

快照管理會決定資料表的作用中快照數量。這是以 `MinimumSnapshots` (預設為 1) 和 `MaximumSnapshotAge` (預設為 120 小時) 為基礎。快照管理會根據這些組態將資料表快照過期並加以移除。

當快照過期時，Amazon S3 會將僅由該快照參考的任何物件標記為非最新物件。這些非最新物件會在未參考檔案移除政策中 `NoncurrentDays` 屬性指定的天數之後刪除。

**注意**  
刪除非最新物件會永久性刪除這些物件，而且無法加以復原。

若要檢視或復原標示為非最新物件的物件，您必須聯絡 AWS 支援。如需聯絡的相關資訊 AWS 支援，請參閱[聯絡 AWS](https://aws.amazon.com/contact-us/)或 [AWS 支援 文件](https://aws.amazon.com/documentation/aws-support/)。

快照管理會決定要從資料表中刪除的物件，並僅會參考該資料表。從資料表外對這些物件的參考，無法阻止快照管理刪除物件。

**注意**  
快照管理不支援您在 `metadata.json` 檔案中或透過 `ALTER TABLE SET TBLPROPERTIES` SQL 命令設定作為 Iceberg 資料表屬性的保留值，包括分支或標籤型保留。在設定分支或標籤型保留政策時，或在 `metadata.json` 檔案上設定的保留政策比透過 `PutTableMaintenanceConfiguration` API 設定之值還長時，系統會停用快照管理。在這些情況下，S3 不會讓快照過期或加以移除，而且您將需要手動刪除快照，或從您的 Iceberg 資料表移除屬性，以避免產生儲存費用。

您只能在資料表層級設定快照管理。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)中的定價資訊。

### 快照管理範例
<a name="tables-snapshot-examples"></a>

下列範例示範資料表快照管理的組態。

**使用 設定快照管理 AWS CLI**  
下列範例會使用 `PutTableMaintenanceConfiguration` API 將 `MinimumSnapshots` 設定為 10，並將 `MaximumSnapshotAge` 設定為 2500 小時。  

```
aws s3tables put-table-maintenance-configuration \
--table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
--namespace my_namespace \
--name my_table \
--type icebergSnapshotManagement \
--value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
```

**使用 停用快照管理 AWS CLI**  
下列範例會使用 `PutTableMaintenanceConfiguration` API 停用快照管理。  

```
aws s3tables put-table-maintenance-configuration \
--table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \
--namespace my_namespace \
--name my_table \
--type icebergSnapshotManagement \
--value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'
```

如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html)。

## 考量與限制
<a name="s3-tables-considerations-see-more"></a>

若要進一步了解壓縮和快照管理的其他考量和限制，請參閱[維護任務的考量和限制](s3-tables-considerations.md)。

**注意**  
S3 Tables 會套用 128 MB 的 parquets row-group-default 大小。

# 記錄資料表的過期時間
<a name="s3-tables-record-expiration"></a>

根據預設，S3 資料表中的記錄不會過期。為了協助將資料表的儲存成本降至最低，您可以啟用和設定資料表的記錄過期時間。使用此選項時，Amazon S3 會在記錄過期時自動從資料表中移除記錄。

如果您啟用資料表的記錄過期，您可以指定在記錄過期之前保留資料表中記錄的天數。這可以是從 1 天到 2，147，483，647 天的任何天數。例如，若要保留資料表記錄一年，請指定`365`天數。然後，記錄會保留 365 天。365 天後，記錄會過期，Amazon S3 會自動將其移除。

您可以為存放特定 AWS 服務目前 Amazon S3 Storage Lens 和 Amazon SageMaker Catalog 特定資料集的 AWS 受管資料表啟用和設定記錄過期。記錄過期選項目前不適用於其他 AWS 受管資料表。例外是 Amazon S3 中繼資料日誌資料表。日誌資料表使用您在服務層級指定的不同記錄過期設定。如需為此類資料表設定記錄過期的資訊，請參閱 [到期的日誌資料表記錄](metadata-tables-expire-journal-table-records.md)。請注意，記錄過期選項不適用於您建立的 S3 資料表。

啟用資料表的記錄過期後，您可以隨時將其停用。然後，Amazon S3 會停止過期並從資料表中移除記錄。

**Topics**
+ [運作方式](#s3-tables-record-expiration-how-it-works)
+ [設定記錄過期](#s3-tables-record-expiration-configure)
+ [監控記錄過期](#s3-tables-record-expiration-monitor)
+ [考量事項](#s3-tables-expiration-considerations)

## 記錄過期的運作方式
<a name="s3-tables-record-expiration-how-it-works"></a>

當記錄早於您在資料表的記錄過期設定中指定的天數時，記錄過期會自動從 S3 資料表中移除記錄。為了判斷記錄何時過期，Amazon S3 會使用記錄中的特定時間戳記。時間戳記資料欄的選擇直接衍生自資料表的資料表結構描述。您不需要指定要使用的時間戳記欄。資料表由 管理， AWS 而當您啟用資料表的記錄過期時，Amazon S3 會自動選擇要使用的適當資料欄。

您可以為存放特定 Amazon S3 Storage Lens 指標或特定 Amazon SageMaker Catalog 中繼資料的 AWS 受管資料表啟用和設定記錄過期設定。記錄過期選項適用於這些服務的下列 AWS 受管資料表：
+ S3 Storage Lens – `bucket_property_metrics`、`default_activity_metrics`、`expanded_prefixes_activity_metrics`、 `default_storage_metrics`和 `expanded_prefixes_storage_metrics`。為了判斷這些資料表中的記錄何時過期，Amazon S3 會使用記錄中的 `report_time` 欄位。
+ Amazon SageMaker Catalog – `ASSET`。為了判斷此表格中的記錄何時過期，Amazon S3 會使用記錄中的 `snapshot_time` 欄位。

啟用資料表的記錄過期後，Amazon S3 會開始執行記錄過期任務，以對資料表執行下列操作：

1. 識別早於指定過期設定的記錄。

1. 建立新的快照，排除對過期記錄的參考。

移除也基於資料表維護組態設定中的快照過期和未參考的檔案移除設定。若要進一步了解這些設定，請參閱 [資料表的維護](s3-tables-maintenance.md)。

**警告**  
Amazon S3 會在記錄符合過期資格後 24 到 48 小時內過期並移除記錄。資料表記錄會從最新的快照中移除。透過資料表維護操作移除記錄的資料和儲存。資料表記錄過期後就無法復原。

## 設定資料表的記錄過期
<a name="s3-tables-record-expiration-configure"></a>

您可以使用 Amazon S3 主控台、Amazon S3 REST API、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs 來啟用、設定和以其他方式管理 SAmazon S3 資料表的記錄過期設定。 Amazon S3 

在您嘗試對資料表執行這些任務之前，請確定您具有下列 AWS Identity and Access Management (IAM) 許可：
+ `s3tables:GetTableRecordExpirationConfiguration` – 此動作可讓您存取資料表目前的記錄過期設定。
+ `s3tables:PutTableRecordExpirationConfiguration` – 此動作可讓您啟用、設定和停用資料表的記錄過期設定。
+ `s3tables:GetTableRecordExpirationJobStatus` – 此動作可讓您監控資料表的記錄過期操作 （任務） 的狀態，以及操作的存取指標。

下列各節說明如何使用 Amazon S3 主控台和 來啟用、設定和停用資料表的記錄過期設定 AWS CLI。若要使用 Amazon S3 REST API 或 AWS SDK 執行這些任務，請使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableRecordExpirationConfiguration.html)操作。如需詳細資訊，請參閱《[Amazon Simple Storage Service API 參考》中的使用 Amazon S3 進行開發](https://docs.aws.amazon.com/AmazonS3/latest/API/developing-s3.html)。 **

### 使用 S3 主控台
<a name="configure-table-record-expiration-console"></a>

若要使用主控台啟用和設定 S3 資料表的記錄過期設定，請遵循下列步驟。

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

1. 在左側導覽窗格中，選擇**資料表儲存貯體**。

1. 在**資料表儲存貯**體頁面上，選擇存放資料表的儲存貯體。

1. 在**資料表**索引標籤上，選擇資料表。

1. 在**維護**索引標籤的記錄**過期**區段中，選擇**編輯**。

1. 在**記錄過期**下，選擇**啟用**。

1. 對於**記錄過期的天數**，輸入要在資料表中保留記錄的天數。這可以是介於 1 到 2，147，483，647 之間的任何整數。例如，若要保留記錄一年，請輸入 **365**。
**警告**  
當您判斷資料表中記錄的適當保留期間時，請注意，記錄在過期後將無法復原。

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

若要後續變更保留期，請重複上述步驟。

若要隨後停用記錄過期，請重複步驟 1 到 5。然後，針對步驟 6，選擇**停用**。完成後，請選擇**儲存變更**。

### 使用 AWS CLI
<a name="configure-table-record-expiration-CLI"></a>

若要使用 設定和管理 S3 資料表的記錄過期設定 AWS CLI，請執行 [https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/put-table-record-expiration-configuration.html)命令。

您可以先建立 JSON 檔案，其中包含要套用至資料表的記錄過期設定。下列範例顯示 JSON 檔案的內容，可啟用資料表的記錄過期。它也會為資料表中的記錄指定 30 天的保留期。換句話說，它會指定資料表記錄應在 30 天後過期。

```
{
    "status": "enabled",
        "settings": {
            "days": 30
        {
}
```

若要使用上述範例，請將 取代`user input placeholders`為您自己的資訊。

**警告**  
當您判斷資料表中記錄的適當保留期間時，請注意，記錄在過期後將無法復原。

若要停用資料表的記錄過期，請`disabled`為 `status` 欄位指定 ，並從 檔案省略 `settings` 物件。例如：

```
{
    "status": "disabled"
}
```

使用要套用的設定建立 JSON 檔案之後，請執行 `put-table-record-expiration-configuration`命令。針對 `table-arn` 參數，指定資料表的 Amazon Resource Name (ARN)。針對 `value` 參數，指定存放設定的檔案名稱。

例如，下列命令會更新資料表的記錄過期設定。這些設定是在名為 的檔案中指定*`record-expiration-config.json`*。

```
aws s3tables put-table-record-expiration-configuration \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table \
    --value file://./record-expiration-config.json
```

若要使用上述範例，請將 取代`user input placeholders`為您自己的資訊。

## 監控資料表的記錄過期
<a name="s3-tables-record-expiration-monitor"></a>

若要監控 S3 資料表的記錄過期操作的狀態和結果，請使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_GetTableRecordExpirationJobStatus.html)操作，或者，如果您使用的是 AWS CLI，請執行 [https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html](https://docs.aws.amazon.com/cli/latest/reference/s3tables/get-table-record-expiration-job-status.html)命令。在您的請求中，指定資料表的 Amazon Resource Name (ARN)。

例如，下列 AWS CLI 命令會擷取資料表儲存貯體中特定資料表的記錄過期操作狀態。若要使用此範例，請以您自己的資訊取代 `user input placeholders`。

```
aws s3tables get-table-record-expiration-job-status \
    --table-arn arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table
```

如果您的請求成功，您會收到回應，提供詳細資訊，例如 Amazon S3 最近何時執行資料表的記錄過期操作，以及該執行的狀態。如果最近執行成功，回應也包含處理指標，例如，移除的資料檔案和記錄數目，以及移除的資料總大小。如果在最近一次執行期間發生錯誤，回應會包含失敗訊息，說明執行失敗的原因。

## 考量事項
<a name="s3-tables-expiration-considerations"></a>

當您設定和管理 AWS 受管 S3 資料表的記錄過期設定時，請記住下列事項：
+ 記錄過期僅適用於由支援的 Amazon S3 Storage Lens AWS 服務和 Amazon SageMaker Catalog 建立的特定 AWS 受管資料表。此外，記錄過期僅適用於個別資料表，而非整個資料表儲存貯體。
+ 為了判斷記錄何時過期，Amazon S3 會使用資料表中的特定時間戳記。這些時間戳記代表建立資料的時間，而不是 Amazon S3 在資料表中擷取記錄的時間。使用的時間戳記欄取決於發佈資料表的服務：對於 S3 Storage Lens 指標， 欄位`report_time`；對於 Amazon SageMaker Catalog 中繼資料， `snapshot_time` 欄位。您無法指定要使用的欄位，因為資料表是由 管理 AWS。
+ 如果將資料匯出到資料表時發生延遲，則記錄可能比您預期的更快符合過期資格。因此，我們建議您將緩衝新增至資料表過期設定中的保留期間，以考量潛在的擷取延遲。
+ 記錄會過期，並在符合過期資格後的 24 到 48 小時內移除。Amazon S3 不會過期，並在符合過期資格後立即移除記錄。
+ 記錄過期並移除後，就無法復原。

# 維護任務的考量和限制
<a name="s3-tables-considerations"></a>

Amazon S3 可提供維護操作，以增強 S3 資料表或資料表儲存貯體的效能。這些選項包括檔案壓縮、快照管理和未參考檔案移除。下列是這些管理選項的限制和考量。

**Topics**
+ [壓縮的考量事項](#s3-tables-compaction-considerations)
+ [快照管理的考量事項](#s3-tables-snapshot-considerations)
+ [移除未參考檔案的考量事項](#s3-tables-unreferenced-file-removal-considerations)
+ [S3 資料表和資料表儲存貯體維護操作限制和相關的 API](#s3-tables-maintenance-limits)

## 壓縮的考量事項
<a name="s3-tables-compaction-considerations"></a>

您應該為壓縮作業考量下列注意事項。如需壓縮的詳細資訊，請參閱[資料表的維護](s3-tables-maintenance.md)。
+ 壓縮支援 Apache Parquet、Avro 和 ORC 檔案類型。
+ 根據預設，壓縮會以 Apache Parquet 格式寫入新檔案。若要改為將檔案壓縮為 Avro 或 ORC 格式，請將 `write.format.default` 資料表屬性設定為 `avro` 或 `orc`。
+ 壓縮不支援資料類型：`Fixed`。
+ 壓縮不支援壓縮類型：`brotli`、`lz4`。
+ 壓縮會在自動排程時發生。如果您想要避免與壓縮相關聯的費用，您可以使用 [PutTableMaintenanceConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableMaintenanceConfiguration.html) API 操作，針對資料表手動停用壓縮。

**注意**  
Apache Iceberg 使用開放式並行存取模型，搭配衝突偵測來仲裁寫入交易。透過開放式並行存取，使用者和壓縮交易可能會衝突，導致交易失敗。如果發生衝突，壓縮任務會在失敗後重試。建議讓您的管道也使用重試邏輯，以克服因衝突操作而失敗的交易。

## 快照管理的考量事項
<a name="s3-tables-snapshot-considerations"></a>

您應該為快照管理考量下列注意事項。如需快照管理的詳細資訊，請參閱[資料表的維護](s3-tables-maintenance.md)。
+ 只有在滿足兩個條件時，系統才會保留快照：要保留的快照數量下限和指定的保留期間。
+ 快照管理會從 Apache Iceberg 刪除過期的快照中繼資料，以防止進行過期快照的時間歷程查詢，並選擇性地刪除相關聯的資料檔案。
+ 快照管理不支援您在 `metadata.json` 檔案中或透過 `ALTER TABLE SET TBLPROPERTIES` SQL 命令設定作為 Iceberg 資料表屬性的保留值，包括分支或標籤型保留。在設定分支或標籤型保留政策時，或在 `metadata.json` 檔案上設定的保留政策比透過 `PutTableMaintenanceConfiguration` API 設定之值還長時，系統會停用快照管理。在這些情況下，S3 不會讓快照過期或加以移除，而且您將需要手動刪除快照，或從您的 Iceberg 資料表移除屬性，以避免產生儲存費用。

## 移除未參考檔案的考量事項
<a name="s3-tables-unreferenced-file-removal-considerations"></a>

您應該為移除未參考檔案考量下列注意事項。如需移除未參考檔案的詳細資訊，請參閱[資料表儲存貯體的維護](s3-table-buckets-maintenance.md)。
+ 如果不再由 Iceberg 中繼資料參考之資料和中繼資料檔案的建立時間早於保留期間，則未參考檔案移除會將其刪除。

## S3 資料表和資料表儲存貯體維護操作限制和相關的 API
<a name="s3-tables-maintenance-limits"></a>




| 維護操作 | 屬性 | 是否可在資料表儲存貯體層級進行設定？ | 是否可在資料表層級進行設定？ | 預設值 | 最小值 | 相關的 Iceberg 維護常式 | 控制 S3 Tables API | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| 壓縮 | targetFileSizeMB | 否 | 是 | 512 MB | 64 MB | [https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files](https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 快照管理 | minimumSnapshots | 否 | 是 | 1 | 1 | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) retainLast | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 快照管理 | maximumSnapshotAge | 否 | 是 | 120 小時 | 1 小時 | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) expireOlderThan | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 未參考檔案移除 | unreferencedDays | 是 | 否 | 3 天 | 1 天 | [https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files](https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 
| 未參考檔案移除 | nonCurrentDays | 是 | 否 | 10 天 | 1 天 | N/A | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 

**注意**  
S3 Tables 會套用 128 MB 的 parquets row-group-default 大小。