Durée de vie (TTL) pour les enregistrements
Amazon SageMaker Feature Store offre la possibilité de supprimer définitivement les enregistrements du magasin en ligne après un certain temps, avec la durée de vie (TTL) (TtlDuration). L'enregistrement expire une fois que l'instant EventTime de l'enregistrement plus la durée TtlDuration est atteint, ou ExpiresAt = EventTime + TtlDuration. La durée TtlDuration peut être appliquée au niveau d'un groupe de fonctionnalités (tous les enregistrements du groupe de fonctionnalités ont la durée TtlDuration par défaut) ou au niveau d'un enregistrement individuel. Si la durée TtlDuration n'est pas spécifiée, la valeur par défaut est null et l'enregistrement reste dans le magasin en ligne jusqu'à ce qu'il soit remplacé.
Un enregistrement supprimé à l'aide de TtlDuration est définitivement supprimé, ou complètement supprimé du magasin en ligne, et l'enregistrement supprimé est ajouté au magasin hors connexion. Pour plus d’informations sur la suppression définitive et les modes de suppression, consultez DeleteRecord dans la Référence des API Amazon SageMaker. Lorsqu’un enregistrement est supprimé complètement, il devient immédiatement inaccessible à l’aide des API de Feature Store.
Important
TTL supprime généralement les éléments expirés en quelques jours. En fonction de la taille et du niveau d’activité d’une table, l’opération de suppression réelle d’un élément expiré peut varier. Étant donné que TTL est censé être un processus en arrière-plan, la nature de la capacité utilisée pour faire expirer et supprimer des éléments via TTL est variable (mais gratuite). Pour plus d’informations sur la façon dont les éléments sont supprimés d’une table DynamoDB, consultez Fonctionnement : Time-to-live (TTL) dans DynamoDB.
TtlDuration doit être un dictionnaire contenant un élément Unit et un élément Value, où l'élément Unit doit être une chaîne ayant pour valeur « Secondes », « Minutes », « Heures », « Jours » ou « Semaines » et où l'élément Value doit être un entier supérieur ou égal à 1. TtlDuration peut être appliqué lors de l'utilisation des API CreateFeatureGroup, UpdateFeatureGroup et PutRecord. Examinez la syntaxe des demandes et des réponses dans la documentation du kit SDK pour Python (Boto3) pour les API CreateFeatureGroupUpdateFeatureGroupPutRecord
-
Quand
TtlDurationest appliqué au niveau d'un groupe de fonctionnalités (à l'aide des APICreateFeatureGroupouUpdateFeatureGroup), le paramètreTtlDurationappliqué devient le paramètreTtlDurationpar défaut pour tous les enregistrements ajoutés au groupe de fonctionnalités à partir du moment où l'API est appelée. Lorsque vous appliquezTtlDurationavec l’APIUpdateFeatureGroup, cela ne devient pas la valeurTtlDurationpar défaut pour les enregistrements créés avant l’appel de l’API.Pour supprimer l’élément
TtlDurationpar défaut d’un groupe de caractéristiques existant, utilisez l’APIUpdateFeatureGroupet définissez les élémentsTtlDurationUnitetValuesurnull. -
Quand la durée
TtlDurationest appliquée au niveau d’un enregistrement (par exemple, à l’aide de l’APIPutRecord), la duréeTtlDurations’applique à cet enregistrement et est utilisée à la place de la duréeTtlDurationpar défaut au niveau du groupe de caractéristiques. -
Quand la durée
TtlDurationest appliquée au niveau d'un groupe de fonctionnalités, l'entrée en vigueur deTtlDurationpeut prendre quelques minutes. -
Si la durée
TtlDurationest utilisée alors qu'il n'y a pas de magasin en ligne, vous recevez une erreurValidation Exception (400).
L'exemple de code suivant montre comment appliquer TtlDuration lors de la mise à jour d'un groupe de fonctionnalités, de telle sorte que les enregistrements ajoutés au groupe de fonctionnalités après l'exécution de l'API expireront par défaut quatre semaines après leurs heures d'événement.
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 } } )
Vous pouvez utiliser l'API DescribeFeatureGroup pour visualiser la valeur TtlDuration par défaut.
Pour afficher les heures d'expiration, ExpiresAt (au format ISO-8601 à l'heure UTC), lors de l'utilisation des API GetRecord ou BatchGetRecord, vous devez définir ExpirationTimeResponse sur ENABLED. Examinez la syntaxe des demandes et des réponses dans la documentation du kit SDK pour Python (Boto3) pour les API DescribeFeatureGroupGetRecordBatchGetRecord