Python'da DynamoDB'den Tüm Öğeleri Alma (boto3)

DynamoDB'de "tümünü seç" yoktur — bütün bir tabloyu okumak, sonuna kadar sayfaladığınız bir scan demektir. Her yanıt en fazla 1 MB taşır; boto3'ün yerleşik scan sayfalayıcısı, sizin için her sayfada LastEvaluatedKey'i takip eder.

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

Açıklama

  • Asıl önemli olan sayfalayıcıdır — tek bir scan çağrısı tabloyu döndürmez; en fazla 1 MB döndürür. client.get_paginator("scan"), tablo tükenene kadar takip istekleri yayar (LastEvaluatedKey'i ExclusiveStartKey olarak geri besleyerek) — insanların öğelerin neden "eksik" olduğunu merak ederken unuttuğu döngü. (Elle mi yapıyorsunuz? Yanıt bir LastEvaluatedKey içerdiği sürece çağırmaya devam edin.)
  • Bellekitems tablonun tamamını tutar. Büyük tablolar için, biriktirmek yerine döngü içinde her page'i işleyin (bir dosyaya yazın, akıtın, toplayın).
  • Büyük tablolarda daha hızlı: paralel taramaSegment=i, TotalSegments=N geçirin ve her biri kendi segmentini sayfalayan N çalışan (iş parçacığı/süreç) çalıştırın. Aynı toplam maliyet, çok daha düşük duvar-saati süresi.
  • Maliyet — tam bir tarama, çalıştırdığınız her seferinde her öğenin her baytını okur (ve faturalandırır). ProjectionExpression faturayı değil, yanıtı küçültür; bir taramayı sıcak yola koymayın — query ve erişim deseni tasarımı bunun içindir.
  • Öğeler DynamoDB JSON olarak döner ({"S": ...}). Yerel Python türlerini mi tercih edersiniz? resource API'sini kullanın (table.scan + elle bir LastEvaluatedKey döngüsü — resource API'sinde sayfalayıcı yoktur).

Görsel olarak yapın

Bir tabloya göz atmak için bir betiğe gerek yok: herhangi bir tabloyu sayfalanmış bir ızgarada gezinmek için DynoTable'ı indirin — taramaları sizin için sayfalar, yanlış yapılacak bir döngü yok. Ve tarayıp ödemeden önce, DynamoDB fiyatlandırma hesaplayıcı tablonuzun tam bir okumasının gerçekte ne kadara mal olduğunu gösterir.

İlgili örnekler

References

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Bu isteği görsel olarak oluşturun

Bu operasyonu ücretsiz DynamoDB Sorgu Oluşturucuda kurun — anahtar koşulu, filtre, index, Limit, sıralama yönü ve bir sayfalama döngüsü — ve çalıştırılabilir bir SDK v3, CLI veya boto3 programı olarak geri kopyalayın.

DynamoDB Sorgu Oluşturucuyu aç

Console olmadan DynamoDB ile çalışın

DynoTable, DynamoDB için hızlı bir masaüstü istemcisidir — tablolara göz atın, SQL tarzı sorgular çalıştırın ve item'ları yerel olarak düzenleyin.