AWS CLI ile DynamoDB'den Tüm Öğeleri Alma
DynamoDB'de "tümünü seç" yoktur — bütün bir tabloyu okumak, sayfalanmış bir Scan demektir. İyi haber: AWS CLI otomatik sayfalar, perde arkasında gerektiği kadar 1 MB'lık hizmet çağrısı yapar ve tek bir birleştirilmiş sonuç yazdırır.
Code
aws dynamodb scan --table-name 'Music'Birleştirilmiş çıktı, tablodaki her öğeyi tutar:
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Açıklama
- Otomatik sayfalama — SDK'ların aksine, CLI varsayılan olarak sizin için
LastEvaluatedKey'i takip eder: tek komut, her öğe. (--no-paginatebunu tek bir hizmet çağrısıyla sınırlar — yalnızca ilk ~1 MB.) - Büyük tablolar için parçalanmış çıktı — tablonun tamamı yazdırılmadan önce belleğe gelir, bu nedenle büyük tablolar için onu dilimler hâlinde okuyun:
--max-items 10001000 öğe artı birNextTokenyazdırır;--starting-token <token>ile devam edin. Parçalar arasında eksik/yinelenen satırlardan kaçınmak için--page-size'ı--max-items'a eşit tutun. - Daha az bayt, aynı fatura —
--projection-expression 'Artist, SongTitle'(ayrılmış sözcükler için--expression-attribute-namesile) yalnızca bu öznitelikleri döndürür, ancak bir tarama yine de okunan her öğenin her baytını faturalandırır. - Büyük tablolarda daha hızlı: paralel tarama — her biri kendi dilimini otomatik sayfalayan
--segment i --total-segments Nile N kopya çalıştırın. Aynı toplam maliyet, çok daha düşük duvar-saati süresi. - Bu arada filtreliyor musunuz?
--filter-expression, öğeleri okunduktan (ve faturalandırıldıktan) sonra eler — bkz. Filtreyle Scan.jq'ya mı yönlendiriyorsunuz?--output jsonekleyin ve değerlerin DynamoDB JSON olduğunu unutmayın.
Görsel olarak yapın
Bir tabloya göz atmak için DynamoDB JSON'uyla dolu bir terminale gerek yok: herhangi bir tabloyu sayfalanmış bir ızgarada gezinmek için DynoTable'ı indirin — taramaları sizin için sayfalar. 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
- Node.js'te tüm öğeleri alma — açık bir döngüyle aynı tam okuma.
- Python'da tüm öğeleri alma — boto3'ün sayfalayıcısıyla aynı tam okuma.
- AWS CLI ile DynamoDB Scan — bir
--filter-expressionile tarama. - Paralel taramalar — Segment/TotalSegments, çalışan sayıları ve ne zaman uğraşmaya değeceği.
- DynamoDB Scan'im neden yavaş ve pahalı? — maliyet modeli ve bundan nasıl kaçınılacağı.
- DynamoDB ProvisionedThroughputExceededException — tablonun tamamını okumak, buna takılmanın klasik yoludur.
- "The provided starting key is invalid" — sayfalama döngüsünde bozuk bir devam anahtarı.
References
- Scan — Amazon DynamoDB API Reference
- scan — AWS CLI Command Reference
- Using AWS CLI pagination options — AWS CLI User Guide
- DynamoDB read and write operations (capacity unit consumption) — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.