Time to Live [TTL] no Azure Cosmos DB

APLICA-SE A: NoSQL

Com o Time to Live ou TTL, o Azure Cosmos DB exclui itens automaticamente de um contêiner após um determinado período de tempo. Por padrão, você pode definir o tempo de vida no nível do contêiner e substituir o valor por item. Depois de definir o TTL em um contêiner ou em um nível de item, o Azure Cosmos DB removerá automaticamente esses itens após o período de tempo, desde o momento em que foram modificados pela última vez. O valor de tempo de vida é configurado em segundos. Quando você configura o TTL, o sistema exclui automaticamente os itens expirados com base no valor TTL, sem precisar de uma operação de exclusão emitida explicitamente pelo aplicativo cliente. O valor máximo para TTL é de 2147483647 segundos, o equivalente aproximado de 24.855 dias ou 68 anos.

A exclusão de itens expirados é uma tarefa em segundo plano que consome Unidades de Solicitação remanescentes que não foram consumidas por solicitações do usuário. Mesmo depois que o TTL expirar, se o contêiner estiver sobrecarregado com solicitações e se 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 esteja atrasada, os dados não são retornados por nenhuma consulta (por qualquer API) depois que o TTL expira.

Nota

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

Tempo de vida para recipientes e itens

O valor de tempo de vida é definido em segundos e é interpretado como um delta a partir do momento em que um item foi modificado pela última vez. Você pode definir o tempo de vida em um contêiner ou em um item dentro do contêiner:

  1. Time to Live on a container (definido usando DefaultTimeToLive):

    • Se faltarem (ou estiverem definidos como nulos), os itens não expirarão automaticamente.

    • Se presente e o valor estiver definido como "-1", ele será igual ao infinito e os itens não expirarão por padrão.

    • Se presente e o valor estiver definido como algum número diferente de zero "n" – os itens expirarão "n" segundos após a última modificação.

  2. Time to Live on an item (definido usando ttl):

    • Esta propriedade é aplicável somente se DefaultTimeToLive estiver presente e não estiver definida como nula para o contêiner pai.

    • Caso esteja presente, substitui o valor DefaultTimeToLive do contentor principal.

Configurações de tempo de vida

  • Se TTL estiver definido como "n" em um contêiner, os itens nesse contêiner expirarão após n segundos. Se houver itens no mesmo recipiente que tenham seu próprio tempo de vida, defina como -1 (indicando que eles não expiram). Se alguns itens substituírem a configuração de tempo de vida com um número diferente, esses itens expirarão com base em seu próprio valor TTL configurado.

  • Se o TTL não estiver definido em um contêiner, o tempo de vida em um item nesse contêiner não terá efeito.

  • Se o TTL em um contêiner estiver definido como -1, um item nesse contêiner que tenha o tempo de vida definido como n, expirará após n segundos e os itens restantes não expirarão.

Exemplos

Esta seção mostra alguns exemplos com diferentes valores de tempo de vida atribuídos ao contêiner e aos itens:

Nota

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

Exemplo 1

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

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

Exemplo 2

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

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

Exemplo 3

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

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

Próximos passos

Saiba como configurar o Time to Live nos seguintes artigos: