DynamoDB dizi saklayabilir mi?
Evet. DynamoDB dizileri List (L) türünü kullanarak saklar — dizeler, sayılar, boolean değerler, null'lar, eşlemeler ve iç içe listeler dahil karışık türleri tutabilen sıralı bir koleksiyon. Benzersiz değerlerden oluşan sırasız koleksiyonlar için ayrıca String, Number ve Binary Set türlerini sunar. Öğe 400 KB'ın altında kaldığı sürece bir eleman sayısı sınırı yoktur.
Listeler (sıralı diziler)
Bir List sırayı korur; yinelenenlere ve karışık türlere izin verir. Doğrudan bir JSON dizisine eşlenir ve 32 düzey derinliğe kadar iç içe geçebilir (eşleme listeleri, liste listeleri).
Belgelenmiş o sınır en alttaki değeri de sayar. Bir dizeyi 31 iç içe L kapsayıcısına sarmak sorunsuz yazılır; 32'nci kapsayıcı başarısız olur ve aynı sınır iç içe M için de geçerlidir:
ValidationException: Nesting Levels have exceeded supported limits:
Attributes in the item have nested levels beyond supported limitKümeler (benzersiz değerler)
- String Set (SS), Number Set (NS), Binary Set (BS) tek bir türden benzersiz değerleri sırasız olarak tutar.
- Bir küme boş olamaz (bu bir
ValidationExceptionyükseltir).
Üyelik ve benzersizlik önemliyse Set kullanın; sıra ya da karışık türler önemliyse List kullanın.
Kümeler yeniden sıralar ve yinelenenleri reddeder
["zulu", "alpha", "mike"]'yi bir String Set olarak saklayın; ["alpha", "mike", "zulu"] olarak geri okunur. Bir Number Set sayısal olarak sıralar: ["30", "4", "100"] ["4", "30", "100"] döndürür. Aynı değerler bir List'te yazdığınız sırayla geri gelir.
Tekrar eden bir üye, sessiz bir yinelenen ayıklama değil, sert bir başarısızlıktır:
ValidationException: Input collection contains duplicatesVe bir küme asla boş olamayacağı için, son üyesini DELETE etmek özniteliği kaldırır. Geri boş bir küme bekleyen kod bunun yerine eksik bir öznitelik alır; dolayısıyla uzunluğun sıfır olmasına değil, attribute_exists'e göre sınayın.
Gerçekte kaç eleman sığar
"Eleman sayısı sınırı yok" doğrudur ve üzerine hareket etmesi zordur. Kullanışlı yanıt, 400 KB'ın bir elemanın maliyetine bölümüdür: bir liste 3 bayt ek yük taşır, sonra her elemanın kendi boyutu artı 1 bayt gelir.
Tek karakterlik bir bölüm anahtarı altındaki 36 karakterlik UUID dizeleri için bu 11.070 eleman eder. 11.071'inciyi eklemek reddedilir:
ValidationException: Item size has exceeded the maximum allowed sizeÖğe boyutu hesaplayıcısı o iki öğeyi 409.599 ve 409.636 bayt olarak boyutlandırır; yani 409.600 baytlık çizgiyi tam olarak motorun çizdiği yere çizer. Büyük olanı yazmak 400 yazma birimine mal olur.
Daha derine inin
Bkz. DynamoDB veri türleri ve iç içe yapıları JSON dönüştürücü ile çevirin. Liste ve küme özniteliklerini düzenlemek için DynoTable'ı indirin.
Kaynaklar
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.
2026-07-28 tarihinde @aws-sdk/client-dynamodb 3.1095.0 üzerinden DynamoDB Local 3.3.0'a karşı ölçüldü ve yeniden üretildi — yukarıdaki eleman sayısı, iç içe geçme sınırı, küme gidiş-dönüşleri ve hata dizeleri tahmin değil, motor çıktısıdır. Hata dizelerinin ifadesi canlı hizmette farklı olabilir.