繁体   English   中英

为 DynamoDB 表中的所有项目分配相同的分区键

[英]Assigning the same partition key to all items in a DynamoDB table

我需要能够在我的 DynamoDB 表上运行一些基于范围的查询,例如int_attribute > 5starts_with(string_attribute, "foo") 这些都可以通过创建全局或局部二级索引,然后向这些索引提交Query来解决。 但是,运行查询还需要您提供分区键的单个值来限制查询集。 这些查询都没有严格的相等条件,因此我正在考虑为我的 Dynamo 表中的所有项目提供相同的分区键,并仅使用排序键区分它们。 我的数据集将在 10 GB 的分区大小限制内。

如果我这样做,是否会出现任何灾难性问题?

是的,您可以创建一个 GSI,其中每个项目都在同一分区键下。 需要注意的是,您通常会将所有这些写入操作放入同一个物理分区,每个分区的最大更新率为 1,000 WCU。

如果您的更新率低于该值,请继续。 如果您的更新率高于该值,您将需要遵循对 GSI 分区键值进行分片的模式,以便它分布在更多分区中。

假设 GSI 需要 10,000 WCU。 您可以将每个项目的 GSI PK 值分配给一个随机value-{x} ,其中 x 是 0 到 9。然后是的,在查询时您进行 10 次查询并自己将结果组合在一起。 这种方法可以根据需要进行扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM