DynamoDB ItemCollectionSizeLimitExceededException
TL;DR — Yalnızca Yerel İkincil İndeksi (LSI) olan tablolarda bu sınır vardır: bir bölüm anahtarını paylaşan tüm öğeler ("öğe koleksiyonu") toplamda en fazla 10 GB olabilir. Bölüm anahtarlarınızdan biri onu aştı. Tek bir bölüm anahtarı sınırsız veri biriktirmeyecek şekilde yeniden tasarlayın — ya da LSI'yi bırakın.
Ne anlama gelir
ItemCollectionSizeLimitExceededException: Collection size exceeded.Bir öğe koleksiyonu, aynı bölüm anahtarı değerine sahip her öğedir — temel tabloda ve tüm LSI'lerinde. LSI'si olmayan tabloların koleksiyon başına boyut sınırı yoktur (bir tablonun genel boyutu kısıtsızdır). LSI'si olan tablolar her koleksiyonu 10 GB ile sınırlar ve bu hata, bir yazmanın bir koleksiyonu onun üzerine iteceği anlamına gelir. Sınır, global ikincil indekslere uygulanmaz.
HTTP 400 olarak döner ve AWS onu yeniden denenebilir olarak listeler — ama bir yeniden deneme yalnızca koleksiyon 10 GB'nin altına geri küçüldüğünde başarılı olur. Okumalara ve koleksiyonun boyutunu azaltan yazmalara (silmeler, öznitelikleri kaldırma veya kırpma) hâlâ izin verilir, böylece kendinizi kurtarabilirsiniz.
Neden olur
- Sıcak/sınırsız bir bölüm anahtarı — bir anahtar (büyük bir kiracı, popüler bir kullanıcı) diğerlerinden çok daha fazla öğe biriktirir.
- İhtiyacınız olmayabilecek bir LSI — 10 GB sınırı yalnızca tablonun bir LSI'si olduğu için vardır.
- Zamanla tek bir bölüm anahtarı altında yalnızca ekleme büyümesi.
Nasıl düzeltilir
- Bölüm anahtarını yeniden parçalayın. Aşırı boyutlu varlığı birden çok bölüm anahtarına bölün (örneğin
TENANT#42#1,TENANT#42#2), böylece tek bir koleksiyon sınırsız büyümesin. - LSI'yi bir GSI ile değiştirin. GSI'lerin kendi bölüm anahtarı vardır ve öğe koleksiyonu boyut sınırı yoktur — çoğu erişim deseni için zaten bir GSI daha iyi seçimdir (ve bir LSI'nin aksine tablo oluşturmadan sonra eklenebilir/kaldırılabilir).
- Soğuk öğeleri sıcak koleksiyondan (ayrı bir tabloya ya da S3'e) arşivleyin.
DynoTable’da yakala
Koleksiyonun boyutu 10 GB'a ulaşmadan önce hangi bölüm anahtarlarının en fazla öğeyi taşıdığını bulun; ⌘K ile tabloyu açın, bölüm anahtarına göre sıralayın ve alışılmadık derecede uzun öğe listelerine sahip anahtarları tarayın. item sana calculator, yeniden parçalamayı planladığınızda öğe başına büyümeyi tahmin etmenize yardımcı olur.
LSI yazma yükseltmesini GSI alternatifiyle karşılaştırmak için pricing calculator'i kullanın. Profilleri ⌘P ile değiştirin; bunları Ayarlar → Profiller altında yapılandırın. Bkz. Connect to AWS ve Install.
Kaynaklar
- Local secondary indexes (2026-07-13 tarihinde doğrulandı)
- Error handling with DynamoDB (2026-07-13 tarihinde doğrulandı)
İlgili hatalar
- Item sana has exceeded the maximum allowed sana — öğe başına 400 KB sınırı.
- ProvisionedThroughputExceededException
- Öğrenin: GSI vs LSI · Item collections
Kaynaklar
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Local secondary indexes — 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ı.