DynamoDB:您如何选择主键?

时间:2018-02-11 01:02:38

标签: database database-design nosql amazon-dynamodb primary-key

假设我有这样的数据结构:

  • 查询= Hello
  • 翻译= Bonjour
  • 语言= en-fr
  • CustomerID = XYZ123
  • Project = my_french_project

DynamoDB具有以下限制:

  • 分区键:2KB
  • 排序键:1KB

如果我的"查询"属性需要容纳300KB我如何提出主键?

"查询"是项目唯一的一部分,因此必须是分区键或排序键的一部分正确吗?

我能想到的唯一解决方案是在"查询"但这在技术上允许冲突。 还有另一种方法可以做到这一点吗?或者有没有办法处理碰撞事件?

更新

我决定采用这种结构:

  • CustomerID = XYZ123(分区键)
  • Range = my_french_project:en-fr:8B1A9953C4611296A827ABF8C47804D7(使用查询的MD5排序键)
  • Project = my_french_project
  • 语言= en-fr
  • 查询= Hello
  • 翻译= Bonjour

我相信这允许我在需要时使用排序键上的begins with进行我需要的所有查询。

我认为在具有相同名称和语言的项目中,MD5的冲突极不可能。

仍然想知道是否有更好的方法。

0 个答案:

没有答案