本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
记录的生存时间 (TTL) 持续时间
A SageMaker mazon Feature Store 提供了在达到存活时间 () 持续时间 () 时长 (TTL) 后从在线商店硬删除记录的选项。TtlDuration
该记录将在达到记录的 EventTime
加上 TtlDuration
或者 ExpiresAt
= EventTime
+ TtlDuration
后过期。可以在特征组级别应用 TtlDuration
(此时,特征组中的所有记录默认情况下都将拥有 TtlDuration
),也可以在单个记录级别应用。如果 TtlDuration
未指定,则默认值为 null
,记录将保留在在线存储中,直到被覆盖。
使用 TtlDuration
删除的记录会被硬删除或完全从在线存储中删除,删除的记录将添加到离线存储中。有关硬删除和删除模式的更多信息,请参阅 DeleteRecord
Amazon SageMaker API 参考指南。当某条记录被硬删除时,该记录会立即无法使用功能商店APIs进行访问。
重要
TTL通常会在几天内删除过期的商品。根据表的大小和活动性级别,过期项目的实际删除操作可能会有所不同。由于本应TTL是后台进程,因此用于过期和通过删除项目的容量性质TTL是可变的(但免费)。有关如何从 DynamoDB 表中删除项目的更多信息,请参阅工作原理:DynamoDB 存活时间 ()。TTL
TtlDuration
必须是包含 a Unit
和 a 的字典Value
,其中Unit
必须是值为 “秒”、“分钟”、“小时”、“天” 或 “周” 的字符串,并且Value
必须是大于或等于 1 的整数。 TtlDuration
可以在使用CreateFeatureGroup
UpdateFeatureGroup
、和时应用PutRecord
APIs。有关、和,请参阅 Python (Boto3) 文档中的请求和响应语法。SDK CreateFeatureGroup
UpdateFeatureGroup
PutRecord
-
在要素组级别(使用
CreateFeatureGroup
或UpdateFeatureGroup
APIs)应用时TtlDuration
,应用的将TtlDuration
成为自调TtlDuration
用时间点起添加到要素组的所有记录的API默认值。TtlDuration
使用应用时UpdateFeatureGroup
API,这不会成为调TtlDuration
用之前创建的记录的API默认设置。要
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
或时查看到期UTC时间ExpiresAt
(时间 ISO -8601 格式),必须将BatchGetRecord
APIs设置为。ExpirationTimeResponse
ENABLED
有关、和,请参阅 Python (Boto3) 文档中的请求和响应语法。SDK DescribeFeatureGroup
GetRecord
BatchGetRecord