Compartilhar via


Hora de viver no Azure Cosmos DB

Usando o TTL (tempo de vida útil), o Azure Cosmos DB exclui os itens automaticamente de um contêiner após um determinado período de tempo. Por padrão, é possível definir a vida útil no nível do contêiner e substituir o valor em uma base por item. Depois de definir a TTL em um contêiner ou em um nível de item, o Azure Cosmos DB remove automaticamente esses itens após o período de tempo, desde a última modificação. O valor TTL é 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 aparece mais em 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 são excluídos quando RUs suficientes estão 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.

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:

  • Defina o tempo de vida de um contêiner usando DefaultTimeToLive:

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

    • Se estiver presente e o valor for definido como "-1", ele será igual ao infinito e os itens não expirarão 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.

  • Defina tempo de vida para um item usando ttl:

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

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

Configurações de vida útil

  • Se o 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 contêiner que tenham uma vida útil própria, defina o valor como -1 (indicando que eles não expiram). Se alguns itens substituirem a configuração de TTL com um número diferente, esses itens expirarão com base em seu próprio valor 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 o TTL em um contêiner for definido como -1, um item neste 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 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 TTL do item deve ser um inteiro positivo diferente de zero ou igual a 2147483647 ou -1 o que significa que o item nunca expira. 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 expira após 1.000 segundos (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.

Próxima etapa