[英]DynamoDB GSI table replication when partition key is same as the main table
[英]Assigning the same partition key to all items in a DynamoDB table
我需要能够在我的 DynamoDB 表上运行一些基于范围的查询,例如int_attribute > 5
或starts_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.