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 2.147.483.647 segundos, o equivalente aproximado de 24.855 dias ou 68 anos.
Os itens expirados são excluídos como uma tarefa em segundo plano. Um item não aparecerá mais nas respostas de consulta imediatamente após o TTL expirar, mesmo que ainda não tenha sido excluído permanentemente do contêiner. Se o contêiner não tiver unidades de solicitação (RUs) suficientes para executar a exclusão, a exclusão de dados será atrasada. Os dados serão apagados assim que estiverem disponíveis RUs suficientes para concluir a eliminação.
Para contas de taxa de transferência provisionadas, a exclusão de itens expirados usa RUs remanescentes que não foram consumidas por solicitações do usuário.
Para contas sem servidor, a exclusão de itens expirados é cobrada em RUs na mesma taxa que as operações de exclusão de item.
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:
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.
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 | Result |
---|---|
Propriedade TTL ausente | O TTL está desativado. O item nunca expira (padrão). |
ttl = -1 | O TTL está desativado. O item nunca expira. |
ttl = 2000 | O TTL está desativado. O item nunca expira. |
Exemplo 2
TTL no contêiner é definido como -1 (DefaultTimeToLive = -1)
TTL no item | Result |
---|---|
Propriedade TTL ausente | O TTL está ativado. O item nunca expira (padrão). |
ttl = -1 | O TTL está ativado. O item nunca expira. |
ttl = 2000 | O TTL está ativado. O item expira após 2.000 segundos. |
Exemplo 3
TTL no contêiner é definido como 1000 (DefaultTimeToLive = 1000)
TTL no item | Result |
---|---|
Propriedade TTL ausente | O TTL está ativado. O item expirará após 1.000 segundos (padrão). |
ttl = -1 | O TTL está ativado. O item nunca expirará. |
ttl = 2000 | O TTL está ativado. O item expirará após 2.000 segundos. |
Próximos passos
Saiba como configurar o Time to Live nos seguintes artigos: