Time to Live i Azure Cosmos DB

GÄLLER FÖR: NoSQL

Med Time to Live eller TTL tar Azure Cosmos DB bort objekt automatiskt från en container efter en viss tidsperiod. Som standard kan du ange tid för att leva på containernivå och åsidosätta värdet per objekt. När du har angett TTL på en container eller på objektnivå tar Azure Cosmos DB automatiskt bort dessa objekt efter tidsperioden, sedan de senast ändrades. Time to live-värdet konfigureras i sekunder. När du konfigurerar TTL tar systemet automatiskt bort de utgångna objekten baserat på TTL-värdet, utan att behöva en borttagningsåtgärd som uttryckligen utfärdats av klientprogrammet. Det maximala värdet för TTL är 2147483647 sekunder, den ungefärliga motsvarigheten till 24 855 dagar eller 68 år.

Borttagning av utgångna objekt är en bakgrundsaktivitet som förbrukar enheter för överblivna begäranden som inte har förbrukats av användarbegäranden. Även när TTL upphör att gälla, om containern är överbelastad med begäranden och om det inte finns tillräckligt med tillgängliga RU:er, fördröjs databorttagningen. Data tas bort när det finns tillräckligt med RU:er tillgängliga för att utföra borttagningsåtgärden. Även om databorttagningen är fördröjd returneras inte data av några frågor (av något API) när TTL upphör att gälla.

Kommentar

Det här innehållet är relaterat till TTL för Azure Cosmos DB-transaktionslager. Om du letar efter TTL för analysarkivet, som aktiverar NoETL HTAP-scenarier via Azure Synapse Link, klickar du här.

Time to live för containrar och objekt

Värdet time to live anges i sekunder och tolkas som ett delta från den tidpunkt då ett objekt senast ändrades. Du kan ange tid för att leva på en container eller ett objekt i containern:

  1. Time to Live på en container (ange med ):DefaultTimeToLive

    • Om det saknas (eller är inställt på null) upphör objekten inte att gälla automatiskt.

    • Om nuet och värdet är inställt på "-1" är det lika med oändligheten och objekten upphör inte att gälla som standard.

    • Om nuet och värdet är inställt på något icke-nollnummer "n" kommer objekten att upphöra att gälla "n" sekunder efter den senaste ändrade tiden.

  2. Time to Live på ett objekt (ange med ):ttl

    • Den här egenskapen gäller endast om DefaultTimeToLive den finns och den inte är inställd på null för den överordnade containern.

    • Om DefaultTimeToLive finns åsidosätts det för den överordnade containern.

Time to Live-konfigurationer

  • Om TTL är inställt på "n" på en container upphör objekten i containern att upphöra att gälla efter n sekunder. Om det finns objekt i samma container som har sin egen tid att leva, anger du till -1 (vilket indikerar att de inte upphör att gälla). Om vissa objekt åsidosätter inställningen time to live med ett annat tal upphör dessa objekt att gälla baserat på deras egna konfigurerade TTL-värde.

  • Om TTL inte har angetts för en container har tiden för att leva på ett objekt i den här containern ingen effekt.

  • Om TTL på en container har angetts till -1 upphör ett objekt i den här containern som har tid att live att vara inställt på n, att upphöra att gälla efter n sekunder och återstående objekt upphör inte att gälla.

Exempel

Det här avsnittet visar några exempel med olika tid till live-värden som tilldelats till container och objekt:

Kommentar

Det går inte att ange TTL till null för ett objekt. Objektets TTL-värde måste vara ett icke-zero-positivt heltal som är mindre än eller lika med 2147483647, eller -1, vilket innebär att objektet aldrig upphör att gälla. Om du vill använda standard-TTL för ett objekt kontrollerar du att TTL-egenskapen inte finns.

Exempel 1

TTL på containern är inställt på null (DefaultTimeToLive = null)

TTL för objekt Result
TTL-egenskapen saknas TTL är inaktiverat. Objektet upphör aldrig att gälla (standard).
ttl = -1 TTL är inaktiverat. Objektet upphör aldrig att gälla.
ttl = 2000 TTL är inaktiverat. Objektet upphör aldrig att gälla.

Exempel 2

TTL på containern är inställt på -1 (DefaultTimeToLive = -1)

TTL för objekt Result
TTL-egenskapen saknas TTL är aktiverat. Objektet upphör aldrig att gälla (standard).
ttl = -1 TTL är aktiverat. Objektet upphör aldrig att gälla.
ttl = 2000 TTL är aktiverat. Objektet upphör att gälla efter 2 000 sekunder.

Exempel 3

TTL på containern är inställt på 1000 (DefaultTimeToLive = 1000)

TTL för objekt Result
TTL-egenskapen saknas TTL är aktiverat. Objektet upphör att gälla efter 1 000 sekunder (standard).
ttl = -1 TTL är aktiverat. Objektet upphör aldrig att gälla.
ttl = 2000 TTL är aktiverat. Objektet upphör att gälla efter 2 000 sekunder.

Nästa steg

Lär dig hur du konfigurerar Time to Live i följande artiklar: