【发布时间】:2018-03-27 21:18:11
【问题描述】:
我不知道如何在 DynamoDB 中执行此操作。
我有一个表格,里面有类似这样的数据:
ID Updated other fields...
1200 2017-12-11 ...
1201 2018-02-05 ...
1205 2018-01-05 ...
1206 2018-01-11 ...
1210 2018-02-15 ...
1212 2018-02-10 ...
分区键是“ID”,我有一个排序键“更新”。
例如,我想检索更新大于“2018-02-01”的记录。
我不能单独查询“更新”,它会向Query condition missed key schema element: ID 抱怨。我理解这意味着什么,但我不确定如何正确执行此操作。
我尝试添加各种索引,然后在索引上进行查询,包括仅将“更新”字段作为分区键,但是我无法查询仅与分区键完全匹配的值范围.
那么,如何跨多个分区查询一个条件?
我可以使用扫描,但这可能很昂贵。我可以通过以某种方式对其进行索引来做到这一点吗?或者有没有办法做类似于不需要指定分区键的查询?
【问题讨论】:
-
我开始认为使用唯一 ID 作为分区键是一个坏主意,将属于一起的项目分区几乎会更好,但是如果两条记录具有相同的 '更新的'字段,两个键合在一起不会是唯一的,一个记录会覆盖另一个?我想我对如何正确使用分区键感到很困惑。
-
对分区键使用唯一 ID 通常是个好主意。它有助于可扩展性。分区键未排序,因此您需要除
Updated之外的分区键。 -
为了保证键的唯一性,考虑在更新后附加一个随机值。因此,您的数据将位于相同的位置,但独一无二:)
标签: amazon-dynamodb