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

Dernière mise à jour : 26/08/2022

Certains éléments dont la durée de vie a expiré ne sont pas encore supprimés de ma table Amazon DynamoDB.

Solution

La fonction de durée de vie d'Amazon DynamoDB vous permet de définir un horodatage par élément pour déterminer quand un élément n'est plus nécessaire. Peu de temps après la date et l'heure de l'horodatage spécifié, DynamoDB supprime l'élément de votre table sans consommer de débit d'écriture. La durée de vie est fournie sans frais supplémentaires afin de réduire les volumes de données stockées en ne conservant que les éléments qui restent actuels pour les besoins de votre charge de travail. Lorsque vous activez la durée de vie sur une table DynamoDB, vous devez identifier un nom d'attribut spécifique que le service recherchera pour déterminer si un élément est éligible à l'expiration. Une fois que vous avez activé la durée de vie sur une table, un processus d'arrière-plan d'analyse par partition évalue automatiquement et en continu l'état d'expiration des éléments de la table.

Voici quelques-unes des causes les plus fréquentes pour lesquelles la suppression des éléments expirés prend plus de temps :

  • L'opération de suppression d'un élément expiré peut varier en fonction de la taille et du niveau d'activité de votre table. La durée de vie étant un processus d'arrière-plan, la nature de la capacité utilisée pour expirer et supprimer des éléments à l'aide de la durée de vie est variable.
  • Le processus de durée de vie supprime généralement les articles expirés dans les 48 heures suivant leur expiration. Cependant, ce délai n'est pas un contrat de niveau de service (SLA). Les suppressions des durées de vie sont effectuées dans la mesure du possible et la suppression peut prendre plus de temps dans certains cas. Lors de la suppression d'objets en utilisant la durée de vie, DynamoDB utilise la capacité backend de la table pour supprimer les objets au lieu d'utiliser la capacité provisionnée. Le processus de suppression peut prendre plus de temps s'il y a un grand nombre de demandes de suppression et si la capacité du backend n'est pas suffisante pour supprimer continuellement ces éléments.

Pour vérifier si la durée de vie fonctionne correctement, procédez comme suit :

  • Assurez-vous que vous avez activé la durée de vie 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 durée de vie sur la table.
    • La valeur de l'attribut de la durée de vie doit avoir le type de données Nombre.
    • La valeur de l'attribut de la durée de vie doit être un horodatage au format d'heure Unix epoch en secondes.
    • La valeur de l'attribut de la durée de vie doit être horodatage dont l'expiration ne dépasse pas cinq ans.
  • Les processus de durée de vie s'exécutent sur la table uniquement lorsque la capacité de réserve est suffisante pour que ces processus n'interfèrent pas avec les opérations de la table. Si la table ou les partitions de table utilisent la majeure partie de la capacité provisionnée, les processus de durée de vie peuvent ne pas s'exécuter en raison d'une capacité de réserve insuffisante.

Les éléments qui ont expiré, mais qui n'ont pas encore été supprimés par la durée de vie, apparaissent toujours dans les lectures, les requêtes et les analyses. Si vous ne souhaitez pas que les éléments expirés figurent dans le jeu de 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 de la durée de vie est supérieure à l'heure actuelle au format epoch. Pour plus d'informations, consultez Expressions de filtre pour l'analyse.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?