Time to Live (TTL) configureren in Azure Cosmos DB

VAN TOEPASSING OP: NoSQL

Met Time to Live of TTL verwijdert Azure Cosmos DB items automatisch uit een container na een bepaalde periode. Standaard kunt u time to live instellen op containerniveau en de waarde per item overschrijven. Nadat u de TTL hebt ingesteld op een container of op itemniveau, worden deze items automatisch verwijderd na de periode, omdat ze voor het laatst zijn gewijzigd. De time-to-live-waarde wordt in seconden geconfigureerd. Wanneer u TTL configureert, worden de verlopen items automatisch door het systeem verwijderd op basis van de TTL-waarde, zonder dat een verwijderbewerking expliciet is uitgegeven door de clienttoepassing. De maximumwaarde voor TTL is 2147483647 seconden, het geschatte equivalent van 24.855 dagen of 68 jaar.

Het verwijderen van verlopen items is een achtergrondtaak die linkse aanvraageenheden verbruikt die niet zijn gebruikt door gebruikersaanvragen. Zelfs nadat de TTL is verlopen, wordt het verwijderen van gegevens vertraagd als de container overbelast is met aanvragen en als er onvoldoende RU's beschikbaar zijn. Gegevens worden verwijderd zodra er voldoende RU's beschikbaar zijn om de verwijderbewerking uit te voeren. Hoewel het verwijderen van gegevens is vertraagd, worden gegevens niet geretourneerd door query's (door een API) nadat de TTL is verlopen.

Notitie

Deze inhoud is gerelateerd aan TTL voor transactionele opslag van Azure Cosmos DB. Als u op zoek bent naar TTL voor analytische opslag, die NoETL HTAP-scenario's mogelijk maakt via Azure Synapse Link, klikt u hier.

Time to live voor containers en items

De time-to-live-waarde wordt ingesteld in seconden en wordt geïnterpreteerd als een delta vanaf het moment dat een item voor het laatst is gewijzigd. U kunt time to live instellen voor een container of een item in de container:

  1. Time to Live op een container (ingesteld met behulp van DefaultTimeToLive):

    • Als items ontbreken (of zijn ingesteld op null), verlopen items niet automatisch.

    • Als deze aanwezig is en de waarde is ingesteld op '-1', is deze gelijk aan oneindigheid en verlopen items niet standaard.

    • Als deze aanwezig is en de waarde is ingesteld op een niet-nulnummer 'n', verlopen items 'n' seconden na hun laatste wijzigingstijd.

  2. Time to Live op een item (ingesteld met behulp van ttl):

    • Deze eigenschap is alleen van toepassing als DefaultTimeToLive deze aanwezig is en niet is ingesteld op null voor de bovenliggende container.

    • Indien aanwezig, wordt de DefaultTimeToLive-waarde van de bovenliggende container overgenomen.

Time to Live-configuraties

  • Als TTL is ingesteld op 'n' in een container, verlopen de items in die container na n seconden. Als er items in dezelfde container staan die hun eigen time to live hebben, stelt u in op -1 (waarmee wordt aangegeven dat ze niet verlopen). Als sommige items de time to live-instelling met een ander getal overschrijven, verlopen deze items op basis van hun eigen geconfigureerde TTL-waarde.

  • Als TTL niet is ingesteld voor een container, heeft de time to live op een item in deze container geen effect.

  • Als TTL voor een container is ingesteld op -1, verloopt een item in deze container met de time to live ingesteld op n, na n seconden en verlopen de resterende items niet.

Voorbeelden

In deze sectie ziet u enkele voorbeelden met verschillende time to live-waarden die zijn toegewezen aan de container en items:

Notitie

Het instellen van TTL op null voor een item wordt niet ondersteund. De TTL-waarde van het item moet een niet-nul-positief geheel getal zijn dat kleiner is dan of gelijk is aan 2147483647, of -1, wat betekent dat het item nooit verloopt. Als u de standaard-TTL voor een item wilt gebruiken, moet u ervoor zorgen dat de TTL-eigenschap niet aanwezig is.

Voorbeeld 1

TTL op container is ingesteld op null (DefaultTimeToLive = null)

TTL op item Result
ttl-eigenschap ontbreekt TTL is uitgeschakeld. Het item verloopt nooit (standaard).
ttl = -1 TTL is uitgeschakeld. Het item verloopt nooit.
ttl = 2000 TTL is uitgeschakeld. Het item verloopt nooit.

Voorbeeld 2

TTL op container is ingesteld op -1 (DefaultTimeToLive = -1)

TTL op item Result
ttl-eigenschap ontbreekt TTL is ingeschakeld. Het item verloopt nooit (standaard).
ttl = -1 TTL is ingeschakeld. Het item verloopt nooit.
ttl = 2000 TTL is ingeschakeld. Het item verloopt na 2000 seconden.

Voorbeeld 3

TTL op container is ingesteld op 1000 (DefaultTimeToLive = 1000)

TTL op item Result
ttl-eigenschap ontbreekt TTL is ingeschakeld. Het item verloopt na 1000 seconden (standaard).
ttl = -1 TTL is ingeschakeld. Het item verloopt nooit.
ttl = 2000 TTL is ingeschakeld. Het item verloopt na 2000 seconden.

Volgende stappen

Leer hoe u Time to Live configureert in de volgende artikelen: