Node.js'te DynamoDB'den Tüm Öğeleri Alma (AWS SDK v3)

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; hiçbir anahtar geri gelmeyene kadar LastEvaluatedKey'i ExclusiveStartKey olarak geri besleyerek döngü yaparsınız.

Code

import {DynamoDBClient, ScanCommand} from '@aws-sdk/client-dynamodb';

const client = new DynamoDBClient({region: 'us-east-1'});

const items = [];
let lastEvaluatedKey;

do {
  const response = await client.send(
    new ScanCommand({
      TableName: 'Music',
      ExclusiveStartKey: lastEvaluatedKey
    })
  );

  items.push(...(response.Items ?? []));
  lastEvaluatedKey = response.LastEvaluatedKey;
} while (lastEvaluatedKey);

console.log(`Table holds ${items.length} items`);

Açıklama

  • Asıl önemli olan döngüdür — tek bir Scan çağrısı tabloyu döndürmez; en fazla 1 MB döndürür. İlk yanıttan sonra durmak, klasik "taramam öğeleri kaçırıyor" hatasıdır. Yalnızca LastEvaluatedKey'in bulunmaması her şeyi okuduğunuz anlamına gelir.
  • Bellekitems tablonun tamamını tutar. Büyük tablolar için, biriktirmek yerine döngü içinde her sayfayı işleyin (bir dosyaya yazın, akıtın, toplayın).
  • Büyük tablolarda daha hızlı: paralel tarama — işi Segment / TotalSegments ile bölün: her biri kendi segmentini kendi sayfalama döngüsüyle tarayan N çalışan ç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). Yanıtı ProjectionExpression ile kısaltın (daha az öznitelik döner — okuma maliyeti aynı kalır) ve bir taramayı sıcak yola koymayın; Query ve erişim deseni tasarımı bunun içindir.
  • Bu arada filtreliyor musunuz? Bir FilterExpression, öğeleri okunduktan (ve faturalandırıldıktan) sonra eler — bkz. Filtreyle Scan.

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.