DynamoDB S3 가져오기 실패 — 잘못된 형식
TL;DR — ImportTable이 FAILED, FailureCode: ItemValidationError 상태로 완료되었으며 메시지 "일부 항목이 유효성 검사에 실패하여 가져오지 못했습니다." 소스 개체가 선언한 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 itemS3에서 DynamoDB 가져오기는 ImportTable 호출에서 선언한 형식 및 압축에 대해 각 객체의 유효성을 검사합니다. 즉, InputFormat(DYNAMODB_JSON, ION 또는 CSV) 및 InputCompressionType(GZIP, ZSTD 또는 NONE)가 파일 확장자보다 우선합니다. 바이트가 선언된 대로 구문 분석되지 않거나 항목에 테이블의 기본 키가 부족한 경우 해당 항목을 건너뛰고(다음 항목에서 가져오기가 계속됨) 작업이 FAILED에 종료됩니다.
왜 발생하는가
- 형식 불일치 —
DYNAMODB_JSON을 지정했지만 개체가 실제로는 CSV(또는 일반 JSON)이므로 구문 분석할 내용이 없습니다. - 압축 불일치 — 접두사 아래의 개체가 다르게 압축됩니다(일부 GZIP, 일부 NONE). 모두 동일한 것을 사용해야 합니다.
- 지원되지 않는 압축 —
GZIP,ZSTD또는NONE만 허용됩니다. 다른 코덱은 실패합니다. - 기본 키 누락 — CSV/JSON 항목에 선언된 파티션(또는 정렬) 키와 일치하는 열/속성이 없습니다. "항목에 키 pk가 누락되었습니다."
- 키 유형 불일치 — 가져온 키의 유형이 테이블의
AttributeDefinitions(예: 문자열로 가져온 숫자 키)와 일치하지 않습니다. - 접두사 아래의 구문 분석할 수 없는 개체 — 접두사와 일치하는 모든 개체는 데이터로 읽혀지므로 잘못된 자리 표시자나 형식이 잘못된 파일은 유효성 검사에 실패합니다.
어떻게 해결하는가
InputFormat를 실제 바이트와 일치시키세요 — CSV 파일 →CSV, DynamoDB JSON →DYNAMODB_JSON, Amazon Ion →ION.- 접두사 아래의 모든 개체가 동일한 압축을 사용하도록 만들고
InputCompressionType를 일치하도록 설정합니다(GZIP/ZSTD/NONE). - 각 항목에 기본 키가 있는지 확인하세요 — CSV의 경우 선언된
KeySchema와 일치하는 이름을 가진 키 열(및 헤더)을 포함합니다. - 키 속성 유형을 테이블의
AttributeDefinitions(S/N/B)와 일치시킵니다. - 정확한 항목별 이유는
/aws-dynamodb/imports, 로그 스트림<import-id>/error에서 CloudWatch 오류 로그를 읽어보세요. - 접두사 아래에 구문 분석 가능한 데이터 객체만 유지; 콘솔에서 폴더를 생성하는 대신 CLI/SDK를 통해 데이터를 업로드하세요.
DynoTable 워크벤치
업로드 전 가져오기 파일 검증 — DynoTable에서 샘플 항목을 DynamoDB JSON(⌘K → 항목 복사)으로 내보내고 JSON converter에서 주요 속성을 확인합니다. 큰 개체로 인해 구문 분석이 실패하는 경우 item size calculator로 항목 크기를 확인하세요.
설정 → 프로필에서 연결 테스트를 사용하여 S3 계정 프로필을 구성합니다. ⌘P로 전환하세요. Connect to AWS 및 Install를 참조하세요.
출처
- Import format quotas and validation (2026-07-13 검증)
- ImportTable — Amazon DynamoDB API Reference (2026-07-13 검증)
관련 오류
- ResourceInUseException — 가져오기 대상 테이블 이름이 이미 존재합니다.
- The provided key element does not match the schema — 키 유형이 일치하지 않습니다.
- 학습: DynamoDB JSON marshalling · Export DynamoDB to CSV
참고 자료
- Import format quotas and validation — Amazon DynamoDB Developer Guide
- Requesting a table import in DynamoDB — Amazon DynamoDB Developer Guide
- ImportTable — Amazon DynamoDB API Reference
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.