

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 记录的生存时间 (TTL) 持续时间
<a name="feature-store-time-to-live"></a>

A SageMaker mazon Feature Store 提供了在达到存活时间 (TTL) 时长 () 后从在线商店硬删除记录的选项。`TtlDuration`该记录将在达到记录的 `EventTime` 加上 `TtlDuration` 或者 `ExpiresAt` = `EventTime` \+ `TtlDuration` 后过期。可以在特征组级别应用 `TtlDuration`（此时，特征组中的所有记录默认情况下都将拥有 `TtlDuration`），也可以在单个记录级别应用。如果 `TtlDuration` 未指定，则默认值为 `null`，记录将保留在在线存储中，直到被覆盖。

使用 `TtlDuration` 删除的记录会被硬删除或完全从在线存储中删除，删除的记录将添加到离线存储中。有关硬删除和删除模式的更多信息，请参阅 [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)Amazon SageMaker API 参考指南。当记录被硬删除后，使用特征存放区 API 将立即无法访问。

**重要**  
TTL 通常会在几天内删除过期的项目。根据表的大小和活动性级别，过期项目的实际删除操作可能会有所不同。由于 TTL 注定是一个后台流程，因此，用于通过 TTL 过期和删除项目的容量实质上是可变的（但是免费的）。有关如何从 DynamoDB 表中删除项目的更多信息，请参阅[工作方式：DynamoDB 生存时间 (TTL)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html)。

`TtlDuration` 必须是包含 `Unit` 和 `Value` 的字典，其中 `Unit` 必须是值为“Seconds”、“Minutes”、“Hours”、“Days”或“Weeks”的字符串，并且 `Value` 必须是大于或等于 1 的整数。使用 `CreateFeatureGroup`、`UpdateFeatureGroup` 和 `PutRecord` API 时可以应用 `TtlDuration`。请参阅 SDK for Python (Boto3) 文档中 [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 的请求和响应语法。
+ 在特征组级别应用 `TtlDuration`（使用 `CreateFeatureGroup` 或 `UpdateFeatureGroup` API）时，应用的 `TtlDuration` 将成为*自调用 API 之时起* 添加到该特征组的所有记录的默认 `TtlDuration`。使用 `UpdateFeatureGroup` API 应用 `TtlDuration` 时，这*不会* 成为调用 API *之前* 创建的记录的默认 `TtlDuration`。

  要从现有特征组中移除默认 `TtlDuration`，请使用 `UpdateFeatureGroup` API 并将 `TtlDuration` `Unit` 和 `Value` 设置为 `null`。
+ 在记录级别应用 `TtlDuration`（例如，使用 `PutRecord` API）时，`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`设置为。请参阅 SDK for Python (Boto3) 文档中 [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 的请求和响应语法。