【发布时间】:2016-03-14 23:27:07
【问题描述】:
我是第一次涉足 DynamoDB(使用 boto3),但我不确定如何定义我的分区键。我习惯了SQL,在这里你可以使用AUTO_INCREMENT来确保Key总是增加。
我在 DynamoDB 中没有看到这样的选项 - 相反,当使用 put_item 时,“主键属性是必需的” - 我认为这意味着我必须明确定义值(事实上,如果我把它关掉,我得到botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Missing the key id in the item)
如果已经有 id 为 1、2、3、...N 的行,我自然希望我插入的下一行具有主键 N+1。但我不知道如何生成 - here 给出的解决方案都是不完美的。
我是否应该独立生成主键值,也许通过散列项目的其他值?如果我这样做,是不是有(小)散列冲突的机会?话又说回来,既然 DynamoDB 似乎确定了partition based on a hash of the Partition Key,我有什么理由不简单地使用一个随机的足够长的字符串?
【问题讨论】:
标签: amazon-web-services primary-key amazon-dynamodb boto3