Aggregated sana of all range keys has exceeded the sana limit of 1024 bytes

TL;DR — DynamoDB, bir sıralama (aralık) anahtarı değerini 1024 baytla ve bir bölüm (hash) anahtarı değerini 2048 baytla (UTF-8 kodlanmış olarak ölçülür) sınırlar. Sıralama anahtarı değeriniz 1024 baytı aştı — genellikle aşırı doldurulmuş bir bileşik anahtar. Onu kısaltın, uzun kısmı hash'leyin ya da yığını anahtar olmayan bir özniteliğe taşıyın.

Ne anlama gelir

ValidationException: One or more parameter values were invalid: Aggregated size of all range keys has exceeded the size limit of 1024 bytes

# on DynamoDB Local you get one combined sentence instead, naming neither key:
ValidationException: Hash primary key values must be under 2048 bytes, and range primary key values must be under 1024 bytes

Bu, 400 KB öğe sınırından ayrı, kesin bir anahtar boyutu sınırıdır. Sıralama anahtarının değeri (UTF-8 bayt olarak ölçülür) en fazla 1024 bayt olabilir; bölüm anahtarının değeri en fazla 2048. Onu aşın ve yazma, bir HTTP 400 ValidationException ile reddedilir — anahtar daha küçük olana kadar yeniden denenebilir olmayan bir istek hatası.

Neden olur

  • Aşırı uzun bileşik sıralama anahtarları — değer 1024 baytı aşana kadar birçok segmenti birleştirmek (ORG#…#PROJECT#…#DOC#…#veryLongTitle…).
  • Büyük bir değeri anahtara kodlamak — tam bir URL, yol, açıklama ya da serileştirilmiş bir ikili nesneyi sıralama anahtarına koymak.
  • Çok baytlı karakterler — ASCII olmayan metin UTF-8'de her biri 2–4 bayta mal olur, bu yüzden "kısa görünen" bir dize bayt sınırının üzerinde olabilir.
  • Bölüm anahtarı çok büyük — 2048 baytlık hash-anahtarı sınırına karşı aynı hata sınıfı.

Nasıl düzeltilir

  1. Bileşik anahtarı yalnızca gerçekten sorguladığınız segmentlere kırpın; okunabilir dolguyu bırakın.
  2. Uzun kısmı hash'leyin — kısa belirlenimci bir özet (örneğin kesilmiş bir SHA-256) anahtarda saklayın ve tam değeri normal bir öznitelik olarak tutun.
  3. Yığını anahtardan çıkarın — sıralama anahtarı, öğeyi tanımlamalı/sıralamalıdır, yükünü taşımamalıdır; uzun metni anahtar olmayan bir özniteliğe koyun (ki 400 KB öğe bütçesinden yararlanır).
  4. Karakter değil, bayt olarak ölçün — özellikle ASCII olmayan veri için UTF-8 kodlayın ve sayın.

DynoTable'da görüntüleyin

item sana calculator'a bir taslak öğe yapıştırın ve yazmadan önce temel nitelik bayt sayılarını kontrol edin. DynoTable'da ⌘K ile tabloyu açın, aşamalandırmalı bir test öğesi oluşturun (⌘S) ve anahtar uyumlarını onaylayın; büyük boyutlu anahtarlar işleme alınmadan önce başarısız olur.

Bileşik anahtarları yeniden tasarlarken, sorguları daha kısa anahtar bölümleriyle Query Builder'de prototipleyin. Profilleri ⌘P ile değiştirin; Ayarlar → Profiller'de Bağlantıyı Test Et. Bkz. Connect to AWS ve Install.

Kaynaklar

İlgili hatalar

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.