Level Bersarang telah melampaui batas yang didukung

TL;DR — DynamoDB memungkinkan Anda menyusun tipe dokumen (memetakan M dan mencantumkan L) di dalam satu sama lain hingga kedalaman 32 level. Struktur yang lebih dalam ditolak dengan ValidationException. Ratakan model data, pisahkan cabang dalam menjadi item terpisah, atau simpan subpohon yang terlalu dalam sebagai string serial tunggal.

Apa artinya

ValidationException: 1 validation error detected: Nesting Levels have exceeded supported limits

# what the engine actually returns, reproduced against DynamoDB Local:
ValidationException: 1 validation error detected: Nesting Levels have exceeded supported limits: Attributes in the item have nested levels beyond supported limit

Mengapa itu terjadi

  • Data yang sangat rekursif — struktur tree/graph (bagan organisasi, rangkaian komentar, kategori bertingkat) diserialkan sebagai peta dalam peta yang melebihi 32 level.
  • Serializer generik — kode yang menyusun JSON bersarang secara sewenang-wenang langsung ke jenis dokumen DynamoDB tanpa pelindung kedalaman.
  • Sarang mandiri yang tidak disengaja — bug yang membungkus item di dalam dirinya berulang kali.
  • Dokumen yang dimigrasi dari database dokumen yang kumpulannya tidak pernah dibatasi.

Bagaimana cara memperbaikinya

  1. Ratakan model — angkat substruktur yang dalam ke dalam atribut tingkat atas atau tata letak kunci komposit, bukan peta yang semakin dalam.
  2. Pisahkan menjadi beberapa item — memodelkan cabang dalam sebagai item terpisah di bawah kunci partisi yang sama (pola kedekatan tabel tunggal).
  3. Buat serial subpohon dalam — simpan bagian yang terlalu dalam sebagai satu atribut string JSON (buram bagi DynamoDB, sehingga kedalaman internalnya tidak dihitung lagi) jika Anda tidak perlu melakukan kueri ke dalamnya.
  4. Tambahkan pelindung kedalaman di lapisan marshalling Anda sehingga dokumen tidak dapat tumbuh melampaui batas secara diam-diam.
  5. Ukur kedalaman sebelum menulis. Telusuri pohon dokumen di serializer Anda dan tolak apa pun di atas 30 level — sisakan ruang untuk satu jalur pembaruan lagi.

Ukur di DynoTable

Periksa atribut bertingkat di DynoTable sebelum Anda menulisnya — buka item dengan ⌘K dan perluas bidang map/list di penampil JSON untuk melihat seberapa dalam struktur dijalankan. Staging (⌘S) memungkinkan Anda melihat pratinjau put/update dan menangkap kesalahan kedalaman sebelum melakukan.

Gunakan kalkulator ukuran item bersamaan dengan pemeriksaan kedalaman — penumpukan yang dalam sering kali mendorong item ke batas 400 KB juga. Ganti profil dengan ⌘P saat menguji terhadap Lokal vs AWS. Pengaturan: Sambungkan ke AWS, 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.