DynamoDB散列键int vs string

var*_*tec 2 python boto amazon-dynamodb

我尝试在DynamoDB中使用UUID的整数表示作为整数哈希键,但是因为错误而失败了:

DynamoDBValidationError: DynamoDBValidationError: 400 Bad Request
{'message': 'Attempting to store more than 38 significant digits in a Number', 
 '__type': 'com.amazon.coral.validate#ValidationException'}
Run Code Online (Sandbox Code Playgroud)

这一方面有意义,因为UUID是128位,最多可以是39位十进制数字.另一方面它让我想知道......

DynamoDB是否存储整数散列键,因为它是十进制表示?使用整数散列键比字符串散列键有什么优势吗?

Jon*_*Jon 6

DynamoDB序列化数字,因此在字符串散列键上使用整数散列键不应该有任何优势.

序列化数字作为String类型发送到Amazon DynamoDB,这最大化了跨语言和库的兼容性,但Amazon DynamoDB将它们作为数学运算的Number类型处理.

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html