记录的生存时间 (TTL) 持续时间 - Amazon SageMaker

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

记录的生存时间 (TTL) 持续时间

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

使用 TtlDuration 删除的记录会被硬删除或完全从在线存储中删除,删除的记录将添加到离线存储中。有关硬删除和删除模式的更多信息,请参阅 DeleteRecordAmazon SageMaker API 参考指南。当某条记录被硬删除时,该记录会立即无法使用功能商店APIs进行访问。

重要

TTL通常会在几天内删除过期的商品。根据表的大小和活动性级别,过期项目的实际删除操作可能会有所不同。由于本应TTL是后台进程,因此用于过期和通过删除项目的容量性质TTL是可变的(但免费)。有关如何从 DynamoDB 表中删除项目的更多信息,请参阅工作原理:DynamoDB 存活时间 ()。TTL

TtlDuration必须是包含 a Unit 和 a 的字典Value,其中Unit必须是值为 “秒”、“分钟”、“小时”、“天” 或 “周” 的字符串,并且Value必须是大于或等于 1 的整数。 TtlDuration可以在使用CreateFeatureGroupUpdateFeatureGroup、和时应用PutRecordAPIs。有关、和,请参阅 Python (Boto3) 文档中的请求和响应语法。SDK CreateFeatureGroupUpdateFeatureGroupPutRecordAPIs

  • 在要素组级别(使用CreateFeatureGroupUpdateFeatureGroupAPIs)应用时TtlDuration,应用的将TtlDuration成为自TtlDuration用时间点起添加到要素组的所有记录的API默认值。TtlDuration使用应用时 UpdateFeatureGroupAPI,这不会成为调TtlDuration之前创建的记录的API默认设置。

    TtlDuration从现有功能组中移除默认值,请使用UpdateFeatureGroupAPI并将TtlDurationUnit和设置Valuenull

  • 在记录级别(例如,使用 PutRecordAPI)应用时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 } } )

您可以使用DescribeFeatureGroupAPI来查看默认值TtlDuration

要在使用GetRecord或时查看到期UTC时间ExpiresAt(时间 ISO -8601 格式),必须将BatchGetRecordAPIs设置为。ExpirationTimeResponse ENABLED有关、和,请参阅 Python (Boto3) 文档中的请求和响应语法。SDK DescribeFeatureGroupGetRecordBatchGetRecordAPIs