DynamoDB BatchGetItem mit der AWS CLI
aws dynamodb batch-get-item holt in einem einzigen Befehl bis zu 100 Items über ihren Primärschlüssel (maximal 16 MB). Die Schlüssel stehen in --request-items als eine Zuordnung von Tabelle → Schlüssel in DynamoDB JSON — und du musst UnprocessedKeys in der Ausgabe prüfen, denn ein Batch darf legitim nur einen Teil des Angeforderten zurückgeben.
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"}}
]
}
}'Die Ausgabe ordnet jeder Tabelle die gefundenen Items zu, plus etwaige Überbleibsel:
{
"Responses": {
"Music": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
]
},
"UnprocessedKeys": {}
}Erklärung
--request-items— eine Zuordnung von Tabellenname →{"Keys": [...]}; ein Befehl kann sich über mehrere Tabellen erstrecken. Jeder Schlüssel muss der vollständige Primärschlüssel sein (Partition + Sortierung bei einem zusammengesetzten Schlüssel). Mehr als 100 Schlüssel, oder derselbe Schlüssel doppelt, scheitert mit einerValidationException.Responses— Items kommen in keiner bestimmten Reihenfolge zurück, und Schlüssel, die nicht existieren, tauchen einfach nicht auf — ordne Ergebnisse ihren Anfragen anhand ihrer Schlüsselattribute zu.UnprocessedKeys— anders alsquery/scanwiederholt die CLI einen partiellen Batch nicht automatisch (es ist kein Pagination-Token). Ist die Zuordnung nicht leer — Throttling, eine Antwort über 16 MB — führe den Befehl mit genau dieser Zuordnung als--request-itemserneut aus (sie liegt bereits in der richtigen Form vor) und warte zwischen den Versuchen mit Backoff.- Pro Tabelle kannst du
"ProjectionExpression": "..."(mit"ExpressionAttributeNames") hinzufügen, um nur einige Attribute zu holen, sowie"ConsistentRead": truefür stark konsistente Reads — Batch-Reads sind standardmäßig letztendlich konsistent. - Tipp: Bei mehr als ein paar Schlüsseln lege die Zuordnung in einer Datei ab und übergib
--request-items file://keys.json.
Visuell erledigen
Verschachteltes DynamoDB JSON von Hand in Shell-Anführungszeichen zu schreiben ist fehleranfällig. Der DynamoDB Expression Builder baut typisierte Schlüssel-/Wert-Zuordnungen und kopiert lauffertige CLI-Befehle.
Um Items tabellenübergreifend in einer GUI zu holen und zu inspizieren — kein JSON-Escaping, keine Wiederholungs-Buchhaltung — lade DynoTable herunter.
Verwandte Beispiele
- DynamoDB BatchGetItem in Node.js — derselbe Batch-Read mit AWS SDK v3.
- DynamoDB BatchGetItem in Python — derselbe Batch-Read mit boto3.
- DynamoDB GetItem mit der AWS CLI — der Einzel-Item-Read, den dies bündelt.
- Batch-Operationen in DynamoDB — Limits, Teilfehler und wann sich Batching lohnt.
- "Too many items requested for the BatchGetItem call" — mehr als 100 Schlüssel in einer Anfrage.
- "Provided list of item keys contains duplicates" — derselbe Schlüssel doppelt in einem Batch.
References
- BatchGetItem — Amazon DynamoDB API Reference
- batch-get-item — AWS CLI Command Reference
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.