Compartir por


Período de vida (TTL) en Azure Cosmos DB

SE APLICA A: NoSQL

Mediante el Período de vida o TTL, Azure Cosmos DB elimina automáticamente elementos de un contenedor después de un determinado período de tiempo. De forma predeterminada, puede establecer el período de vida en el nivel de contenedor e invalidar el valor en cada elemento. Después de establecer el TTL en el nivel de contenedor o de elemento, Azure Cosmos DB eliminará automáticamente estos elementos cuando haya pasado el período de tiempo seleccionado tras la hora de la última modificación. El valor del período de vida se configura en segundos. Cuando se configura el TTL, el sistema elimina automáticamente los elementos expirados en función del valor de TTL, sin necesidad de una operación de eliminación que se emita explícitamente desde la aplicación cliente. El valor máximo de TTL es de 2.147.483.647 segundos, el equivalente aproximado de 24.855 días o 68 años.

Los elementos expirados se eliminan como una tarea en segundo plano. Un elemento ya no aparecerá en las respuestas de consulta inmediatamente después de que expire el TTL, incluso si aún no se ha eliminado permanentemente del contenedor. Si el contenedor no tiene suficientes unidades de solicitud (RU) para realizar la eliminación, se retrasará la eliminación de datos. Los datos se eliminarán una vez que haya suficientes RU disponibles para completar la eliminación.

En el caso de las cuentas de rendimiento aprovisionadas, la eliminación de elementos expirados usa RU que no han consumido las solicitudes de usuario.

En el caso de las cuentas sin servidor, la eliminación de elementos expirados se cobra en RU a la misma velocidad que las operaciones de eliminación de elementos.

Nota:

Este contenido está relacionado con el TTL del almacén transaccional de Azure Cosmos DB. Si está buscando el TTL del almacén de análisis, que habilita escenarios de NoETL HTAP mediante Azure Synapse Link, haga clic aquí.

Período de vida para contenedores y elementos

El valor de período de vida se establece en segundos, y se interpreta como una delta desde el momento en que se modificó por última vez un elemento. Puede establecer el período de vida en un contenedor o en un elemento dentro del contenedor:

  1. Período de vida en un contenedor (se establece mediante DefaultTimeToLive):

    • Si no existe (o está establecido en NULL), los elementos no expiran automáticamente.

    • Si existe y el valor se ha establecido en "-1", es igual a infinito y los elementos no expiran de manera predeterminada.

    • Si está presente y el valor se establece en algún número distinto de cero "n", los elementos expirarán en "n" segundos después de su última hora de modificación.

  2. Período de vida en un elemento (se establece mediante ttl):

    • Esta propiedad es aplicable solo si está presente el valor DefaultTimeToLive y no está establecido en NULL para el contenedor primario.

    • Si está presente, invalida el valor de DefaultTimeToLive del contenedor primario.

Configuraciones de período de vida

  • Si el TTL se establece en "n" en un contenedor, los elementos de ese contenedor expirarán después de n segundos. Si hay elementos en el mismo contenedor que tienen su propio período de vida, establézcalo en -1 (lo que indica que no expiran). Si algunos elementos invalidan el período de vida con un número diferente, estos elementos expiran en función de su propio valor de TTL configurado.

  • Si no se establece el TTL en un contenedor, el período de vida en un elemento de este contenedor no tiene ningún efecto.

  • Si el TTL en un contenedor se establece en -1, un elemento de este contenedor que tenga el período de vida establecido en n, expirará después de n segundos, y los elementos restantes no expirarán.

Ejemplos

En esta sección se muestra algunos ejemplos con distintos valores de período de vida asignados a los contenedores y los elementos:

Nota:

No se admite establecer TTL en NULL en un elemento. El valor TTL del elemento debe ser un entero distinto de cero positivo menor o igual que 2147483647, o -1, lo que significa que el elemento nunca expirará. Para usar el TTL predeterminado en un elemento, asegúrese de que la propiedad TTL no está presente.

Ejemplo 1

TTL de contenedor se establece en null (DefaultTimeToLive = null)

TTL de elemento Resultado
falta la propiedad ttl TTL se deshabilita. El elemento nunca expira (valor predeterminado).
TTL = -1 TTL se deshabilita. El elemento nunca expira.
TTL = 2000 TTL se deshabilita. El elemento nunca expira.

Ejemplo 2

TTL de contenedor se establece en -1 (DefaultTimeToLive = -1)

TTL de elemento Resultado
falta la propiedad ttl TTL está habilitado. El elemento nunca expira (valor predeterminado).
TTL = -1 TTL está habilitado. El elemento nunca expira.
TTL = 2000 TTL está habilitado. El elemento expira después de 2000 segundos.

Ejemplo 3

TTL de contenedor se establece en -1000 (DefaultTimeToLive = -1000)

TTL de elemento Resultado
falta la propiedad ttl TTL está habilitado. El elemento expirará transcurridos 1000 segundos (valor predeterminado).
TTL = -1 TTL está habilitado. El elemento nunca expirará.
TTL = 2000 TTL está habilitado. El elemento expirará transcurridos 2000 segundos.

Pasos siguientes

Aprenda a configurar el período de vida con los siguientes artículos: