Ambil Semua Item dari DynamoDB di Python (boto3)

Tidak ada "select all" di DynamoDB — membaca seluruh tabel berarti sebuah scan yang Anda paginasi sampai habis. Setiap response membawa paling banyak 1 MB; scan paginator bawaan boto3 mengikuti LastEvaluatedKey di setiap halaman untuk Anda.

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")

Penjelasan

  • Paginator-nya adalah intinya — satu panggilan scan TIDAK mengembalikan tabel; ia mengembalikan hingga 1 MB. client.get_paginator("scan") mengeluarkan request lanjutan (memasukkan kembali LastEvaluatedKey sebagai ExclusiveStartKey) sampai tabel habis — loop yang orang lupa ketika mereka bertanya-tanya mengapa item "hilang". (Melakukannya dengan tangan? Terus panggil selama response berisi LastEvaluatedKey.)
  • Memoriitems menampung seluruh tabel. Untuk tabel besar, proses setiap page di dalam loop (tulis ke file, stream, agregasi) alih-alih menumpuknya.
  • Lebih cepat pada tabel besar: parallel scan — lewatkan Segment=i, TotalSegments=N dan jalankan N worker (thread/proses), masing-masing melakukan pagination pada segmennya sendiri. Total biaya sama, waktu jam dinding jauh lebih rendah.
  • Biaya — scan penuh membaca (dan menagih) setiap byte dari setiap item, setiap kali Anda menjalankannya. ProjectionExpression mengecilkan response, bukan tagihan; jangan taruh scan pada hot path — itulah gunanya query dan desain access-pattern.
  • Item kembali dalam DynamoDB JSON ({"S": ...}). Lebih suka tipe Python native? Gunakan resource API (table.scan + loop LastEvaluatedKey manual — resource API tidak punya paginator).

Lakukan secara visual

Melihat sekilas sebuah tabel tidak perlu skrip: unduh DynoTable untuk menjelajah tabel apa pun dalam grid berpaginasi — ia melakukan paging melalui scan untuk Anda, tanpa loop yang bisa salah. Dan sebelum Anda scan-dan-bayar, kalkulator harga DynamoDB menunjukkan berapa biaya sebenarnya dari pembacaan penuh tabel Anda.

Contoh terkait

References

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bangun request ini secara visual

Susun operasi ini di DynamoDB Query Builder gratis — key condition, filter, index, Limit, urutan sortir, dan loop paginasi — lalu salin kembali sebagai program SDK v3, CLI, atau boto3 yang bisa dijalankan.

Buka DynamoDB Query Builder

Bekerja dengan DynamoDB tanpa Console

DynoTable adalah klien desktop yang cepat untuk DynamoDB — jelajahi tabel, jalankan query gaya SQL, dan edit Item secara lokal.