Czas wygaśnięcia (TTL) w usłudze Azure Cosmos DB

DOTYCZY: NoSQL

W przypadku czasu wygaśnięcia lub czasu wygaśnięcia 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. Czas wygaśnięcia jest konfigurowany w sekundach. Podczas konfigurowania czasu wygaśnięcia system automatycznie usuwa wygasłe elementy na podstawie wartości czasu wygaśnięcia bez konieczności jawnego usuwania wydanej przez aplikację kliencką. Maksymalna wartość czasu wygaśnięcia wynosi 2147483647 sekund, czyli przybliżony odpowiednik 24 855 dni lub 68 lat.

Usunięcie wygasłych elementów to zadanie w tle, które korzysta z pozostałych jednostek żądań, które nie zostały zużyte przez żądania użytkowników. Nawet po wygaśnięciu czasu wygaśnięcia, jeśli kontener jest przeciążony żądaniami i jeśli nie ma wystarczającej liczby dostępnych jednostek RU, usunięcie danych jest opóźnione. Dane są usuwane po udostępnieniu wystarczającej liczby jednostek RU do wykonania operacji usuwania. Chociaż usunięcie danych jest opóźnione, dane nie są zwracane przez żadne zapytania (przez żaden interfejs API) po wygaśnięciu czasu wygaśnięcia.

Uwaga

Ta zawartość jest powiązana z czas wygaśnięcia magazynu transakcyjnego usługi Azure Cosmos DB. Jeśli szukasz czasu wygaśnięcia magazynu 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 wygaśnięcia kontenera lub elementu w kontenerze:

  1. Czas wygaśnięcia w kontenerze (ustaw przy użyciu polecenia DefaultTimeToLive):

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

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

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

  2. Czas wygaśnięcia elementu (ustaw przy użyciu polecenia 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 czas wygaśnięcia ma wartość "n" w kontenerze, 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 wygaśnięcia z inną liczbą, te elementy wygasają na podstawie własnej skonfigurowanej wartości czasu wygaśnięcia.

  • Jeśli czas wygaśnięcia nie jest ustawiony w kontenerze, 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ść czasu wygaśnięcia elementu musi być 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 wygaśnięcia elementu, upewnij się, że właściwość TTL nie jest obecna.

Przykład 1

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

Czas wygaśnięcia elementu Wynik
Brak właściwości czasu wygaśnięcia Czas wygaśnięcia jest wyłączony. Element nigdy nie wygaśnie (wartość domyślna).
ttl = -1 Czas wygaśnięcia jest wyłączony. Element nigdy nie wygaśnie.
ttl = 2000 Czas wygaśnięcia jest wyłączony. Element nigdy nie wygaśnie.

Przykład 2

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

Czas wygaśnięcia elementu Wynik
Brak właściwości czasu wygaśnięcia Czas wygaśnięcia jest włączony. Element nigdy nie wygaśnie (wartość domyślna).
ttl = -1 Czas wygaśnięcia jest włączony. Element nigdy nie wygaśnie.
ttl = 2000 Czas wygaśnięcia jest włączony. Element wygaśnie po upływie 2000 sekund.

Przykład 3

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

Czas wygaśnięcia elementu Wynik
Brak właściwości czasu wygaśnięcia Czas wygaśnięcia jest włączony. Element wygaśnie po upływie 1000 sekund (wartość domyślna).
ttl = -1 Czas wygaśnięcia jest włączony. Element nigdy nie wygaśnie.
ttl = 2000 Czas wygaśnięcia jest włączony. Element wygaśnie po upływie 2000 sekund.

Następne kroki

Dowiedz się, jak skonfigurować czas wygaśnięcia w następujących artykułach: