Durée de vie (TTL) dans Azure Cosmos DB

S’APPLIQUE À : NoSQL

Avec la durée de vie (TTL, Time to Live), Azure Cosmos DB supprime automatiquement des éléments d’un conteneur après une période déterminée. La durée de vie par défaut peut être définie au niveau du conteneur et être substituée par élément. Une fois la durée de vie définie au niveau d'un conteneur ou d'un élément, Azure Cosmos DB supprime automatiquement les éléments correspondants au terme de la période écoulée depuis la dernière modification. La valeur de durée de vie est définie en secondes. Lorsque vous définissez la durée de vie (TTL), le système supprime automatiquement les éléments arrivés à expiration en fonction de la valeur TTL, sans avoir besoin d’une opération de suppression explicitement émise par l’application cliente. La valeur maximale pour TTL est 2 147 483 647 secondes, soit environ 24 855 jours ou 68 ans.

La suppression des éléments expirés est une tâche en arrière-plan qui utilise des unités de requête restantes qui n’ont pas été utilisées par les requêtes de l’utilisateur. Même après l’expiration de la durée de vie (TTL), si le conteneur est surchargé de requêtes et si le nombre d’unités de requête est insuffisant, la suppression des données est retardée. Les données sont supprimées une fois que le nombre d’unités de requête disponibles est suffisant pour effectuer l’opération de suppression. Bien que la suppression des données soit différée, les données ne sont renvoyées par aucune requête (par aucune API) après l’expiration de la durée de vie (TTL).

Remarque

Ce contenu concerne la TTL des magasins transactionnels d’Azure Cosmos DB. Si vous recherchez la TTL des magasins analytiques, qui permet des scénarios de HTAP NoETL via Azure Synapse Link, cliquez ici.

Durée de vie pour les conteneurs et éléments

La valeur de durée de vie est définie en secondes et interprétée en tant qu’écart par rapport à la dernière modification de l’élément. Vous pouvez définir la durée de vie sur un conteneur ou sur un élément présent dans le conteneur :

  1. Durée de vie sur un conteneur (définie via DefaultTimeToLive) :

    • Si ce paramètre est manquant (ou s'il est défini sur nul), les éléments n'expirent pas automatiquement.

    • Si ce paramètre est présent et que sa valeur est définie sur « -1 », il est égal à l’infini et, par défaut, les éléments n’expirent pas.

    • Si ce paramètre est présent et que sa valeur est définie sur un nombre différent de zéro« n », les éléments expirent « n » secondes après leur dernière heure de modification.

  2. Durée de vie sur un élément (définie via ttl) :

    • Cette propriété s'applique uniquement si la propriété DefaultTimeToLive est présente et qu'elle n'est pas définie sur nul pour le conteneur parent.

    • Si elle est présente, elle remplace la valeur DefaultTimeToLive du conteneur parent.

Configurations de durée de vie

  • Si une durée de vie de « n » est définie sur un conteneur, les éléments présents dans ce conteneur expireront après n secondes. Si des éléments dans le même conteneur ont leur propre durée de vie définie sur -1 (indiquant qu’ils n’expirent pas). Si certains éléments remplacent le paramètre de durée de vie avec un nombre différent, ces éléments expirent en fonction de leur propre valeur de durée de vie (TTL) configurée.

  • Si aucune durée de vie (TTL) n'est définie sur un conteneur, la durée de vie définie sur un élément présent dans ce conteneur n'a aucun effet.

  • Si une durée de vie (TTL) de -1 est définie sur un conteneur, un élément présent dans ce conteneur et dont la durée de vie est définie sur n expirera après n secondes, et les autres éléments n'expireront pas.

Exemples

Cette section présente quelques exemples avec différentes valeurs de durée de vie affectées aux conteneurs et aux éléments :

Remarque

La définition de la durée de vie (TTL) sur nul sur un élément n’est pas prise en charge. La valeur de durée de vie (TTL) de l’élément doit être un entier positif différent de zéro inférieur ou égal à 2147483647, ou -1, ce qui signifie que l’élément n’expirera jamais. Pour utiliser la durée de vie (TTL) par défaut sur un élément, vérifiez que la propriété TTL n’est pas présente.

Exemple 1

La durée de vie sur le conteneur est définie par null (DefaultTimeToLive = null)

Durée de vie sur un élément Résultat
propriété TTL manquante La durée de vie est désactivée. L’élément n’expire jamais (par défaut).
ttl = -1 La durée de vie est désactivée. L’élément n’expire jamais.
ttl = 2000 La durée de vie est désactivée. L’élément n’expire jamais.

Exemple 2

La durée de vie sur le conteneur est définie par -1 (DefaultTimeToLive = -1)

Durée de vie sur un élément Résultat
propriété TTL manquante La durée de vie est activée. L’élément n’expire jamais (par défaut).
ttl = -1 La durée de vie est activée. L’élément n’expire jamais.
ttl = 2000 La durée de vie est activée. L’élément expire après 2 000 secondes.

Exemple 3

La durée de vie sur le conteneur est définie par 1000 (DefaultTimeToLive = 1000)

Durée de vie sur un élément Résultat
propriété TTL manquante La durée de vie est activée. L’élément expire après 1000 secondes (par défaut).
ttl = -1 La durée de vie est activée. L’élément n’expire jamais.
ttl = 2000 La durée de vie est activée. L’élément expire après 2 000 secondes.

Étapes suivantes

Apprenez à configurer la durée de vie dans les articles suivants :