是否有可能有多个字段作为范围键?

假设我有一个表,其中每行都由唯一标识 <A,B,C>

 -------------------------------
 A   |   B   |  C  |  D   |  E  |
 -------------------------------

哪里 A 是主要的 hash 钥匙

我要 BC 成为主要 range 钥匙。

如何在DynamoDB中将超过2个字段作为主键?

有帮助吗?

解决方案

DynamoDB中的主键不能超过2个字段。

作为解决方法,您可以创建 local secondary index 对于要成为范围键的每个字段。但是,您将无法同时使用多个范围键构建查询,因为DynamoDB一次只能使用一个索引。

考虑使用过滤器表达式,您最终可能会使用比您需要的更多的读取吞吐量(在从db接收数据后执行过滤),但获得所需的结果。

其他提示

将b和C的副本放在范围字段中(作为额外的列),并使您的范围键像"B_C",如果需要,您仍然可以为B和C单独的列。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top