Condividi tramite


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 è 2.147.483.647 secondi, equivalente approssimativo di 24.855 giorni o 68 anni.

Gli elementi scaduti vengono eliminati come attività in background. Un elemento non verrà più visualizzato nelle risposte di query immediatamente dopo la scadenza del TTL, anche se non è ancora stato eliminato definitivamente dal contenitore. Se il contenitore non dispone di unità richiesta sufficienti per eseguire l'eliminazione, l'eliminazione dei dati verrà ritardata. I dati verranno eliminati una volta disponibili ur sufficienti per completare l'eliminazione.

Per gli account di velocità effettiva di cui è stato effettuato il provisioning, l'eliminazione di elementi scaduti usa unità richiesta rimanenti che non sono state utilizzate dalle richieste utente.

Per gli account serverless, l'eliminazione degli elementi scaduti viene addebitata in UR con la stessa frequenza delle operazioni di eliminazione degli elementi.

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 all'infinito e gli elementi non scadono per impostazione predefinita.

    • Se presente e il valore è impostato su un numero diverso da zero "n", gli elementi scadranno "n" secondi dopo l'ora dell'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. L'elemento non scade mai (impostazione predefinita).
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). L'elemento non scade mai (impostazione predefinita).
ttl = -1 Viene abilitata la durata (TTL). L'elemento non scade mai.
ttl = 2000 Viene abilitata la durata (TTL). L'elemento scade dopo 2.000 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 1.000 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 2.000 secondi.

Passaggi successivi

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