Gültigkeitsdauer (TTL) in Azure Cosmos DB

GILT FÜR: NoSQL

Mit der Gültigkeitsdauer (Time to Live, TTL) löscht Azure Cosmos DB Elemente nach einem bestimmten Zeitraum automatisch aus einem Container. Standardmäßig können Sie die Gültigkeitsdauer auf der Containerebene festlegen und den Wert für einzelne Elemente außer Kraft setzen. Wenn Sie eine Gültigkeitsdauer für einen Container oder ein Element festgelegt haben, werden die betroffenen Elemente nach Ablauf der angegebenen Zeit (seit der letzten Änderung des Elements) automatisch von Azure Cosmos DB gelöscht. Der Wert für die Gültigkeitsdauer wird in Sekunden konfiguriert. Wenn Sie eine Gültigkeitsdauer konfigurieren, löscht das System die abgelaufenen Elemente automatisch auf der Grundlage des entsprechenden Werts, ohne dass ein Löschvorgang explizit von der Clientanwendung initiiert werden muss. Der maximale Wert für TTL ist 2147483647 Sekunden, das ungefähre Äquivalent von 24.855 Tagen bzw. 68 Jahren.

Das Löschen abgelaufener Elemente ist eine Hintergrundaufgabe, die Anforderungseinheiten verbraucht, die nicht von Benutzeranforderungen genutzt wurden. Wenn der Container mit Anforderungen überlastet ist und nicht genügend Anforderungseinheiten (RUs) verfügbar sind, wird die Datenlöschung auch nach Ablauf der Lebensdauer verzögert. Die Daten werden gelöscht, wenn genügend Anforderungseinheiten zum Ausführen des Löschvorgangs verfügbar sind. Obwohl die Datenlöschung verzögert wird, werden die Daten nach Ablauf der Lebensdauer über keine Abfragen (über keine API) zurückgegeben.

Hinweis

Dieser Inhalt bezieht sich auf die Gültigkeitsdauer des Azure Cosmos DB-Transaktionsspeichers. Wenn Sie nach der Gültigkeitsdauer des Analysespeichers suchen, die NoETL-HTAP-Szenarien über Azure Synapse Link ermöglicht, klicken Sie hier.

Gültigkeitsdauer für Container und Elemente

Der Wert für die Gültigkeitsdauer wird in Sekunden festgelegt und als Deltawert relativ zum Zeitpunkt der letzten Änderung des Elements interpretiert. Die Gültigkeitsdauer kann für einen Container oder für ein Element im Container festgelegt werden:

  1. Gültigkeitsdauer für einen Container (festgelegt mithilfe von DefaultTimeToLive):

    • Wenn diese Angabe fehlt (oder auf Null festgelegt ist), läuft die Gültigkeit von Elementen nicht automatisch ab.

    • Ist die Angabe vorhanden und der Wert auf „-1“ (unendlich) festgelegt, läuft die Gültigkeit von Elementen standardmäßig nicht ab.

    • Ist die Angabe vorhanden und der Wert auf eine beliebige Zahl nungleich null festgelegt, läuft die Gültigkeit von Elementen n Sekunden nach dem Zeitpunkt der letzten Änderung ab.

  2. Gültigkeitsdauer für ein Element (festgelegt mithilfe von ttl):

    • Diese Eigenschaft ist nur relevant, wenn DefaultTimeToLive für den übergeordneten Container vorhanden und nicht auf Null festgelegt ist.

    • Ist die Angabe vorhanden, setzt sie den Wert DefaultTimeToLive des übergeordneten Containers außer Kraft.

Konfigurationen für die Gültigkeitsdauer

  • Wenn die Gültigkeitsdauer für einen Container auf n festgelegt ist, läuft die Gültigkeit der Elemente in diesem Container nach n Sekunden ab. Wenn sich in demselben Container Gegenstände befinden, die eine eigene Livezeit haben, setzen Sie den Wert auf -1 (was bedeutet, dass sie nicht ablaufen). Wenn einige Elemente die Zeit für die Liveeinstellung mit einer anderen Zahl außer Kraft setzen, laufen diese Elemente basierend auf ihrem eigenen konfigurierten TTL-Wert ab.

  • Ist für einen Container keine Gültigkeitsdauer festgelegt, wird die für ein Element in diesem Container festgelegte Gültigkeitsdauer ignoriert.

  • Wurde die Gültigkeitsdauer für einen Container auf „-1“ festgelegt, läuft die Gültigkeit eines Elements in diesem Container, dessen Gültigkeitsdauer auf „n“ festgelegt ist, nach n Sekunden ab. Die Gültigkeit der übrigen Elemente läuft dagegen nicht ab.

Beispiele

Dieser Abschnitt zeigt einige Beispiele mit anderen Gültigkeitsdauerwerten, die Containern und Elementen zugewiesen werden:

Hinweis

Das Festlegen von TTL auf null für ein Element wird nicht unterstützt. Der TTL-Wert des Elements muss eine positive ganze Zahl kleiner oder gleich 2147483647 oder -1 sein, ausgenommen null, was bedeutet, dass das Element nie abläuft. Um die Standard-TTL für ein Element zu verwenden, stellen Sie sicher, dass die TTL-Eigenschaft nicht vorhanden ist.

Beispiel 1

Gültigkeitsdauer (TTL) für Container wird auf null festgelegt (DefaultTimeToLive = null)

Gültigkeitsdauer (TTL) für Element Ergebnis
ttl-Eigenschaft fehlt Gültigkeitsdauer (TTL) ist deaktiviert. Das Element läuft nie ab (Standardeinstellung).
ttl = -1 Gültigkeitsdauer (TTL) ist deaktiviert. Das Element läuft nie ab.
ttl = 2000 Gültigkeitsdauer (TTL) ist deaktiviert. Das Element läuft nie ab.

Beispiel 2

Gültigkeitsdauer (TTL) für Container wird auf -1 festgelegt (DefaultTimeToLive = -1)

Gültigkeitsdauer (TTL) für Element Ergebnis
ttl-Eigenschaft fehlt Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nie ab (Standardeinstellung).
ttl = -1 Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nie ab.
ttl = 2000 Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nach 2000 Sekunden ab.

Beispiel 3

Gültigkeitsdauer (TTL) für Container wird auf 1000 festgelegt (DefaultTimeToLive = 1000)

Gültigkeitsdauer (TTL) für Element Ergebnis
ttl-Eigenschaft fehlt Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nach 1000 Sekunden ab (Standardeinstellung).
ttl = -1 Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nie ab.
ttl = 2000 Gültigkeitsdauer (TTL) ist aktiviert. Das Element läuft nach 2000 Sekunden ab.

Nächste Schritte

Der folgende Artikel enthält Informationen zum Konfigurieren der Gültigkeitsdauer: