DynamoDB - 多个范围键

use*_*er7 10 primary-key dynamodb unique-constraint

是否可以将多个字段作为范围键?

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

 -------------------------------
 A   |   B   |  C  |  D   |  E  |
 -------------------------------
Run Code Online (Sandbox Code Playgroud)

Ahash键在哪里

我想BC作为主range键。

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

小智 8

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


小智 7

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

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

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