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.
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 a expiração do TTL, mesmo que ainda não tenha sido excluído permanentemente do contêiner. Se o contêiner não tiver RUs (unidades de solicitação) suficientes para executar a exclusão, a exclusão de dados será atrasada. Os dados serão excluídos quando RUs suficientes estiverem disponíveis para concluir a exclusão.
Para contas de taxa de transferência provisionadas, a exclusão de itens expirados usa RUs restantes que não foram consumidas por solicitações de usuário.
Para contas sem servidor, a exclusão de itens expirados é cobrada em RUs na mesma taxa que as operações de item de exclusão.
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:
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.
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 expira (padrão). |
ttl = -1 | O TTL está desabilitado. O item nunca expira. |
ttl = 2000 | O TTL está desabilitado. O item nunca expira. |
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 expira (padrão). |
ttl = -1 | O TTL está habilitado. O item nunca expira. |
ttl = 2000 | O TTL está habilitado. O item expira após 2.000 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 1.000 segundos (padrão). |
ttl = -1 | O TTL está habilitado. O item nunca expirará. |
ttl = 2000 | O TTL está habilitado. O item expirará após 2.000 segundos. |
Próximas etapas
Saiba como configurar a Vida Útil, consultando os seguintes artigos: