Échec d'import DynamoDB depuis S3 — format invalide

TL;DR — ImportTable s'est terminé avec le statut FAILED, FailureCode: ItemValidationError, et le message « Some of the items failed validation checks and were not imported. » Les objets source ne correspondent pas au InputFormat/InputCompressionType que tu as déclaré, ou les éléments n'ont pas de clé primaire. Corrige le format/la compression pour qu'ils correspondent aux objets, confirme que chaque élément porte la clé, et relance l'import.

Ce que ça signifie

"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

L'import DynamoDB depuis S3 valide chaque objet par rapport au format et à la compression que tu as déclarés dans l'appel ImportTable — le InputFormat (DYNAMODB_JSON, ION ou CSV) et le InputCompressionType (GZIP, ZSTD ou NONE) prennent le pas sur l'extension de fichier. Si les octets ne s'analysent pas comme déclaré, ou si un élément n'a pas la clé primaire de la table, cet élément est ignoré (l'import continue avec l'élément suivant) et le job se termine en FAILED.

Pourquoi ça arrive

  • Incohérence de format — tu as spécifié DYNAMODB_JSON mais les objets sont en réalité du CSV (ou du JSON simple), donc rien ne s'analyse.
  • Incohérence de compression — les objets sous le préfixe sont compressés différemment (certains en GZIP, d'autres en NONE) ; ils doivent tous utiliser la même.
  • Compression non prise en charge — seules GZIP, ZSTD ou NONE sont autorisées ; les autres codecs échouent.
  • Clé primaire manquante — un élément CSV/JSON n'a aucune colonne/aucun attribut correspondant à la clé de partition (ou de tri) déclarée : « Missing the key pk in the item. »
  • Incohérence de type de clé — le type de la clé importée ne correspond pas aux AttributeDefinitions de la table (par ex. une clé numérique importée comme chaîne).
  • Un objet non analysable sous le préfixe — chaque objet correspondant au préfixe est lu comme donnée, donc un fichier de remplissage égaré ou malformé échoue à la validation.

Comment le corriger

  1. Fais correspondre InputFormat aux octets réels — fichiers CSV → CSV, DynamoDB JSON → DYNAMODB_JSON, Amazon Ion → ION.
  2. Fais en sorte que chaque objet sous le préfixe utilise la même compression, et règle InputCompressionType en conséquence (GZIP/ZSTD/NONE).
  3. Assure-toi que chaque élément a la clé primaire — pour le CSV, inclus la colonne de clé (et l'en-tête) avec un nom correspondant au KeySchema déclaré.
  4. Fais correspondre les types d'attribut de clé aux AttributeDefinitions de la table (S/N/B).
  5. Lis les journaux d'erreur CloudWatch dans /aws-dynamodb/imports, flux de journal <import-id>/error, pour la raison exacte par élément.
  6. Ne garde que des objets de données analysables sous le préfixe ; téléverse les données via CLI/SDK plutôt que de créer des dossiers dans la console.

Tu construis le fichier d'import à partir de données existantes ? L'application de bureau DynoTable exporte et prévisualise le DynamoDB JSON, pour que tu puisses vérifier le format et la présence de la clé primaire avant de pousser les objets vers S3.

Workbench DynoTable

Valide tes fichiers d'import avant l'envoi — exporte un élément d'exemple depuis DynoTable en JSON DynamoDB (⌘K → copier l'élément) et confirme les attributs de clé dans le convertisseur JSON. Vérifie la taille des éléments avec le calculateur de taille d'élément quand de gros objets provoquent des échecs d'analyse.

Configure le profil du compte S3 sous Settings → Profiles avec Test Connection ; change avec ⌘P. Vois Se connecter à AWS et Installation.

Sources

Erreurs liées

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.