AWS CLI ile DynamoDB'den Tüm Öğeleri Alma

AWS CLI sayfalamayı gizler. aws dynamodb scan, tablonun gerektirdiği kadar 1 MB'lık hizmet çağrısı yapar ve tek bir birleşik sonuç yazdırır; dolayısıyla on öğe okuyan komut ile on milyon öğe okuyan komut aynı komuttur.

Kolaylık da tuzak da budur. Satır tek satır kalırken çağrı sayısı, bellek ve fatura tabloyla birlikte ölçeklenir.

Kod

aws dynamodb scan --table-name 'Music'

Birleşik çıktı tablodaki her öğeyi barındırır:

{
    "Items": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
    ],
    "Count": 1287,
    "ScannedCount": 1287
}

Açıklama

  • --no-paginate tek çağrı anahtarıdır — CLI'nin imleci izlemesini durdurur, böylece ilk sayfayı alırsınız, başka bir şey almazsınız. Bir göz atmak için uygun, tam bir okuma için yanlış (imleç nasıl çalışır).
  • --page-size çıktıyı değil çağrı sayısını değiştirir — AWS bunu açıkça söyler: "Changing the page size doesn't affect the output; it affects only the number of API calls that need to be made to generate the output." Büyük bir sayfa zaman aşımına uğradığında ona başvurun, para tasarrufu için asla. Okuma maliyeti her iki durumda da aynıdır.
  • --max-items çıktının durduğu ve NextToken'ın başladığı yerdir — o kadar öğeyi artı --starting-token için bir devam belirteci yazdırır. Onu ve --page-size'ı aynı sayıya ayarlayın: AWS, farklı değerlerin "can get unexpected results with missing or duplicated items" konusunda uyarır.
  • --query sizin makinenizde çalışır — yazdırılan sonuç üzerinde JMESPath'tir ve her öğe okunup faturalandırıldıktan sonra uygulanır. DynamoDB'nin gördüğü olan --projection-expression'dır (ayrılmış sözcükler için artı --expression-attribute-names) ve o da faturayı değil yanıtı küçültür. Bir --filter-expression de öğeleri ücretlendirildikten sonra düşürür (filtreli Scan).
  • Her şey tamponlanır, sonra bir sayfalayıcıyla karşılaşır — CLI yazdırmadan önce her sayfayı biriktirir ve CLI v2 sonucu varsayılan olarak macOS ve Linux'ta less, Windows'ta more üzerinden gönderir. Büyük bir tabloda bu, aynı anda hem bir bellek sıçraması hem de takılmış bir terminaldir. --no-cli-pager ekleyin ya da AWS_PAGER'ı boş bir dizeye ayarlayın ve --max-items ile dilimleyin.
  • Paralel tarama kabuktan da çalışır — her biri kendi dilimini otomatik sayfalayan N kopyayı --segment i --total-segments N ile çalıştırın. Aynı toplam maliyet, çok daha düşük duvar saati (ne zaman değer).

Görsel olarak yapın

Tek satırlık bir komut pahalı bir komut olabilir. DynamoDB fiyatlandırma hesaplayıcısı, tablonuzun tam bir okumasına siz çalıştırmadan önce bir sayı koyar.

DynoTable tabloda bir terminal tamponunda değil bir ızgarada sayfalar ve o ızgaranın arkasındaki Scan'i bir aws dynamodb komutu olarak geri dışa aktarır. DynoTable'ı indirin.

İlgili örnekler

Kaynaklar

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

Bu isteği görsel olarak oluştur

Bu operasyonu ücretsiz DynamoDB Sorgu Oluşturucuda kur — 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 kopyala.

DynamoDB Sorgu Oluşturucuyu aç

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.