DynamoDB S3 import failed — invalid format

TL;DR — ImportTable, FAILED durumu, FailureCode: ItemValidationError ve "Some of the items failed validation checks and were not imported." mesajıyla bitti. Kaynak nesneler, bildirdiğiniz InputFormat/InputCompressionType ile eşleşmiyor ya da öğelerde birincil anahtar eksik. Biçimi/sıkıştırmayı nesnelerle eşleşecek şekilde düzeltin, her öğenin anahtarı taşıdığını doğrulayın ve içe aktarmayı yeniden çalıştırın.

Ne anlama gelir

"FailureCode": "ItemValidationError",
"FailureMessage": "Some of the items failed validation checks and were not
imported. Please check CloudWatch error logs for more details."

# In /aws-dynamodb/imports CloudWatch logs:
ValidationException: One or more parameter values were invalid: Missing the key pk in the item

S3'ten DynamoDB İçe Aktarma, her nesneyi ImportTable çağrısında bildirdiğiniz biçim ve sıkıştırmaya karşı doğrular — InputFormat (DYNAMODB_JSON, ION veya CSV) ve InputCompressionType (GZIP, ZSTD veya NONE), dosya uzantısına göre önceliklidir. Baytlar bildirildiği gibi ayrıştırılmazsa ya da bir öğede tablonun birincil anahtarı yoksa, o öğe atlanır (içe aktarma sonraki öğeyle devam eder) ve iş FAILED biter.

Neden olur

  • Biçim uyuşmazlığıDYNAMODB_JSON belirttiniz ama nesneler aslında CSV (ya da düz JSON), bu yüzden hiçbir şey ayrıştırılmıyor.
  • Sıkıştırma uyuşmazlığı — önekin altındaki nesneler farklı şekilde sıkıştırılmış (bazıları GZIP, bazıları NONE); hepsi aynısını kullanmalıdır.
  • Desteklenmeyen sıkıştırma — yalnızca GZIP, ZSTD veya NONE'a izin verilir; diğer kodlayıcılar başarısız olur.
  • Eksik birincil anahtar — bir CSV/JSON öğesinde bildirilen bölüm (veya sıralama) anahtarıyla eşleşen bir sütun/öznitelik yok: "Missing the key pk in the item."
  • Anahtar türü uyuşmazlığı — içe aktarılan anahtarın türü tablonun AttributeDefinitions'ıyla eşleşmiyor (örneğin string olarak içe aktarılan sayısal bir anahtar).
  • Önekin altında ayrıştırılamayan bir nesne — önekle eşleşen her nesne veri olarak okunur, dolayısıyla başıboş bir yer tutucu ya da hatalı biçimlendirilmiş bir dosya doğrulamayı geçemez.

Nasıl düzeltilir

  1. InputFormat'ı gerçek baytlarla eşleştirin — CSV dosyaları → CSV, DynamoDB JSON → DYNAMODB_JSON, Amazon Ion → ION.
  2. Önekin altındaki her nesnenin aynı sıkıştırmayı kullanmasını sağlayın ve InputCompressionType'ı eşleşecek şekilde ayarlayın (GZIP/ZSTD/NONE).
  3. Her öğenin birincil anahtara sahip olduğundan emin olun — CSV için, bildirilen KeySchema ile eşleşen bir adla anahtar sütununu (ve başlığı) dahil edin.
  4. Anahtar öznitelik türlerini tablonun AttributeDefinitions'ıyla eşleştirin (S/N/B).
  5. Tam öğe başına neden için /aws-dynamodb/imports, <import-id>/error günlük akışındaki CloudWatch hata günlüklerini okuyun.
  6. Önekin altında yalnızca ayrıştırılabilir veri nesneleri tutun; konsolda klasörler oluşturmak yerine veriyi CLI/SDK aracılığıyla yükleyin.

İçe aktarma dosyasını mevcut veriden mi oluşturuyorsunuz? DynoTable masaüstü uygulaması DynamoDB JSON'u dışa aktarır ve önizler, böylece nesneleri S3'e göndermeden önce biçimi ve birincil anahtarın bulunduğunu doğrulayabilirsiniz.

DynoTable workbench

Yüklemeden önce içe aktarılan dosyaları doğrulayın — DynoTable'den örnek bir öğeyi DynamoDB JSON (⌘K → öğeyi kopyala) olarak dışa aktarın ve JSON converter'deki anahtar nitelikleri onaylayın. Büyük nesneler ayrıştırma hatalarına neden olduğunda öğe boyutlarını item sana calculator ile kontrol edin.

S3 hesap profilini Ayarlar → Profiller altında Bağlantıyı Test Et ile yapılandırın; ⌘P ile değiştirin. 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.