Pourquoi les éléments dont la durée de vie est expirée ne sont-ils pas supprimés de ma table Amazon DynamoDB ?

Lecture de 3 minute(s)
0

Certains éléments dont la durée de vie (TTL) est expirée ne sont pas supprimés de ma table Amazon DynamoDB.

Résolution

La fonctionnalité TTL de DynamoDB vous permet d’associer un horodatage à chaque élément afin de définir sa durée d’utilité. Peu de temps après la date et l'heure spécifiées, DynamoDB supprimera l'élément de votre table. Cette action ne consomme aucun débit d'écriture. La fonctionnalité TTL vous permet de conserver uniquement les éléments pertinents pour votre charge de travail et de réduire ainsi les volumes de données stockées. Elle n'entraîne aucun frais supplémentaire. Lorsque vous activez la fonctionnalité TTL sur une table DynamoDB, vous devez indiquer un nom d'attribut que le service recherchera afin de déterminer si un élément arrive ou non à expiration. Une fois la fonctionnalité TTL activée sur une table, un processus d'analyse en arrière-plan évalue automatiquement et en continu le statut d'expiration des éléments de la table, partition par partition.

Voici quelques raisons courantes pour lesquelles la suppression des éléments expirés peut prendre plus de temps que prévu :

  • La prise d’effet de l'opération de suppression d'un élément expiré varie en fonction de la taille et du niveau d'activité de votre table. La fonctionnalité TTL étant un processus d'arrière-plan, la capacité consacrée à l’expiration et à la suppression des éléments peut varier.
  • La fonctionnalité TTL supprime généralement les éléments expirés en l’espace de quelques jours. En fonction de la taille et du niveau d'activité d'une table, la prise d’effet de l'opération de suppression d'un élément expiré peut varier. La fonctionnalité TTL supprime les éléments dès que possible, mais peut parfois rencontrer des délais. Lorsque des objets sont supprimés, DynamoDB utilise pour ce faire la capacité backend de la table au lieu de la capacité provisionnée. Ce processus peut toutefois prendre plus de temps si les demandes de suppression sont nombreuses et si la capacité du backend est insuffisante pour supprimer ces éléments en continu.

Suivez ces instructions pour vérifier que la fonctionnalité TTL fonctionne correctement :

  • Vérifiez que la fonctionnalité TTL est bien activée sur la table et que les paramètres associés sont corrects :

  • L'élément doit contenir l'attribut que vous avez spécifié lorsque vous avez activé la fonctionnalité TTL sur la table.

  • La valeur de l'attribut TTL doit correspondre au type de données Nombre.

  • La valeur de l'attribut TTL doit correspondre à un horodatage en secondes au format Unix Epoch. Pour en savoir plus, consultez l’article Heure Unix sur Wikipedia.

  • La valeur de l'attribut TTL doit correspondre à un datetimestamp dont l'expiration ne remonte pas à plus de cinq ans.

  • Les processus TTL s'exécutent uniquement sur la table lorsque la capacité disponible est suffisante pour que ces processus n'interfèrent pas avec les opérations de la table. Il est donc possible que les processus TTL ne s’exécutent pas si la table ou les partitions de table utilisent la majorité de la capacité allouée.

Les éléments expirés qui n'ont pas encore été supprimés continueront d’être inclus dans les lectures, les requêtes et les analyses. Si vous ne voulez pas que ces éléments apparaissent dans les résultats, vous devez les filtrer. Pour ce faire, utilisez une expression de filtre qui renvoie uniquement les éléments dont la valeur d'expiration TTL est supérieure à l'heure actuelle au format Epoch. Pour en savoir plus, consultez la section Filtrer les expressions pour l'opération d'analyse.

Informations connexes

Expiration d'éléments à l’aide de la fonctionnalité Time to Live (TTL) dans DynamoDB

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois
Aucun commentaire