DynamoDB S3 importazione non riuscita: formato non valido

TL;DR — ImportTable è terminato con lo stato FAILED, FailureCode: ItemValidationError e il messaggio "Alcuni elementi non hanno superato i controlli di convalida e non sono stati importati." Gli oggetti di origine non corrispondono a InputFormat/InputCompressionType dichiarato oppure agli elementi manca la chiave primaria. Correggi il formato/compressione in modo che corrisponda agli oggetti, conferma che ogni elemento contiene la chiave ed esegui nuovamente l'importazione.

Cosa significa

"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

DynamoDB L'importazione da S3 convalida ciascun oggetto rispetto al formato e alla compressione dichiarati nella chiamata ImportTable: InputFormat (DYNAMODB_JSON, ION o CSV) e InputCompressionType (GZIP, ZSTD o NONE) hanno la precedenza sull'estensione del file. Se i byte non vengono analizzati come dichiarato o se a un elemento manca la chiave primaria della tabella, quell'elemento viene ignorato (l'importazione continua con l'elemento successivo) e il lavoro termina con "FAILED".

Perché succede

  • Mancata corrispondenza del formato: hai specificato DYNAMODB_JSON ma gli oggetti sono in realtà CSV (o semplici JSON), quindi non viene analizzato nulla.
  • Mancata corrispondenza della compressione: gli oggetti sotto il prefisso vengono compressi in modo diverso (alcuni GZIP, altri NONE); devono usare tutti lo stesso.
  • Compressione non supportata: sono consentiti solo GZIP, ZSTD o NONE; altri codec falliscono.
  • Chiave primaria mancante: un elemento CSV/JSON non ha colonne/attributi corrispondenti alla chiave di partizione (o ordinamento) dichiarata: "Manca la chiave pk nell'elemento."
  • Mancata corrispondenza del tipo di chiave: il tipo di chiave importata non corrisponde alle AttributeDefinitions della tabella (ad esempio una chiave numerica importata come stringa).
  • Un oggetto non analizzabile sotto il prefisso: ogni oggetto che corrisponde al prefisso viene letto come dati, quindi un segnaposto vagante o un file non corretto non supera la convalida.

Come risolverlo

  1. Fai in modo che InputFormat corrisponda ai byte effettivi — File CSV → CSV, DynamoDB JSON → DYNAMODB_JSON, Amazon Ion → ION.
  2. Fai in modo che ogni oggetto sotto il prefisso utilizzi la stessa compressione e imposta InputCompressionType in modo che corrisponda (GZIP/ZSTD/NONE).
  3. Assicurati che ogni elemento abbia la chiave primaria: per CSV, includi la colonna chiave (e l'intestazione) con un nome che corrisponda al KeySchema dichiarato.
  4. Abbina i tipi di attributi chiave alle AttributeDefinitions della tabella (S/N/B).
  5. Leggere i log degli errori di CloudWatch in "/aws-dynamodb/imports", flusso di log "/error", per il motivo esatto per elemento.
  6. Mantieni solo oggetti dati analizzabili sotto il prefisso; caricare i dati tramite CLI/SDK anziché creare cartelle nella console.

Workbench DynoTable

Convalida i file di importazione prima del caricamento: esporta un elemento campione da DynoTable come DynamoDB JSON (⌘K → copia elemento) e conferma gli attributi chiave nel convertitore JSON. Controlla le dimensioni degli elementi con il calcolatore delle dimensioni degli elementi quando oggetti di grandi dimensioni causano errori di analisi.

Configura il profilo dell'account S3 in Impostazioni → Profili con Connessione di prova; cambia con ⌘P. Consulta Connetti a AWS e Installa.

Fonti

Errori correlati

Riferimenti

Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale del AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.