Durata (TTL) in Azure Cosmos DB

SI APPLICA A: NoSQL

Impostando un valore di durata, o TTL, Azure Cosmos DB consente elimina automaticamente elementi da un contenitore dopo un determinato periodo di tempo. Per impostazione predefinita, è possibile impostare la durata a livello di contenitore ed eseguire l'override del valore per singolo elemento. Dopo aver impostato la durata a livello di contenitore o di elemento, Azure Cosmos DB rimuove automaticamente questi elementi dopo il periodo di tempo specificato, a partire dall'ora dell'ultima modifica. Il valore TTL viene configurato in secondi. Quando si configura il valore della durata (TTL), il sistema elimina automaticamente gli elementi scaduti in base a questo valore, senza necessità che venga eseguita esplicitamente un'operazione di eliminazione da parte dell'applicazione client. Il valore massimo per TTL è 2147483647 secondi, che equivale approssimativamente a 24.855 giorni o 68 anni.

L'eliminazione di elementi scaduti è un'attività in background che sfrutta le unità richiesta non usate che non sono state consumate dalle richieste dell'utente. Anche dopo la scadenza della durata (TTL), se il contenitore è sovraccarico di richieste e se non sono presenti unità richiesta sufficienti, l'eliminazione dei dati viene ritardata. I dati vengono eliminati quando sono presenti unità richiesta sufficienti per eseguire l'operazione di eliminazione. Anche se l'eliminazione dei dati viene ritardata, i dati non vengono restituiti da alcuna query (da alcuna API) dopo la scadenza della durata (TTL).

Nota

Questo contenuto è correlato al TTL dell'archivio transazionale di Azure Cosmos DB. Se si sta cercando la durata (TTL) dell'archivio analitico che abilita gli scenari NoETL HTAP tramite Collegamento ad Azure Synapse, fare clic qui.

Durata (TTL) per contenitori ed elementi

Il valore TTL viene impostato in secondi e interpretato come differenziale dall'ora dell'ultima modifica di un elemento. È possibile impostare la durata per un contenitore o un elemento all'interno del contenitore:

  1. Durata (TTL) per un contenitore (impostata tramite DefaultTimeToLive):

    • Se non è presente o è impostata su Null, gli elementi non scadono automaticamente.

    • Se è presente e il valore è impostato su "-1", è uguale a infinito e gli elementi non scadono per impostazione predefinita.

    • Se è presente e il valore è impostato su un numero "n"diverso da zero, gli elementi scadono "n" secondi dopo l'ultima modifica.

  2. Durata (TTL) per un elemento (impostata tramite ttl):

    • Questa Proprietà è applicabile solo se DefaultTimeToLive è presente e non è impostato su Null per il contenitore padre.

    • Se presente, esegue l'override del valore DefaultTimeToLive del contenitore padre.

Configurazioni della durata (TTL)

  • Se la durata è impostata su "n" per un contenitore, gli elementi all'interno di quel contenitore scadono dopo n secondi. Se sono presenti elementi nello stesso contenitore che hanno la propria durata, impostare il valore su -1 (a indicare che non scadono). Se alcuni elementi sostituiscono l'impostazione di durata con un numero diverso, questi elementi scadono in base al proprio valore TTL configurato.

  • Se la durata (TTL) non è impostata per un contenitore, la durata impostata per un elemento all'interno del contenitore non ha alcun effetto.

  • Se la durata per un contenitore è impostata su -1, un elemento all'interno del contenitore la cui durata è impostata su n scadrà dopo n secondi, mentre gli elementi rimanenti non scadono.

Esempi

In questa sezione sono illustrati alcuni esempi con valori TTL diversi assegnati a contenitori ed elementi:

Nota

Non è supportata l'impostazione di TTL su Null per un elemento. Il valore TTL dell'elemento deve essere un numero intero positivo diverso da zero minore o uguale a 2147483647 oppure -1, il che significa che l'elemento non scadrà mai. Per usare la durata (TTL) predefinita per un elemento, verificare che la proprietà TTL non sia presente.

Esempio 1

La durata TTL nel contenitore è impostata su null (DefaultTimeToLive = null)

TTL nell'elemento Risultato
Proprietà ttl mancante TTL è disabilitato. Per impostazione predefinita, l'elemento non scade mai.
ttl = -1 TTL è disabilitato. L'elemento non scade mai.
ttl = 2000 TTL è disabilitato. L'elemento non scade mai.

Esempio 2

La durata TTL nel contenitore è impostata su -1 (DefaultTimeToLive = -1)

TTL nell'elemento Risultato
Proprietà ttl mancante Viene abilitata la durata (TTL). Per impostazione predefinita, l'elemento non scade mai.
ttl = -1 Viene abilitata la durata (TTL). L'elemento non scade mai.
ttl = 2000 Viene abilitata la durata (TTL). L'elemento scadrà dopo 2000 secondi.

Esempio 3

La durata TTL nel contenitore è impostata su 1000 (DefaultTimeToLive = 1000)

TTL nell'elemento Risultato
Proprietà ttl mancante Viene abilitata la durata (TTL). L'elemento scadrà dopo 1000 secondi (impostazione predefinita).
ttl = -1 Viene abilitata la durata (TTL). L'elemento non scade mai.
ttl = 2000 Viene abilitata la durata (TTL). L'elemento scadrà dopo 2000 secondi.

Passaggi successivi

Informazioni su come configurare la durata (TTL) sono disponibili nell'articolo seguente: