DynamoDb 的 RCU、WCU、分区键配置

RCU, WCU, partition keys configuration for DynamoDb

我是 DynamoDb 的新手,无法决定如何选择我的分区键。文档指出选择具有高基数的列,但这实际上意味着不会访问很多分区。这反过来又会导致 WCU 和 RCU 没有被充分利用。

例如,对于电影数据库,我猜我应该使用 language/director 名称作为分区键,使用电影 ID 作为排序键。这将使事情保持平衡。或者我应该使用电影 ID 作为分区键。是不是我理解错了?

有人可以指导我正确的方法是什么吗?为什么?

我做了一些搜索并找到了解释。我希望 AWS 文档有这个。

首先,分区和分区键之间没有一对一的映射。 DynamoDb 从一个分区开始并将所有内容存储在那里,一旦它填满(限制为 10GB),它会将其分解为 2 个分区。此时它取所有的分区键,并在两个分区中平均分配它们。

例如。如果 user_id 是分区键,分区 1 可能有 user_id 的 1,4,6,分区 2 可能有 user_id 的 2,3,5。 DynamoDb 不一定按顺序划分分区键。因此,当执行查询时,它可以转到任一分区而不会阻塞一个分区。

下面还有一篇博客 url,其中更详细地解释了这一点,并以图片表示。如果有人想深入阅读这个。 注意事项尽管该博客是 2017 年的,但几乎没有技术细节发生变化,但从概念上讲它解释了到底发生了什么。

https://www.cloudbees.com/blog/partitioning-behavior-of-dynamodb