DynamoDB S3 import failed — invalid format

TL;DR — ImportTable がステータス FAILEDFailureCode: ItemValidationError、メッセージ "Some of the items failed validation checks and were not imported." で終了しました。ソースオブジェクトが、宣言した InputFormat/InputCompressionType と一致しないか、アイテムにプライマリキーが欠けています。形式/圧縮をオブジェクトに合わせて修正し、すべてのアイテムがキーを持つことを確認して、インポートを再実行してください。

意味

"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 の S3 からのインポートは、各オブジェクトを ImportTable 呼び出しで宣言した形式と圧縮 に対して検証します。InputFormatDYNAMODB_JSONION、または CSV)と InputCompressionTypeGZIPZSTD、または NONE)はファイル拡張子より優先されます。バイトが宣言どおりに解析されない、またはアイテムにテーブルのプライマリキーがない場合、そのアイテムはスキップされ(インポートは次のアイテムで続行)、ジョブは FAILED で終了します。

発生する理由

  • 形式の不一致DYNAMODB_JSON を指定したが、オブジェクトは実際には CSV(またはプレーンな JSON)で、何も解析されない。
  • 圧縮の不一致 — プレフィックス配下のオブジェクトが異なる圧縮をしている(一部が GZIP、一部が NONE)。すべて同じものを使う必要があります。
  • サポートされない圧縮 — 許可されるのは GZIPZSTDNONE のみ。他のコーデックは失敗します。
  • プライマリキーの欠落 — CSV/JSON アイテムに、宣言されたパーティション(またはソート)キーに一致する列/属性がない: "Missing the key pk in the item."
  • キー型の不一致 — インポートされたキーの型がテーブルの AttributeDefinitions と一致しない(例: 数値キーが文字列としてインポートされる)。
  • プレフィックス配下の解析不能なオブジェクト — プレフィックスに一致するすべてのオブジェクトがデータとして読まれるため、迷い込んだプレースホルダーや不正な形式のファイルが検証に失敗する。

修正方法

  1. InputFormat を実際のバイトに一致させます — CSV ファイル → CSV、DynamoDB JSON → DYNAMODB_JSON、Amazon Ion → ION
  2. プレフィックス配下のすべてのオブジェクトが同じ圧縮を使うようにしInputCompressionType を一致させます(GZIP/ZSTD/NONE)。
  3. 各アイテムがプライマリキーを持つことを確認します — CSV では、宣言された KeySchema に一致する名前でキー列(とヘッダー)を含めます。
  4. キー属性の型を テーブルの AttributeDefinitionsS/N/B)に一致させます。
  5. /aws-dynamodb/imports のログストリーム <import-id>/errorCloudWatch エラーログを読み、アイテムごとの正確な理由を確認します。
  6. プレフィックス配下には解析可能なデータオブジェクトのみを保ちます。コンソールでフォルダを作成するのではなく、CLI/SDK 経由でデータをアップロードします。

既存のデータからインポートファイルを組み立てていますか?DynoTable デスクトップアプリ は DynamoDB JSON をエクスポートしてプレビューするため、オブジェクトを S3 にプッシュする前に、形式とプライマリキーの存在を検証できます。

DynoTable ワークベンチ

アップロードの前にインポートファイルを検証しましょう — DynoTable からサンプルのアイテムを DynamoDB JSON として書き出し(⌘K → アイテムをコピー)、JSON コンバーターでキー属性を確認します。大きなオブジェクトがパース失敗の原因になっているときは、アイテムサイズ計算ツールでサイズを確かめてください。

S3 のアカウント用プロファイルは Settings → Profiles で設定し、Test Connection を実行します。切り替えは ⌘P です。AWS に接続するインストールを参照してください。

出典

関連するエラー

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。