Alle Items aus DynamoDB mit der AWS CLI holen
Es gibt kein "select all" in DynamoDB — eine ganze Tabelle zu lesen bedeutet einen paginierten Scan. Die gute Nachricht: Die AWS CLI paginiert automatisch, macht hinter den Kulissen so viele 1-MB-Service-Aufrufe wie nötig und druckt ein kombiniertes Ergebnis.
Code
aws dynamodb scan --table-name 'Music'Die kombinierte Ausgabe enthält jedes Item der Tabelle:
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Erklärung
- Automatische Pagination — anders als die SDKs folgt die CLI
LastEvaluatedKeystandardmäßig für dich: ein Befehl, jedes Item. (--no-paginatebegrenzt sie auf einen einzigen Service-Aufruf — nur die ersten ~1 MB.) - Gestückelte Ausgabe für große Tabellen — die gesamte Tabelle landet vor dem Drucken im Speicher, lies große Tabellen daher in Scheiben:
--max-items 1000druckt 1000 Items plus einNextToken; setze mit--starting-token <token>fort. Halte--page-sizegleich--max-items, um fehlende/doppelte Zeilen über die Stücke hinweg zu vermeiden. - Weniger Bytes, gleiche Rechnung —
--projection-expression 'Artist, SongTitle'(mit--expression-attribute-namesfür reservierte Wörter) gibt nur diese Attribute zurück, aber ein Scan berechnet trotzdem jedes Byte jedes gelesenen Items. - Schneller bei großen Tabellen: Parallel Scan — führe N Kopien mit
--segment i --total-segments Naus, jede paginiert ihre eigene Scheibe automatisch. Gleiche Gesamtkosten, deutlich geringere Wanduhrzeit. - Gleich mitfiltern?
--filter-expressionverwirft Items nachdem sie gelesen (und berechnet) wurden — siehe Scan mit einem Filter. Anjqweiterleiten? Füge--output jsonhinzu und denk daran, dass die Werte DynamoDB JSON sind.
Visuell erledigen
Eine Tabelle zu überfliegen braucht kein Terminal voller DynamoDB JSON: Lade DynoTable herunter, um jede Tabelle in einem paginierten Raster zu durchsuchen — es blättert die Scans für dich durch. Und bevor du scannst und zahlst, zeigt der DynamoDB-Preisrechner, was ein vollständiges Lesen deiner Tabelle tatsächlich kostet.
Verwandte Beispiele
- Alle Items in Node.js holen — dasselbe vollständige Lesen mit einer expliziten Schleife.
- Alle Items in Python holen — dasselbe vollständige Lesen mit boto3s Paginator.
- DynamoDB Scan mit der AWS CLI — Scannen mit einer
--filter-expression. - Parallel Scans — Segment/TotalSegments, Worker-Anzahl und wann es sich lohnt.
- Warum ist mein DynamoDB Scan langsam und teuer? — das Kostenmodell und wie man es vermeidet.
- DynamoDB ProvisionedThroughputExceededException — die ganze Tabelle zu lesen ist der klassische Weg, sie zu treffen.
- "The provided starting key is invalid" — ein verstümmelter Fortsetzungsschlüssel in der Pagination-Schleife.
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
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.