AWS CLI ile DynamoDB BatchGetItem
aws dynamodb batch-get-item, tek bir komutta birincil anahtara göre 100'e kadar öğe getirir (en fazla 16 MB). Anahtarlar --request-items içinde tablo → anahtarlar eşlemesi olarak DynamoDB JSON biçiminde yer alır — ve çıktıdaki UnprocessedKeys'i kontrol etmelisiniz, çünkü bir toplu istek yasal olarak istediğinizin yalnızca bir kısmını döndürebilir.
Code
aws dynamodb batch-get-item \
--request-items '{
"Music": {
"Keys": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}},
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "A Mis Abuelos"}},
{"Artist": {"S": "Ella Fitzgerald"}, "SongTitle": {"S": "Misty"}}
]
}
}'Çıktı, her tabloyu bulunan öğelerle, artı varsa kalanlarla eşler:
{
"Responses": {
"Music": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
]
},
"UnprocessedKeys": {}
}Açıklama
--request-items— tablo adı →{"Keys": [...]}şeklinde bir eşleme; bir komut birden çok tabloya yayılabilir. Her anahtar tam birincil anahtar olmalıdır (bileşik bir anahtar için bölüm + sıralama). 100'den fazla anahtar ya da aynı anahtarın iki kez geçmesi birValidationExceptionile başarısız olur.Responses— öğeler belirli bir sırada olmadan döner ve var olmayan anahtarlar basitçe görünmez — sonuçları anahtar özniteliklerine göre isteklerle eşleştirin.UnprocessedKeys—query/scan'in aksine CLI, kısmi bir toplu isteği otomatik olarak yeniden denemez (bu bir sayfalama belirteci değildir). Eşleme boş değilse — kısıtlama, 16 MB'ı aşan bir yanıt — komutu tam olarak o eşlemeyle--request-itemsolarak yeniden çalıştırın (zaten doğru biçimde), denemeler arasında geri çekilerek.- Tablo başına, yalnızca bazı öznitelikleri getirmek için
"ProjectionExpression": "..."("ExpressionAttributeNames"ile) ve güçlü tutarlı okumalar için"ConsistentRead": trueekleyebilirsiniz — toplu okumalar varsayılan olarak nihai tutarlıdır. - İpucu: birkaçtan fazla anahtar için eşlemeyi bir dosyada tutun ve
--request-items file://keys.jsonolarak geçirin.
Görsel olarak yapın
İç içe DynamoDB JSON'unu kabuk tırnakları içinde elle yazmak hataya açıktır. DynamoDB Expression Builder, türlü anahtar/değer eşlemeleri oluşturur ve çalıştırmaya hazır CLI komutlarını kopyalar.
JSON kaçışları olmadan, yeniden çalıştırma takibi olmadan tablolar arası öğeleri bir grafik arayüzde (GUI) getirmek ve incelemek için — DynoTable'ı indirin.
İlgili örnekler
- Node.js'te DynamoDB BatchGetItem — AWS SDK v3 ile aynı toplu okuma.
- Python'da DynamoDB BatchGetItem — boto3 ile aynı toplu okuma.
- AWS CLI ile DynamoDB GetItem — bunun toplu hâle getirdiği tek öğe okuması.
- DynamoDB'de toplu işlemler — sınırlar, kısmi başarısızlık ve toplu işlemenin ne zaman kazandırdığı.
- "Too many items requested for the BatchGetItem call" — bir istekte 100'den fazla anahtar.
- "Provided list of item keys contains duplicates" — bir toplu istekte aynı anahtarın iki kez geçmesi.
References
- BatchGetItem — Amazon DynamoDB API Reference
- batch-get-item — AWS CLI Command Reference
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.