Durée de vie (TTL) pour les enregistrements - Amazon SageMaker AI

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 CreateFeatureGroup, UpdateFeatureGroup et PutRecord.

  • Quand TtlDuration est appliqué au niveau d'un groupe de fonctionnalités (à l'aide des API CreateFeatureGroup ou UpdateFeatureGroup), le paramètre TtlDuration appliqué devient le paramètre TtlDuration par défaut pour tous les enregistrements ajoutés au groupe de fonctionnalités à partir du moment où l'API est appelée. Lorsque vous appliquez TtlDuration avec l’API UpdateFeatureGroup, cela ne devient pas la valeur TtlDuration par défaut pour les enregistrements créés avant l’appel de l’API.

    Pour supprimer l’élément TtlDuration par défaut d’un groupe de caractéristiques existant, utilisez l’API UpdateFeatureGroup et définissez les éléments TtlDuration Unit et Value sur null.

  • Quand la durée TtlDuration est appliquée au niveau d’un enregistrement (par exemple, à l’aide de l’API PutRecord), la durée TtlDuration s’applique à cet enregistrement et est utilisée à la place de la durée TtlDuration par défaut au niveau du groupe de caractéristiques.

  • Quand la durée TtlDuration est appliquée au niveau d'un groupe de fonctionnalités, l'entrée en vigueur de TtlDuration peut prendre quelques minutes.

  • Si la durée TtlDuration est utilisée alors qu'il n'y a pas de magasin en ligne, vous recevez une erreur Validation 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 DescribeFeatureGroup, GetRecord et BatchGetRecord.