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_JSONIONCSV)和 InputCompressionTypeGZIPZSTDNONE)優先於副檔名。如果位元組無法按宣告解析,或者某個項目缺少表的主索引鍵,那個項目會被跳過(匯入繼續處理下一個項目),而作業以 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. 讓鍵屬性型別與表的 AttributeDefinitions 匹配S/N/B)。
  5. 閱讀 CloudWatch 錯誤日誌,位於 /aws-dynamodb/imports,日誌流 <import-id>/error,獲取確切的逐項目原因。
  6. 在字首下只保留可解析的資料物件;透過 CLI/SDK 上傳資料,而不是在主控台中建立資料夾。

在從現有資料構建匯入檔案?DynoTable 桌面應用會匯出並預覽 DynamoDB JSON,讓你在把物件推送到 S3 之前核實格式以及主索引鍵是否存在。

DynoTable 工作臺

上傳前驗證匯入檔案 - 從DynoTable匯出示例項目為DynamoDBJSON(⌘K→複製項目)並確認JSON converter中的關鍵屬性。當大物件導致解析失敗時,使用 item size calculator 檢查項目大小。在“設定”→“設定檔案”下使用Test Connection配置 S3 帳戶設定檔案;用 ⌘P 切換。參見連線 AWS安裝

來源

相關錯誤

參考資料

最後核實於 2026-07-13,依據上方連結的 AWS 官方文件。

不必透過主控台就能操作 DynamoDB

一款快速的 DynamoDB 桌面用戶端,可執行 DynamoDB 無法執行的真正 SQL — JOINs、GROUP BY、聚合 — 並支援視覺化編輯與使用你自己的 Bedrock 金鑰的 AI 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。