TTL (vida útil) no Azure Cosmos DB

APLICA-SE A: NoSQL

Com a TTL ou vida útil, o Azure Cosmos DB exclui itens de um contêiner automaticamente após certo período. Por padrão, é possível definir a Vida Útil no nível do contêiner e substituir o valor em uma base por item. Após definir a Vida Útil em um nível de item ou contêiner, o Azure Cosmos DB removerá automaticamente esses itens após o período de tempo, desde a hora em que foram modificados pela última vez. O valor de Vida Útil é configurado em segundos. Quando você configura a TTL, o sistema exclui automaticamente os itens vencidos com base no valor de TTL, sem precisar da emissão explícita de uma operação de exclusão pelo aplicativo cliente. O valor máximo da TTL é 2.147.483.647 segundos, o equivalente aproximado de 24.855 dias ou 68 anos.

A exclusão de itens vencidos é uma tarefa em segundo plano que consome as Unidades de Solicitação restantes que não foram consumidas por solicitações do usuário. Mesmo depois que a TTL expirar, se o contêiner estiver sobrecarregado com solicitações e não houver RUs suficientes disponíveis, a exclusão de dados será atrasada. Os dados são excluídos quando há RUs suficientes disponíveis para executar a operação de exclusão. Embora a exclusão de dados seja atrasada, os dados não são retornados por nenhuma consulta (por qualquer API) após a expiração da TTL.

Observação

Este conteúdo está relacionado ao TTL do repositório transacional do Azure Cosmos DB. Se você estiver procurando por TTL do repositório analítico, que habilita cenários NoETL HTAP por meio do Link do Synapse do Azure, clique aqui.

Vida Útil para contêineres e itens

O valor de vida útil é definido em segundos e é interpretado como um delta a partir do momento em que um item foi modificado pela última vez. É possível definir a Vida Útil em um contêiner ou um item dentro do contêiner:

  1. Vida Útil em um contêiner (definir usando DefaultTimeToLive):

    • Se ele estiver ausente (ou definido como nulo), os itens não serão expirados automaticamente.

    • Se o valor estiver presente e for definido como “-1”, ele será igual a infinito e os itens não vão expirar por padrão.

    • Se o valor estiver presente e for definido como um número “n”diferente de zero, os itens vão expirar em “n” segundos após a hora da última modificação.

  2. Vida Útil em um item (definir usando ttl):

    • Essa propriedade só será aplicável se a DefaultTimeToLive estiver presente e não for definida como nulo no contêiner pai.

    • Se presente, substituirá o valor DefaultTimeToLive do contêiner pai.

Configurações de Vida Útil

  • Se a TTL estiver definida como “n” em um contêiner, os itens desse contêiner expirarão após n segundos. Se houver itens no mesmo contêiner que tenham uma vida útil própria, defina o valor como -1 (indicando que eles não expiram). Se alguns itens substituírem a configuração de vida útil por outro número, esses itens vão expirar de acordo com o respectivo valor de TTL configurado.

  • Se a TTL não for definida em um contêiner, a vida útil de um item nesse contêiner não terá efeito.

  • Se a TTL em um contêiner for definida como -1, um item nesse contêiner que tenha a vida útil definida como n vai expirar após n segundos e os itens restantes não vão expirar.

Exemplos

Esta seção mostra alguns exemplos com diferentes tempos de vida atribuídos a contêineres e itens:

Observação

Não há suporte para a configuração de TTL como nulo em um item. O valor de TTL do item precisa ser um inteiro positivo diferente de zero ou igual a 2147483647 ou -1, o que significa que o item nunca vai expirar. Para usar a TTL padrão em um item, verifique se a propriedade de TTL não está presente.

Exemplo 1

O TTL no contêiner é definido como nulo (DefaultTimeToLive = null)

TTL no item Resultado
propriedade de ttl ausente O TTL está desabilitado. O item nunca expirará (padrão).
ttl = -1 O TTL está desabilitado. O item nunca expirará.
ttl = 2000 O TTL está desabilitado. O item nunca expirará.

Exemplo 2

O TTL no contêiner é definido como -1 (DefaultTimeToLive = -1)

TTL no item Resultado
propriedade de ttl ausente O TTL está habilitado. O item nunca expirará (padrão).
ttl = -1 O TTL está habilitado. O item nunca expirará.
ttl = 2000 O TTL está habilitado. O item expirará após 2000 segundos.

Exemplo 3

O TTL no contêiner é definido como 1000 (DefaultTimeToLive = 1000)

TTL no item Resultado
propriedade de ttl ausente O TTL está habilitado. O item expirará após 1000 segundos (padrão).
ttl = -1 O TTL está habilitado. O item nunca expirará.
ttl = 2000 O TTL está habilitado. O item expirará após 2000 segundos.

Próximas etapas

Saiba como configurar a Vida Útil, consultando os seguintes artigos: