【发布时间】:2021-06-16 16:36:52
【问题描述】:
我最近从 Cassandra 过渡到 DynamoDB,发现两者之间存在差异(至少对我来说非常重要)。这些术语有些不同,因此为简单起见,我将它们称为partition key 和clustering key。
在 Cassandra 中,我们有一个称为 composite key 的概念 - 分区键可以是多列值,也可以是集群键。但是,DynamoDB 中似乎没有这样的概念。 AWS document 提到了composite,但这只是意味着可以通过
分区键和排序键——称为复合主键,这种类型的键由两个属性组成。第一个属性是分区键,第二个属性是排序键。
我过去经常使用多列值(在 Cassandra 的意义上是 composite)作为键,所以当我意识到 DynamoDB 不支持它时我有点震惊。我知道像this post 这样的连接总是一种选择。我的问题是:
- 将多列值作为分区键是一种反模式吗?集群键也是如此吗?
- 多列键会导致性能下降吗?
- 如果没有性能下降,那么这两种实现背后的其他权衡是什么?
【问题讨论】:
-
这里解释了 DynamoDB 表的键 - aws.amazon.com/blogs/database/…
-
请一次只问一个问题。
-
@Aaron 哦,谢谢你的提醒,以前不知道这个规则...对于像我这样的新手,这里有一个相关的帖子:) meta.stackexchange.com/questions/222735/…
标签: amazon-web-services cassandra nosql amazon-dynamodb database-performance