Obter todos os itens do DynamoDB com a AWS CLI
Não existe "select all" no DynamoDB — ler uma tabela inteira significa um Scan paginado. A boa notícia: a AWS CLI auto-pagina, fazendo quantas chamadas de serviço de 1 MB forem necessárias nos bastidores e imprimindo um resultado combinado.
Code
aws dynamodb scan --table-name 'Music'A saída combinada contém todos os itens da tabela:
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Explicação
- Auto-paginação — ao contrário dos SDKs, a CLI segue o
LastEvaluatedKeypor você por padrão: um comando, todos os itens. (--no-paginatea limita a uma única chamada de serviço — apenas o primeiro ~1 MB.) - Saída fragmentada para tabelas grandes — a tabela inteira vai para a memória antes de imprimir, então para tabelas grandes leia em fatias:
--max-items 1000imprime 1000 itens mais umNextToken; retome com--starting-token <token>. Mantenha--page-sizeigual a--max-itemspara evitar linhas faltando/duplicadas entre os fragmentos. - Menos bytes, mesma conta —
--projection-expression 'Artist, SongTitle'(com--expression-attribute-namespara palavras reservadas) retorna apenas esses atributos, mas um scan ainda cobra cada byte de cada item lido. - Mais rápido em tabelas grandes: parallel scan — execute N cópias com
--segment i --total-segments N, cada uma auto-paginando sua própria fatia. Mesmo custo total, muito menos tempo de relógio. - Filtrando de passagem?
--filter-expressiondescarta itens depois de serem lidos (e cobrados) — veja Scan com um filtro. Encaminhando parajq? Adicione--output jsone lembre que os valores são DynamoDB JSON.
Faça visualmente
Dar uma olhada em uma tabela não precisa de um terminal cheio de DynamoDB JSON: baixe o DynoTable para navegar em qualquer tabela em uma grade paginada — ele pagina os scans por você. E antes de fazer scan e pagar, a calculadora de preços do DynamoDB mostra quanto uma leitura completa da sua tabela realmente custa.
Exemplos relacionados
- Obter todos os itens em Node.js — a mesma leitura completa com um loop explícito.
- Obter todos os itens em Python — a mesma leitura completa com o paginator do boto3.
- DynamoDB Scan com a AWS CLI — fazendo scan com uma
--filter-expression. - Parallel scans — Segment/TotalSegments, contagem de workers e quando se dar ao trabalho.
- Por que meu DynamoDB Scan é lento e caro? — o modelo de custo e como evitá-lo.
- DynamoDB ProvisionedThroughputExceededException — ler a tabela inteira é a forma clássica de esbarrar nele.
- "The provided starting key is invalid" — uma chave de retomada corrompida no loop de paginação.
References
- Scan — Amazon DynamoDB API Reference
- scan — AWS CLI Command Reference
- Using AWS CLI pagination options — AWS CLI User Guide
- DynamoDB read and write operations (capacity unit consumption) — Amazon DynamoDB Developer Guide
Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.