【问题标题】:DnnamoDB Table with hash key and no range key具有哈希键且没有范围键的 DynamoDB 表
【发布时间】:2016-04-06 22:45:41
【问题描述】:
例如,我有一位艺术家和艺术品。所以在我的艺术家表中,只有一个唯一的哈希键(艺术家 ID),没有范围键。然后,我有一个带有哈希键(艺术家 ID)和愤怒键(艺术品 ID)的艺术品表。
我试图了解 dynamodb 将如何处理艺术家表至分区并将项目分配给分区,因为每一行都是唯一的。
1) 当我需要通过 id 拉出艺术家时,我唯一的选择是扫描表吗?或者如果我只使用哈希 id 进行查询会发生什么?
2) 所有这些物品是如何“隐藏”起来的?就节点/分区而言,dynamodb 如何处理这个问题?
3) 是否有一个通用的设计模式来处理唯一且没有范围键的项目?
谢谢,在这个确切的主题上找到任何东西并寻求帮助。
【问题讨论】:
标签:
amazon-web-services
hash
range
amazon-dynamodb
【解决方案1】:
首先,“哈希键”在 Amazon DynamoDB 文档中称为“分区键”。并且“范围键”在文档中称为“排序键”。如果您使用这些搜索词,它可能会帮助您找到有关这些内容的信息。
1) 是我需要拉起表格时扫描表格的唯一选择
按 id 的艺术家,或者如果我只使用哈希 id 进行查询会发生什么?
排序键是可选的,您只需将分区键传递给查询即可使用该键返回记录。在这种情况下,您不需要进行全表扫描。
2) 所有这些项目如何“隐藏”存储? dynamodb如何
就节点/分区处理这个问题?
DynamoDB 将根据分区键对您的数据进行分区。我不认为他们已经确切地公布了它是如何在幕后工作的(如果我错了,请纠正我)。 they have said 是,如果每条记录都有一个唯一的分区键值,那么您的数据将分布均匀。
3) 是否有一个通用的设计模式来处理以下项目?
唯一且没有范围键?
是的,在这种情况下排序键是可选的,所以如果没有,就不要使用。
通读官方文档的Guidelines for Working with Tables 部分对理解这些东西真的很有帮助。