DynamoDB S3 error de importación: formato no válido

TL;DR: ImportTable terminó con el estado FAILED, FailureCode: ItemValidationError y el mensaje "Algunos de los elementos no superaron las comprobaciones de validación y no se importaron". Los objetos de origen no coinciden con el InputFormat/InputCompressionType que declaró, o a los elementos les falta la clave principal. Corrija el formato/compresión para que coincida con los objetos, confirme que cada elemento tenga la clave y vuelva a ejecutar la importación.

Qué 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

La importación de DynamoDB desde S3 valida cada objeto contra el formato y la compresión que declaraste en la llamada a ImportTable — el InputFormat (DYNAMODB_JSON, ION o CSV) y el InputCompressionType (GZIP, ZSTD o NONE) tienen prioridad sobre la extensión del archivo. Si los bytes no se interpretan según lo declarado, o a un Item le falta la clave primaria de la tabla, ese Item se omite (la importación continúa con el siguiente Item) y el trabajo termina en FAILED.

Por qué ocurre

  • Desajuste de formato — especificaste DYNAMODB_JSON pero los objetos son en realidad CSV (o JSON plano), así que nada se interpreta.
  • Desajuste de compresión — los objetos bajo el prefijo están comprimidos de forma distinta (algunos GZIP, algunos NONE); todos deben usar la misma.
  • Compresión no admitida — solo se permiten GZIP, ZSTD o NONE; otros códecs fallan.
  • Clave primaria faltante — un Item CSV/JSON no tiene columna/atributo que coincida con la clave de partición (o de ordenación) declarada: "Missing the key pk in the item."
  • Desajuste de tipo de clave — el tipo de la clave importada no coincide con los AttributeDefinitions de la tabla (p. ej. una clave numérica importada como cadena).
  • Un objeto no interpretable bajo el prefijo — cada objeto que coincida con el prefijo se lee como datos, así que un placeholder perdido o un archivo malformado falla la validación.

Cómo solucionarlo

  1. Haz que InputFormat coincida con los bytes reales — archivos CSV → CSV, DynamoDB JSON → DYNAMODB_JSON, Amazon Ion → ION.
  2. Haz que cada objeto bajo el prefijo use la misma compresión, y establece InputCompressionType para que coincida (GZIP/ZSTD/NONE).
  3. Asegúrate de que cada Item tenga la clave primaria — para CSV, incluye la columna de clave (y la cabecera) con un nombre que coincida con el KeySchema declarado.
  4. Haz coincidir los tipos de atributo de clave con los AttributeDefinitions de la tabla (S/N/B).
  5. Lee los logs de error de CloudWatch en /aws-dynamodb/imports, log stream <import-id>/error, para el motivo exacto por Item.
  6. Mantén bajo el prefijo solo objetos de datos interpretables; sube los datos mediante CLI/SDK en lugar de crear carpetas en la consola.

Workbench de DynoTable

Valida los archivos de importación antes de subirlos — exporta un Item de muestra desde DynoTable como DynamoDB JSON (⌘K → copiar Item) y confirma los atributos de clave en el conversor de JSON. Comprueba los tamaños de Item con la calculadora de tamaño de Item cuando los objetos grandes provoquen fallos de parseo.

Configura el perfil de la cuenta de S3 en Ajustes → Perfiles con Test Connection; cambia de perfil con ⌘P. Consulta Conectar a AWS e Instalar.

Fuentes

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.