如何在不使用hashKey的情况下查询dynamoDB

时间:2018-09-17 21:12:16

标签: amazon-dynamodb

我有一个带有两个属性的dynamoDB表:


A:主分区键

B:主要排序键


由于我不知道A的值,因此我想使用属性B查询此表。

是否有可能使B成为GSI(全局二级索引),以及如何使用B查询表,因为B已经是一个排序键。

1 个答案:

答案 0 :(得分:2)

您需要使用分区键进行查询-您不能仅使用排序键来进行查询。您只能扫描。

因此,唯一的出路是使用B作为分区键来创建GSI。

更新

是的,您可以将范围键用作GSI。

使用GSI的缺点是:

  • 每个表最多只能有5个GSI,因此请明智地选择需要索引的内容,因为GSI只能在表创建期间指定,并且不能更改。
  • 由于您需要为其分配预配置的吞吐量,因此GSI会花费您额外的钱。
  • GSI最终是一致的,这意味着DynamoDB不保证与表的哈希键相关联的数据写入数据库的那一刻,该数据的GSI哈希键立即可用于查询。该文件指出,这通常是立即发生的,但可能是GSI哈希密钥可能要花费几秒钟的时间。