Como Obter o Tamanho e a Contagem de Itens de uma Tabela DynamoDB
Não existe um SELECT COUNT(*) que você possa apontar de forma barata para uma tabela DynamoDB.
O DynamoDB te dá duas respostas muito diferentes para "quão grande é esta tabela?": uma
estimativa gratuita que pode estar até seis horas defasada, e uma contagem exata
que custa uma leitura completa da tabela. A maior parte da confusão de "por que minha contagem
de itens está errada?" é escolher uma esperando o comportamento da outra.
Como obtenho a contagem de itens e o tamanho de uma tabela DynamoDB?
Chame o DescribeTable: ele retorna ItemCount e TableSizeBytes de graça, mas
"o DynamoDB atualiza este valor aproximadamente a cada seis horas. Mudanças recentes
podem não estar refletidas neste valor"
(referência da API da AWS).
Para um número exato, rode um Scan com --select COUNT — ele retorna apenas
a contagem, mas lê (e cobra) cada item. Uma GUI como o
DynoTable mostra as estimativas em cada tabela e pode computar
contagens exatas sob demanda.
| Você quer | Use | Custo | Frescor |
|---|---|---|---|
| Contagem + tamanho de bolso, grátis | DescribeTable | nenhum (chamada de metadados) | ~6 h defasado |
| Contagem total exata | Scan com Select COUNT | lê a tabela inteira | ao vivo |
| Contagem exata para uma chave | Query com Select COUNT | lê os itens correspondentes | ao vivo |
| Contagem de um subconjunto filtrado | Scan/Query + filtro + COUNT | lê tudo o que foi escaneado | ao vivo |
Método 1: DescribeTable (grátis, ~6 h defasado)
O DescribeTable é uma consulta de metadados — ele não lê nenhum item, então não consome
capacidade de leitura, e carrega os dois números que você procura:
aws dynamodb describe-table --table-name Orders \
--query 'Table.[ItemCount, TableSizeBytes]'Ambos vêm com a mesma ressalva, literalmente da
referência da API:
"O DynamoDB atualiza este valor aproximadamente a cada seis horas. Mudanças recentes
podem não estar refletidas neste valor." Então uma tabela que você acabou de carregar em massa pode
reportar ItemCount: 0 por horas — o número não está errado, é um snapshot.
A mesma resposta também carrega números por índice: cada GSI e LSI
reporta seu próprio ItemCount e IndexSizeBytes na mesma cadência de seis horas.
Comparar a contagem de itens de um com a da tabela é um
belo health check gratuito — ele te diz quantos itens realmente carregam a chave
do índice.
Método 2: contagem exata com Scan + Select COUNT
Quando "aproximadamente, no estado desta manhã" não é bom o suficiente, conte de verdade:
aws dynamodb scan --table-name Orders --select COUNTFatos para saber antes de rodar, todos da referência da API de Scan:
COUNT"retorna o número de itens correspondentes, em vez dos próprios itens correspondentes" — menos tráfego de rede, mas "isso usa a mesma quantidade de unidades de capacidade de leitura que buscar os itens". Uma contagem exata de uma tabela de 100 GB é uma leitura de 100 GB na sua fatura.- Uma única requisição ainda para em 1 MB de dados escaneados; o
Countda resposta "retorna apenas a contagem de itens específica de uma única requisição de scan". A CLI segue oLastEvaluatedKeye soma as páginas para você; em código de SDK você faz o loop e soma — veja paginação. - Em uma tabela grande, divida o trabalho com um
parallel scan (
--segment/--total-segments) e some as contagens por segmento.
Contando um subconjunto
- Itens sob uma chave de partição:
Querycom--select COUNT— lê apenas os itens daquela chave, então é tão barato quanto os dados são pequenos. Este é o jeito certo de contar uma . - Itens que batem com um filtro: adicione uma
FilterExpression— mas lembre que a contagem pela qual você é cobrado é oScannedCount, não oCount: o DynamoDB filtra depois de ler, então "contar os pedidos arquivados" via scan filtrado paga por cada pedido. UmScannedCountalto ao lado de umCountpequeno é a assinatura de um filtro que quer ser um GSI — veja estratégias de filtragem.
Para perguntas mais ricas — contagens por status, somas, médias — o DynamoDB não tem
GROUP BY algum; as soluções alternativas vivem em
count, sum e agregações.
Tamanho de tabela e contagem de itens no DynoTable
O DynoTable coloca as duas respostas onde você já está olhando. Cada tabela aberta tem um botão Estatísticas (o ícone de gráfico de barras) na barra de ferramentas da aba; o painel mostra:
- Chave primária e índices secundários — o formato da tabela num relance.
- Itens · Tamanho · Item médio — as próprias estimativas de
DescribeTabledo DynamoDB, rotuladas como estimativas, com a ressalva das seis horas a um hover de distância. - Indexar tabela — um scan de amostragem de um clique que descobre cada atributo
que seus itens realmente carregam (incluindo caminhos aninhados como
commonData.status), com progresso ao vivo. Ele alimenta o autocomplete de campos e um export inferido de TypeScript / Zod / JSON Schema, e incorre em custos normais de leitura do DynamoDB — o app avisa isso de antemão.

E para os números exatos, o assistente de IA embutido computa contagens, somas e quebras por grupo sobre a tabela inteira sob demanda — ele lê cada item correspondente em vez de amostrar uma página, e pergunta antes de rodar qualquer coisa que custe capacidade de leitura.
FAQ
Por que minha contagem de itens do DynamoDB está errada?
Ela não está errada — está defasada. ItemCount (e TableSizeBytes) se atualizam
"aproximadamente a cada seis horas", então escritas e exclusões recentes ainda não
estão refletidas. A visão geral de tabela do console mostra os mesmos números de
DescribeTable, com a mesma defasagem.
Como conto linhas no DynamoDB exatamente?
aws dynamodb scan --table-name X --select COUNT — a CLI pagina pela
tabela inteira e soma as contagens por página. É exato, mas cobra a mesma capacidade
de leitura que buscar cada item.
O DescribeTable é grátis? Ele não consome capacidade de leitura — é uma chamada de metadados, não uma leitura de dados, então fazer polling dele não toca o throughput da sua tabela.
Como descubro o tamanho de um item? O DynamoDB mede por tamanho de item (arredondado para cima por 1 KB escrito / 4 KB lido). Cole um item na calculadora de tamanho de item para ver seu tamanho cobrado, e veja o limite de 400 KB por item para o teto.
A contagem de itens afeta minha fatura?
O armazenamento é cobrado por TableSizeBytes, e as requisições por tamanho de item × número de
requisições — não pela contagem de itens diretamente. Coloque os números da sua tabela na
calculadora de preços para ver o retrato mensal
entre os modos on-demand e provisionado.
Quer o formato da tabela, as estimativas e os campos indexados a um clique de distância? Baixe o DynoTable e abra o painel Estatísticas em qualquer tabela.


