Udostępnij za pośrednictwem


Czas życia (TTL) w usłudze Azure Cosmos DB

DOTYCZY: NoSQL

W przypadku Time to Live (TTL) usługa Azure Cosmos DB automatycznie usuwa elementy z kontenera po upływie określonego czasu. Domyślnie można ustawić czas wygaśnięcia na poziomie kontenera i zastąpić wartość dla poszczególnych elementów. Po ustawieniu czasu wygaśnięcia w kontenerze lub na poziomie elementu usługa Azure Cosmos DB automatycznie usunie te elementy po upływie okresu od czasu ostatniej modyfikacji. Wartość czasu życia jest konfigurowana w sekundach. Podczas konfigurowania TTL system automatycznie usuwa wygasłe elementy na podstawie wartości TTL, bez potrzeby jawnego usuwania przez aplikację kliencką. Maksymalna wartość dla TTL wynosi 2 147 483 647 sekund, co odpowiada w przybliżeniu 24 855 dniom lub 68 latom.

Wygasłe elementy są usuwane jako zadanie w tle. Element nie będzie już wyświetlany w odpowiedziach zapytania natychmiast po wygaśnięciu TTL, nawet jeśli nie został jeszcze trwale usunięty z kontenera. Jeśli kontener nie ma wystarczającej liczby jednostek żądania (RU), aby wykonać usunięcie, usunięcie danych zostanie opóźnione. Dane zostaną usunięte, gdy dostępnych będzie wystarczająco dużo RU do ukończenia usuwania.

W przypadku kont z aprowizowaną przepustowością do usunięcia wygasłych elementów wykorzystuje się pozostałe jednostki RU, które nie zostały zużyte przez żądania użytkowników.

W przypadku kont bezserwerowych usunięcie wygasłych elementów jest naliczane w jednostkach RU w tej samej stawce co operacje usuwania elementów.

Uwaga

Ta zawartość jest związana z czasem życia (TTL) przechowywania transakcji w Azure Cosmos DB. Jeśli szukasz TTL sklepu analitycznego, który umożliwia scenariusze NoETL HTAP za pośrednictwem usługi Azure Synapse Link, kliknij tutaj.

Czas wygaśnięcia dla kontenerów i elementów

Czas wygaśnięcia jest ustawiany w sekundach i jest interpretowany jako różnica od czasu ostatniej modyfikacji elementu. Możesz ustawić czas istnienia kontenera lub elementu w kontenerze.

  1. Czas życia kontenera (ustawiony przy użyciu DefaultTimeToLive):

    • Jeśli brakuje (lub ustawiono wartość null), elementy nie wygasły automatycznie.

    • Jeśli wartość jest obecna, a wartość jest ustawiona na "-1" , jest równa nieskończoności, a elementy nie wygasają domyślnie.

    • Jeśli wartość jest obecna i jest ustawiona na pewną liczbę niezerową "n", elementy wygasną "n" sekund po ostatniej modyfikacji czasu.

  2. Czas życia elementu (ustawiany przy użyciu ttl):

    • Ta właściwość ma zastosowanie tylko wtedy, gdy DefaultTimeToLive jest obecna i nie jest ustawiona na wartość null dla kontenera nadrzędnego.

    • Jeśli parametr istnieje, zastępuje wartość DefaultTimeToLive kontenera nadrzędnego.

Czas wygaśnięcia konfiguracji

  • Jeśli parametr TTL jest ustawiony na wartość „n” w kontenerze, to elementy w tym kontenerze wygasną po n sekundach. Jeśli w tym samym kontenerze znajdują się elementy, które mają własny czas wygaśnięcia, ustaw wartość -1 (co oznacza, że nie wygasają). Jeśli niektóre elementy zastępują ustawienie czasu życia inną wartością, te elementy wygasają na podstawie swojej własnej wartości TTL.

  • Jeśli TTL nie jest ustawiony w kontenerze, to czas wygaśnięcia elementu w tym kontenerze nie ma wpływu.

  • Jeśli czas wygaśnięcia w kontenerze ma wartość -1, element w tym kontenerze, który ma czas wygaśnięcia ustawiony na n, wygaśnie po n sekundach i pozostałe elementy nie wygaśnie.

Przykłady

W tej sekcji przedstawiono kilka przykładów z innym czasem wygaśnięcia wartości przypisanych do kontenera i elementów:

Uwaga

Ustawienie wartości TTL na wartość null w elemencie nie jest obsługiwane. Wartość TTL elementu musi być dodatnią niezerową liczbą całkowitą mniejszą lub równą 2147483647 lub -1, co oznacza, że element nigdy nie wygaśnie. Aby użyć domyślnego czasu życia elementu, upewnij się, że właściwość TTL nie jest obecna.

Przykład 1

TTL w kontenerze jest ustawiony na null (DefaultTimeToLive = null)

Czas wygaśnięcia elementu Wynik
Brak atrybutu TTL TTL jest wyłączony. Element nigdy nie wygasa (wartość domyślna).
ttl = -1 TTL jest wyłączony. Element nigdy nie wygasa.
ttl = 2000 TTL jest wyłączony. Element nigdy nie wygasa.

Przykład 2

Czas wygaśnięcia w kontenerze jest ustawiony na -1 (DefaultTimeToLive = -1)

Czas wygaśnięcia elementu Wynik
Brak atrybutu TTL TTL jest włączony. Element nigdy nie wygasa (wartość domyślna).
ttl = -1 TTL jest włączony. Element nigdy nie wygasa.
ttl = 2000 TTL jest włączony. Element wygasa po 2000 sekundach.

Przykład 3

Czas wygaśnięcia w kontenerze ma wartość 1000 (DefaultTimeToLive = 1000)

Czas wygaśnięcia elementu Wynik
Brak atrybutu TTL TTL jest włączony. Element wygaśnie po 1000 sekundach (wartość domyślna).
ttl = -1 TTL jest włączony. Element nigdy nie wygaśnie.
ttl = 2000 TTL jest włączony. Element wygaśnie po 2000 sekundach.

Następne kroki

Dowiedz się, jak skonfigurować czas życia (TTL) w następujących artykułach: