Ukuran hashkey telah melampaui batas ukuran maksimum 2048 byte — "Size of hashkey has exceeded the maximum size limit of 2048 bytes"

TL;DR — Panjang kunci batas DynamoDB: nilai kunci partisi (hash) maksimal 2048 byte, dan nilai kunci pengurutan (rentang) maksimal 1024 byte, diukur sebagai byte UTF-8 (atau biner mentah). Penulisan yang kuncinya melebihi batas ditolak. Persingkat kunci — nilai hash yang panjang, atau pindahkan data besar ke dalam atribut non-kunci.

Apa artinya

ValidationException: One or more parameter values were invalid: Size of hashkey has exceeded the maximum size limit of2048 bytes

# sort-key variant:
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

Mengapa itu terjadi

  • String panjang sebagai kunci partisi — URL, dokumen lengkap, blob yang dikodekan, atau kunci komposit gabungan yang digunakan langsung sebagai nilai kunci.
  • Kunci pengurutan komposit verbose — banyak segmen yang digabungkan dengan # yang jumlahnya melebihi 1024 byte.
  • Base64/data serial dalam sebuah kunci — pengkodean meningkatkan jumlah byte melewati batas.
  • Teks multi-byte — konten non-ASCII dengan pengkodean UTF-8 lebih besar dari jumlah karakter yang disarankan.

Bagaimana cara memperbaikinya

  1. Hash nilai panjang — menyimpan intisari deterministik (misalnya SHA-256, ~32 byte) sebagai kunci dan menyimpan nilai penuh dalam atribut non-kunci terpisah.
  2. Pilih kunci yang lebih ringkas — pengenal alami yang lebih pendek daripada bidang yang besar.
  3. Mempersingkat kunci komposit — memangkas atau menyingkat segmen yang membentuk kunci pengurutan yang digabungkan dengan #.
  4. Pindahkan konten berukuran besar dari kunci ke dalam atribut biasa (yang hanya harus sesuai dengan batas item 400 KB).
  5. Hitung UTF-8 byte, bukan karakter. Teks Emoji dan CJK meluas dengan cepat — string 500 karakter dapat melebihi 2048 byte.

Hubungkan dari DynoTable

Tempelkan nilai kunci draf ke dalam kalkulator ukuran item dan periksa jumlah byte terhadap batas 2048/1024 sebelum Anda menulis. Di DynoTable, staging (⌘S) menangkap kunci berukuran besar pada item pengujian yang dibuka dengan ⌘K.

Saat memperpendek kunci komposit, prototipe membuat kueri di Pembangun Kueri. Ganti profil dengan ⌘P; Uji Koneksi pada Pengaturan → Profil. Lihat Menghubungkan ke AWS dan Instal.

Sumber

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.