记录的生存时间 (TTL) 持续时间 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

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

重要

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

TtlDuration 必须是包含 UnitValue 的字典,其中 Unit 必须是值为“Seconds”、“Minutes”、“Hours”、“Days”或“Weeks”的字符串,并且 Value 必须是大于或等于 1 的整数。使用 CreateFeatureGroupUpdateFeatureGroupPutRecord API 时可以应用 TtlDuration。请参阅 SDK for Python (Boto3) 文档中 CreateFeatureGroupUpdateFeatureGroupPutRecord API 的请求和响应语法。

  • 在特征组级别应用 TtlDuration(使用 CreateFeatureGroupUpdateFeatureGroup API)时,应用的 TtlDuration 将成为自调用 API 之时起 添加到该特征组的所有记录的默认 TtlDuration。使用 UpdateFeatureGroup API 应用 TtlDuration 时,这不会 成为调用 API 之前 创建的记录的默认 TtlDuration

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

  • 在记录级别应用 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

要查看过期时间 ExpiresAt(采用 UTC 时间 ISO-8601 格式),在使用 GetRecordBatchGetRecord API 时,必须 ExpirationTimeResponse 设置为 ENABLED。请参阅 SDK for Python (Boto3) 文档中 DescribeFeatureGroupGetRecordBatchGetRecord API 的请求和响应语法。