Compartir a través de


Período de vida (TTL) en Cosmos DB en Microsoft Fabric

La característica de período de vida (TTL) de Cosmos DB le ayuda a administrar el ciclo de vida de los datos mediante la eliminación automática de elementos después de un período especificado , en segundos. TTL es especialmente útil para escenarios en los que los datos solo son relevantes durante un tiempo limitado, como los datos de sesión, las métricas o los registros. Al habilitar TTL, puede mantener la base de datos magra, reducir los costos de almacenamiento y asegurarse de que solo se conservan los datos pertinentes actuales.

Nota:

Al aplicar una política de TTL a un contenedor. Los elementos expirados a través de TTL se reflejan en los datos reflejados en OneLake.

Funcionamiento de TTL

Cuando TTL está habilitado en un contenedor o en un elemento individual, Cosmos DB realiza un seguimiento de la antigüedad de cada elemento. Una vez que la antigüedad de un elemento supera su valor TTL, el sistema lo marca automáticamente para su eliminación y lo purga. TTL se puede establecer en el nivel de contenedor (se aplica a todos los elementos) o invalidarse en el nivel de elemento para un control más granular.

  • TTL de nivel de contenedor: Todos los elementos del contenedor heredan el TTL predeterminado a menos que se especifique un TTL a nivel de elemento.

  • TTL de nivel de elemento: puede establecer un TTL específico para elementos individuales, reemplazando el valor predeterminado del contenedor.

  • Deshabilitar TTL: al establecer TTL en -1 se deshabilita la eliminación automática del contenedor o elemento.

Los valores de TTL se especifican en segundos. La cuenta atrás comienza desde la hora de última modificación del elemento (o la hora de creación si no se actualiza). Cuando expira el TTL, el elemento es apto para la eliminación automática durante el siguiente ciclo de purga en segundo plano.

Ventajas de usar TTL

  • Limpieza automatizada de datos: no es necesario scripts de eliminación manual ni trabajos programados.

  • Ahorro de costos: reduzca los costos de almacenamiento mediante la eliminación de datos obsoletos o irrelevantes.

  • Rendimiento mejorado: mantenga eficaz la base de datos conservando solo los datos activos.

Configuración de TTL

El valor de TTL se interpreta como un delta, en segundos, desde el momento en que se modificó por última vez un elemento. Las reglas siguientes se aplican al establecer un valor TTL.

El período de vida (TTL) se puede establecer en el nivel de contenedor y elemento, lo que proporciona flexibilidad para administrar la expiración de los datos de la manera deseada.

Esta configuración le permite combinar y ajustar las políticas de expiración para satisfacer sus necesidades de retención de datos, ya sea si desea que todo expire, nada expire o una combinación de ambas opciones.

Aquí se muestra cómo funciona la configuración del TTL en los niveles de contenedor y elemento:

  • TTL a nivel de contenedor

    • Si no establece un TTL (o lo establece en null0), los elementos del contenedor no expiran automáticamente.

    • Si establece el TTL del contenedor en -1, es como decir "mantén todo para siempre". Los elementos no expiran de forma predeterminada. Matemáticamente, este valor es equivalente a establecer la expiración en infinito.

    • Si establece el TTL del contenedor en un número positivo distinto de cero, cada elemento del contenedor expirará segundos después de su última modificación o actualización. Si el elemento nunca se modificó, la expiración se basa en la hora de creación.

  • TTL de nivel de elemento

    • TTL a nivel de elemento solo entra en vigor si la propiedad TTL se establece a nivel de contenedor y NO está establecida con un valor de null.

    • Si establece un TTL en un elemento, invalida el valor predeterminado del contenedor. Por ejemplo, si el TTL del contenedor es de 1 hora, pero el TTL de un elemento se establece en 10 minutos, ese elemento expirará después de 10 minutos.

    • Si el TTL de un elemento está establecido en -1, no expira aunque el contenedor tenga un TTL.

    • Si no se establece el TTL del contenedor, se omite cualquier TTL establecido en los elementos.

    • Si el TTL del contenedor es -1, pero el TTL de un elemento es un número positivo, ese elemento expirará después de su propio TTL, mientras que otros elementos del contenedor permanecen indefinidamente.

Sugerencia

En varios kits de desarrollo de software (SDK), el valor de nivel de contenedor se identifica a menudo como la DefaultTimeToLive propiedad del contenedor. En el propio elemento, el valor de nivel de elemento se establece mediante la ttl propiedad .

Configuraciones de TTL de ejemplo

En esta tabla se muestran escenarios de ejemplo con valores TTL diferentes asignados en el nivel de contenedor o elemento.

Escenario TTL del contenedor Tiempo de Vida del Elemento Comentarios
TTL está deshabilitado <null> Esta configuración es el comportamiento predeterminado donde los elementos nunca expiran.
TTL está deshabilitado <null> -1 Los elementos nunca expiran
TTL está deshabilitado <null> 3600 Los elementos nunca expiran
TTL está habilitado -1 TTL está habilitado, pero los elementos nunca expiran
TTL está habilitado -1 -1 TTL está habilitado, pero los elementos nunca expiran
TTL está habilitado -1 3600 TTL está habilitado y los elementos específicos expiran después de 1 hora
Todos los elementos expiran después de siete días 604800 Cada elemento se elimina siete días después de la creación o la última actualización
Algunos elementos nunca expiran mientras que otros expiran después de siete días 604800 -1 Los elementos con TTL -1 nunca se eliminan mientras que otros expiran después de siete días
Los elementos expiran después de 1 hora 3600 Todos los elementos se eliminan 1 hora después de la creación o la última actualización
El elemento específico expira después de 30 minutos, mientras que otros expiran después de 1 hora 3600 1800 La mayoría de los elementos expiran después de 1 hora, pero los elementos específicos expiran después de 30 minutos

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. Como alternativa, puede establecer el TTL en -1, lo que significa que los elementos individuales no expiran. Para usar el TTL predeterminado en un elemento, asegúrese de que la ttl propiedad no está presente.

Paso siguiente