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 de la durée de vie (TTL) est de 2 147 483 647 secondes, soit environ 24 855 jours ou 68 ans.
Les éléments arrivés à expiration sont supprimés en tant que tâche en arrière-plan. Un élément n’apparaît plus dans les réponses aux requêtes immédiatement après l’expiration de la durée de vie, même s’il n’a pas encore été supprimé définitivement du conteneur. Si le conteneur n’a pas suffisamment d’unités de requête (RU) pour effectuer la suppression, la suppression des données sera retardée. Les données seront supprimées une fois que les unités de requête suffisantes seront disponibles pour terminer la suppression.
Pour les comptes de débit approvisionnés, la suppression d’éléments arrivés à expiration utilise des unités de requête restantes qui n’ont pas été consommées par les demandes d’utilisateurs.
Pour les comptes serverless, la suppression d’éléments arrivés à expiration est facturée dans les unités de requête au même taux que les opérations de suppression d’éléments.
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 :
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.
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 expirera après 1 000 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 expirera après 2 000 secondes. |
Étapes suivantes
Apprenez à configurer la durée de vie dans les articles suivants :