DynamoDB BatchGetItem com a AWS CLI
aws dynamodb batch-get-item busca até 100 itens por chave primária em um único comando (16 MB no máximo). As chaves vão em --request-items como um mapa de tabela → chaves em DynamoDB JSON — e você precisa verificar UnprocessedKeys na saída, porque um batch pode legitimamente retornar apenas parte do que você pediu.
Code
aws dynamodb batch-get-item \
--request-items '{
"Music": {
"Keys": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}},
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "A Mis Abuelos"}},
{"Artist": {"S": "Ella Fitzgerald"}, "SongTitle": {"S": "Misty"}}
]
}
}'A saída mapeia cada tabela aos itens encontrados, mais quaisquer restantes:
{
"Responses": {
"Music": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
]
},
"UnprocessedKeys": {}
}Explicação
--request-items— um mapa de nome de tabela →{"Keys": [...]}; um comando pode abranger múltiplas tabelas. Cada chave deve ser a chave primária completa (partição + classificação para uma chave composta). Mais de 100 chaves, ou a mesma chave duas vezes, falha com umaValidationException.Responses— os itens voltam em nenhuma ordem específica, e chaves que não existem simplesmente não aparecem — associe os resultados às requisições pelos atributos de chave.UnprocessedKeys— ao contrário dequery/scan, a CLI não faz retry automático de um batch parcial (não é um token de paginação). Se o mapa estiver não vazio — throttling, uma resposta de >16 MB — reexecute o comando com aquele mapa exato como--request-items(ele já está no formato certo), aplicando backoff entre as tentativas.- Por tabela você pode adicionar
"ProjectionExpression": "..."(com"ExpressionAttributeNames") para buscar apenas alguns atributos, e"ConsistentRead": truepara leituras com consistência forte — leituras em batch têm consistência eventual por padrão. - Dica: para mais do que algumas poucas chaves, mantenha o mapa em um arquivo e passe
--request-items file://keys.json.
Faça visualmente
Escrever DynamoDB JSON aninhado dentro de aspas do shell à mão é propenso a erros. O DynamoDB Expression Builder constrói mapas tipados de chave/valor e copia comandos de CLI prontos para executar.
Para buscar e inspecionar itens entre tabelas numa GUI — sem escape de JSON, sem controle de re-execução — baixe o DynoTable.
Exemplos relacionados
- DynamoDB BatchGetItem em Node.js — a mesma leitura em batch com o AWS SDK v3.
- DynamoDB BatchGetItem em Python — a mesma leitura em batch com boto3.
- DynamoDB GetItem com a AWS CLI — a leitura de item único que isto agrupa.
- Operações em batch no DynamoDB — limites, falha parcial e quando o batching compensa.
- "Too many items requested for the BatchGetItem call" — mais de 100 chaves em uma requisição.
- "Provided list of item keys contains duplicates" — a mesma chave duas vezes em um batch.
References
- BatchGetItem — Amazon DynamoDB API Reference
- batch-get-item — AWS CLI Command Reference
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.