Por que os itens com o tempo de vida expirado não são excluídos da minha tabela do Amazon DynamoDB?
Alguns dos itens com o tempo de vida (TTL) expirado não são excluídos da minha tabela do Amazon DynamoDB.
Resolução
O recurso TTL do DynamoDB permite que você defina um carimbo de data e hora por item para determinar o momento em que você deixará de precisar de um item. Logo após o momento do carimbo de data e hora especificado, o DynamoDB exclui o item da sua tabela. Isso não consome nenhum throughput de gravação. O TTL permite que você retenha somente os itens que permanecem atualizados de acordo com as necessidades da sua workload e, portanto, reduza os volumes de dados armazenados. O TTL não incorre em nenhum custo adicional. Ao ativar o TTL em uma tabela do DynamoDB, identifique um nome de atributo para o serviço a ser procurado para determinar a elegibilidade de um item para expiração. Depois de ativar o TTL em uma tabela, um processo de verificação em segundo plano por partição avalia automática e continuamente o status de expiração dos itens na tabela.
Aqui estão alguns motivos comuns pelos quais a exclusão de itens expirados pode levar mais tempo do que o esperado:
- A operação real de exclusão de um item expirado pode variar dependendo do tamanho e do nível de atividade da tabela. Como o TTL é um processo em segundo plano, a capacidade usada para expirar e excluir itens pode variar.
- O TTL normalmente exclui itens expirados dentro de alguns dias. Dependendo do tamanho e do nível de atividade de uma tabela, a operação real de exclusão de um item expirado pode variar. O TTL exclui itens da melhor maneira possível e a exclusão pode levar mais tempo em alguns casos. Durante a exclusão de objetos, o DynamoDB usa a capacidade de back-end da tabela para excluir os objetos em vez da capacidade provisionada. Se houver muitas solicitações de exclusão e não houver capacidade de back-end suficiente para excluir continuamente esses itens, o processo poderá levar mais tempo.
Para verificar se o TTL está funcionando corretamente, examine as seguintes condições:
-
Verifique se você ativou o TTL na tabela e se as configurações relacionadas estão corretas:
-
O item deve conter o atributo especificado ao ativar o TTL na tabela.
-
O valor do atributo do TTL deve ter o tipo de dados Número.
-
O valor do atributo do TTL deve ser um carimbo de data e hora em segundos no formato de data e hora de época Unix. Para obter mais informações, consulte Era Unix na Wikipédia.
-
O valor do atributo do TTL deve ser um carimbo de data e hora com uma expiração de no máximo cinco anos no passado.
-
Os processos de TTL são executados na tabela somente quando há capacidade disponível suficiente para que esses processos não interfiram nas operações da tabela. Se a tabela ou as partições da tabela usarem a maior parte da capacidade alocada, os processos de TTL talvez não sejam executados.
Os itens que expiraram, mas ainda não foram excluídos, ainda aparecem nas leituras, consultas e verificações. Se você não quiser itens expirados no conjunto de resultados, será preciso filtrá-los. Use uma expressão de filtro que retorne somente itens em que o valor de expiração do tempo de vida seja maior que a hora atual no formato época Unix. Para obter mais informações, consulte Expressões de filtro para verificação.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 2 meses