

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

# 存留時間 (TTL) 記錄持續時間
<a name="feature-store-time-to-live"></a>

Amazon SageMaker Feature Store 提供選項，可讓您在達到持續時間，即達到存留時間 (TTL) 持續時間 (`TtlDuration`) 後從線上儲存硬刪除記錄。記錄將在記錄的 `EventTime` 加上 `TtlDuration` (或 `ExpiresAt` = `EventTime` \$1 `TtlDuration`) 達到之後到期。`TtlDuration` 可以套用於特徵群組層級，預設情况下，特徵群組中的所有記錄都將具有 `TtlDuration`，也可以套用於單個記錄層級。如果未指定 `TtlDuration`，則預設值為 `null`，且記錄將保留在線上儲存中，直到覆寫為止。

使用 `TtlDuration` 刪除的記錄會被硬刪除，或從線上儲存完全移除，而刪除的記錄會新增至離線儲存。如需有關硬刪除和刪除模式的更多資訊，請參閱 Amazon SageMaker API 參考指南中的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)。當記錄遭到硬式刪除時，它會立即變成無法使用 Feature Store API 存取。

**重要**  
TTL 通常會在幾天內刪除過期的項目。視資料表的大小和活動層級而定，已過期項目的實際刪除操作可能有所不同。由於 TTL 是要用作為背景處理程序，因此透過 TTL 讓項目過期和刪除項目所用的容量性質不定 (但是免費)。如需有關如何從 DynamoDB 資料表中刪除項目的更多資訊，請參閱[運作方式：DynamoDB 存留時間 (TTL)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html)。

`TtlDuration` 必須是包含 `Unit` 和 `Value` 的字典，其中 `Unit` 必須是值為 “秒”、“分鐘”、“小時”、“天” 或 “週” 的字串，且 `Value` 必須是大於或等於 1 的整數。`TtlDuration` 可以在使用 `CreateFeatureGroup`、`UpdateFeatureGroup` 和 `PutRecord` API 時套用。請參閱 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_feature_group.html#SageMaker.Client.create_feature_group](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_feature_group.html#SageMaker.Client.create_feature_group)、[https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_feature_group.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_feature_group.html) 和 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/put_record.html#](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/put_record.html#) API 的適用於 Python 的 SDK (Boto3) 文件中的請求和回應語法。
+ 在特徵群組層級 (使用 `CreateFeatureGroup` 或 `UpdateFeatureGroup` API) 套用 `TtlDuration` 時，*從調用 API 的時間點起*，套用的 `TtlDuration` 將成為新增至特徵群組的所有記錄的預設 `TtlDuration`。使用 `UpdateFeatureGroup` API 套用 `TtlDuration` 時，這*不*會成為調用 API *之前*建立的記錄的預設值 `TtlDuration`。

  若要從現有特徵群組中移除預設 `TtlDuration`，請使用 `UpdateFeatureGroup` API 並將 `TtlDuration` `Unit` 和 `Value` 設定為 `null`。
+ 當在記錄層級 (例如，使用 `PutRecord` API) 套用 `TtlDuration` 時，`TtlDuration` 持續時間會套用至該記錄，並使用此持續時間來取代特徵群組層級預設值 `TtlDuration`。
+ 在特徵群組層級上套用 `TtlDuration` 時，`TtlDuration` 可能需要幾分鐘才能生效。
+ 如果在沒有線上儲存時使用 `TtlDuration`，您將收到 `Validation Exception (400)` 錯誤。

以下範例程式碼示範如何在更新特徵群組時套用 `TtlDuration`，以便在*執行 API 之後*新增到特徵群組的記錄預設情況下將在其事件時間後四週過期。

```
import boto3

sagemaker_client = boto3.client("sagemaker")
feature_group_name = '<YOUR_FEATURE_GROUP_NAME>'

sagemaker_client.update_feature_group(
    FeatureGroupName=feature_group_name,
    OnlineStoreConfig={
        TtlDuration:{
            Unit: "Weeks",
            Value: 4
        }
    }
)
```

您可以透過 `DescribeFeatureGroup` API 來檢視預設 `TtlDuration`。

要在使用 `GetRecord` 或 `BatchGetRecord` API 時檢視過期時間 `ExpiresAt` (UTC 時間 ISO-8601 格式)，必須將 `ExpirationTimeResponse` 設定為 `ENABLED`。請參閱 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_feature_group.html#describe-feature-group](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_feature_group.html#describe-feature-group)、[https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/get_record.html#get-record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/get_record.html#get-record) 和 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/batch_get_record.html#batch-get-record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/batch_get_record.html#batch-get-record) API 的適用於 Python 的 SDK (Boto3) 文件中的請求和回應語法。