DynamoDB ItemCollectionSizeLimitExceededException

TL;DR — Somente tabelas com Índice Secundário Local (LSI) têm este limite: todos os itens que compartilham uma chave de partição (a "coleção de itens") podem totalizar no máximo 10 GB. Uma das suas chaves de partição cruzou. Redesenhe para que nenhuma chave de partição acumule dados ilimitados — ou elimine o LSI.

O que significa

ItemCollectionSizeLimitExceededException: Collection size exceeded.

Uma coleção de itens é cada item com o mesmo valor de chave de partição — na tabela base e em todos os seus LSIs. Tabelas sem um LSI não têm limite de tamanho por coleção (o tamanho geral de uma tabela é irrestrito). Tabelas com um limite LSI de cada coleção em 10 GB, e esse erro significa que uma gravação empurraria uma coleção além dela. O limite não se aplica a índices secundários globais.

Ele retorna como HTTP 400 e o AWS lista como OK para tentar novamente - mas uma nova tentativa só é bem-sucedida quando a coleção diminui para menos de 10 GB. Leituras e escritas que reduzem o tamanho da coleção (exclusões, remoção ou corte de atributos) ainda são permitidas, para que você possa encontrar uma saída.

Por que isso acontece

  • Uma chave de partição hot/unbounded — uma chave (um grande inquilino, um usuário popular) acumula muito mais itens do que outras.
  • Um LSI que você pode não precisar — o limite de 10 GB existe apenas porque a tabela tem um LSI.
  • Crescimento somente de acréscimos em uma única chave de partição ao longo do tempo.

Como corrigir

  1. Fragmentar novamente a chave de partição. Divida a entidade superdimensionada em várias chaves de partição (por exemplo, TENANT#42#1, TENANT#42#2) para que nenhuma coleção única cresça ilimitadamente.
  2. Substitua o LSI por um GSI. Os GSIs têm sua própria chave de partição e não limite de tamanho de coleção de itens — para a maioria dos padrões de acesso, um GSI é a melhor escolha de qualquer maneira (e pode ser adicionado ao /removed após a criação da tabela, ao contrário de um LSI).
  3. Arquive itens frios da coleção quente (em uma tabela separada ou S3).
  4. Monitore o tamanho da coleção antes de bater na parede. ReturnItemCollectionMetrics: SIZE em escritas retorna o tamanho estimado da coleção para que você possa alertar antes que as escritas falhem.

Detecte no DynoTable

Descubra quais chaves de partição carregam mais itens antes que uma coleção atinja 10 GB — abra a tabela com ⌘K, classifique por chave de partição e procure chaves com listas de itens excepcionalmente longas. A calculadora de tamanho de item ajuda a estimar o crescimento por item quando você planeja um novo fragmento.

Use a calculadora de preços para comparar a amplificação de gravação LSI com uma alternativa GSI. Alternar perfis com ⌘P; configure-os em Configurações → Perfis. Consulte Conectar ao AWS e Instalar.

Fontes

Erros relacionados

Referências

Última verificação em 13/07/2026 em relação à documentação oficial do AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.