Doba platnosti v Azure Cosmos DB

Pomocí hodnoty TTL (Time to Live) služba Azure Cosmos DB odstraní položky automaticky z kontejneru po určitém časovém období. Ve výchozím nastavení můžete nastavit dobu života na úrovni kontejneru a přepsat tuto hodnotu podle jednotlivých položek. Jakmile nastavíte hodnotu TTL na úrovni kontejneru nebo položky, Azure Cosmos DB tyto položky automaticky odebere po uplynutí časového období, od doby, kdy byly naposledy změněny. Hodnota TTL se konfiguruje v sekundách. Když nakonfigurujete hodnotu TTL, systém automaticky odstraní položky s vypršenou platností na základě hodnoty TTL, aniž by potřeboval operaci odstranění explicitně vystavenou klientskou aplikací. Maximální hodnota hodnoty TTL je 2 147 483 647 sekund, což je přibližný ekvivalent 24 855 dnů nebo 68 let.

Položky s vypršenou platností se odstraní jako úloha na pozadí. Položka se už nezobrazuje v odpovědích na dotazy hned po vypršení platnosti hodnoty TTL, i když se z kontejneru ještě trvale neodstraní. Pokud kontejner nemá dostatek jednotek žádostí (RU) k provedení odstranění, odstranění dat se zpozdí. Data se odstraní, jakmile budou k dispozici dostatek RU k dokončení odstranění.

U účtů s nastavenou propustností používá mazání položek s vypršenou platností zbylé jednotky RU, které uživatelské požadavky nespotřebovaly.

U bezserverových účtů se odstranění položek s vypršenou platností účtuje v RUs za stejnou sazbu jako operace odstranění položek.

Doba života pro kontejnery a položky

Hodnota time to live je nastavena v sekundách a interpretuje se jako rozdíl od času poslední změny položky. Na kontejneru nebo na položce v rámci kontejneru můžete nastavit dobu platnosti.

  • Nastavte čas, který má být v kontejneru aktivní pomocí DefaultTimeToLive:

    • Pokud chybí (nebo je nastavená hodnota null), nevypršela platnost položek automaticky.

    • Pokud je k dispozici a hodnota je nastavená na "-1," rovná se nekonečnu a položky standardně nevyprší.

    • Je-li přítomna hodnota a je nastavena na nějaké nenulové číslo "n," položky vyprší "n" sekund po čase jejich poslední změny.

  • Nastavte čas života položky pomocí ttl:

    • Tato vlastnost se vztahuje pouze pokud je DefaultTimeToLive k dispozici a není nastavena na null pro nadřazený kontejner.

    • Je-li přítomno, přepisuje hodnotu DefaultTimeToLive nadřazeného kontejneru.

Konfigurace Time to Live

  • Pokud je hodnota TTL v kontejneru nastavená na n , vyprší platnost položek v daném kontejneru po n sekundách. Pokud jsou ve stejném kontejneru položky, které mají svůj vlastní čas naživo, nastavte na hodnotu -1 (což znamená, že nevyprší jejich platnost). Pokud některé položky přepíší nastavení hodnoty TTL jiným číslem, vyprší platnost těchto položek na základě jejich vlastní nakonfigurované hodnoty TTL.

  • Pokud není hodnota TTL nastavena pro kontejner, pak nemá platnost položky v tomto kontejneru žádný účinek.

  • Pokud je hodnota TTL v kontejneru nastavená na hodnotu -1, vyprší po n sekundách položka v tomto kontejneru s časem na hodnotu n a zbývající položky nevyprší.

Examples

Tato část ukazuje některé příklady s různými hodnotami času naživo přiřazené kontejneru a položkám:

Note

Nastavení hodnoty TTL na hodnotu null u položky není podporováno. Hodnota TTL položky musí být nenulové kladné celé číslo menší nebo rovno 2147483647 nebo -1, což znamená, že položka nikdy nevyprší. Pokud chcete pro položku použít výchozí hodnotu TTL, ujistěte se, že vlastnost TTL není k dispozici.

Příklad 1

Hodnota TTL v kontejneru je nastavená na hodnotu null (DefaultTimeToLive = null).

Hodnota TTL u položky Result
Chybějící vlastnost ttl TTL je zakázána. Položka nikdy nevyprší (výchozí).
ttl = -1 TTL je zakázána. Položka nikdy nevyprší.
ttl = 2000 TTL je zakázána. Položka nikdy nevyprší.

Příklad 2

Hodnota TTL v kontejneru je nastavená na -1 (DefaultTimeToLive = -1)

Hodnota TTL u položky Result
Chybějící vlastnost ttl TTL je povoleno. Položka nikdy nevyprší (výchozí).
ttl = -1 TTL je povoleno. Položka nikdy nevyprší.
ttl = 2000 TTL je povoleno. Položka vyprší po 2 000 sekundách.

Příklad 3

Hodnota TTL v kontejneru je nastavená na 1000 (DefaultTimeToLive = 1000)

Hodnota TTL u položky Result
Chybějící vlastnost ttl TTL je povoleno. Položka vyprší po 1 000 sekundách (výchozí).
ttl = -1 TTL je povoleno. Položka nikdy nevyprší.
ttl = 2000 TTL je povoleno. Položka vyprší po 2 000 sekundách.

Další krok