Alle Items aus DynamoDB in Python holen (boto3)

Es gibt kein "select all" in DynamoDB — eine ganze Tabelle zu lesen bedeutet einen scan, den du bis zum Ende paginierst. Jede Antwort trägt höchstens 1 MB; boto3s eingebauter Scan-Paginator folgt LastEvaluatedKey über jede Seite hinweg für dich.

Code

import boto3

client = boto3.client("dynamodb")

paginator = client.get_paginator("scan")

items = []
for page in paginator.paginate(TableName="Music"):
    items.extend(page["Items"])

print(f"Table holds {len(items)} items")

Erklärung

  • Der Paginator ist der Punkt — ein einzelner scan-Aufruf gibt NICHT die Tabelle zurück; er gibt bis zu 1 MB zurück. client.get_paginator("scan") stellt Folgeanfragen (speist LastEvaluatedKey als ExclusiveStartKey zurück), bis die Tabelle erschöpft ist — die Schleife, die man vergisst, wenn man sich fragt, warum Items "fehlen". (Von Hand? Rufe weiter auf, solange die Antwort einen LastEvaluatedKey enthält.)
  • Speicheritems hält die gesamte Tabelle. Verarbeite bei großen Tabellen jede page innerhalb der Schleife (in eine Datei schreiben, streamen, aggregieren), statt anzusammeln.
  • Schneller bei großen Tabellen: Parallel Scan — übergib Segment=i, TotalSegments=N und führe N Worker (Threads/Prozesse) aus, jeder paginiert sein eigenes Segment. Gleiche Gesamtkosten, deutlich geringere Wanduhrzeit.
  • Kosten — ein vollständiger Scan liest (und berechnet) jedes Byte jedes Items, jedes Mal, wenn du ihn ausführst. ProjectionExpression verkleinert die Antwort, nicht die Rechnung; setze keinen Scan auf einen Hot Path — dafür sind query und Zugriffsmuster-Design da.
  • Items kommen in DynamoDB JSON zurück ({"S": ...}). Lieber native Python-Typen? Nutze die Resource-API (table.scan + eine manuelle LastEvaluatedKey-Schleife — die Resource-API hat keinen Paginator).

Visuell erledigen

Eine Tabelle zu überfliegen braucht kein Skript: Lade DynoTable herunter, um jede Tabelle in einem paginierten Raster zu durchsuchen — es blättert die Scans für dich durch, keine Schleife, die man falsch machen kann. Und bevor du scannst und zahlst, zeigt der DynamoDB-Preisrechner, was ein vollständiges Lesen deiner Tabelle tatsächlich kostet.

Verwandte Beispiele

References

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Diesen Request visuell bauen

Stelle diese Operation im kostenlosen DynamoDB Query Builder zusammen — Key-Bedingung, Filter, Index, Limit, Sortierreihenfolge und eine Paginierungsschleife — und kopiere sie als lauffähiges SDK-v3-, CLI- oder boto3-Programm zurück.

DynamoDB Query Builder öffnen

Mit DynamoDB ohne die Console arbeiten

DynoTable ist ein schneller Desktop-Client für DynamoDB — durchsuche Tabellen, führe SQL-artige Queries aus und bearbeite Items lokal.