Number overflow. Attempting to store a number with magnitude larger than supported range
요약 — 숫자가 DynamoDB의 한도 밖입니다. N 타입은 대략 1E-130과 9.9999…E+125 사이의 크기로 최대 38자리 정밀도를 보유합니다. 그 범위를 넘는 값 — 또는 38개를 초과하는 유효 숫자를 가진 값 — 은 예외로 거부됩니다. 큰 ID와 고정밀도 값을 숫자가 아니라 문자열로 저장하세요.
무엇을 의미하는가
ValidationException: 1 validation error detected: Number overflow. Attempting to store a number with magnitude larger than supported rangeDynamoDB의 Number 타입은 제한된 범위와 38개 유효 숫자를 가진 십진수입니다. 이 ValidationException(HTTP 400)은 보낸 값이 그 크기를 초과했거나 — 언어 런타임이 긴 숫자 문자열을 범위를 넘어선 부동 소수점 숫자로 바꿨다는 뜻입니다. 숫자로는 재시도할 수 없습니다; 값을 다르게 표현해야 합니다.
왜 발생하는가
- 진짜 거대한 숫자 — 약
9.9E+125보다 큰 값(또는 크기가1E-130보다 작은 양수 값). - 부동 소수점으로 파싱된 긴 숫자 문자열 — 예:
Number()/parseFloat()를 거친 120자리 계정/참조 번호가8.04e+126같은 것이 되어 오버플로. 흔한 실제 트리거입니다. - 38개를 초과하는 유효 숫자 — DynamoDB의 Number 타입은 최대 38자리 정밀도를 보유하며, 그것을 초과하면 예외가 발생합니다.
- 범위를 넘어 커진 계산된 값(곱, 거듭제곱).
어떻게 해결하는가
- 숫자가 아니라 문자열(
S)로 저장하세요. 계산하지 않는 큰 식별자, 계정 번호, 또는 해시는 문자열이어야 합니다 — 이는 크기 한도와 38자리 정밀도 상한을 모두 우회합니다. - ID 같은 문자열을 숫자로 파싱하지 마세요 — 100자리 참조를 처음부터 끝까지 문자열로 유지하세요. 그것을 부동 소수점으로 파싱하는 것이 오버플로를 만듭니다.
- 숫자 속성을 범위 안에 유지하세요 — DynamoDB Number는 최대 38자리 정밀도와 약
9.9E+125까지의 크기를 지원합니다. 값이 맞도록 설계하거나 분할/스케일하세요. - 고정밀도 십진수의 경우 십진수 타입(Python
Decimal, big-decimal 라이브러리)에서 변환한 문자열로 숫자를 전달해 DynamoDB에 도달하기 전에 정밀도가 손실되지 않도록 하세요. - 선행 0 / 정확성을 보존하려면 문자열로 저장하세요 — Number 타입은 정규화하며 어차피 선행 0을 유지할 수 없습니다.
FAQ
DynamoDB의 숫자 한도는 무엇인가요? Number 타입은 최대 38자리 정밀도와 약 1E-130에서 9.9999999999999999999999999999999999999E+125(양수) 및 그 음수의 크기를 지원합니다. 그 범위 밖의 값은 "Number overflow"를 발생시킵니다.
DynamoDB에 매우 큰 숫자를 어떻게 저장하나요? 산술을 하지 않는다면 Number(N)가 아니라 문자열(S) 속성으로 저장하세요 — 이는 38자리 정밀도 상한과 크기 한도를 완전히 피합니다. 정렬 가능한 숫자 문자열의 경우 어휘 순서가 숫자 순서와 일치하도록 0으로 채우세요.
관련 오류
- Float types are not supported. Use Decimal types instead — boto3 정밀도 대응물.
- One or more parameter values were invalid — 더 넓은 값 검증 계열.
- 학습: DynamoDB data types · Zero-padding sort keys
참고 자료
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- AttributeValue — Amazon DynamoDB API Reference
공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.