我在DynamoDB中有下表:
Table: Person
Attributes: person_id, firstName, lastName, age, birthday
Partition Key: person_id
我的问题是:我需要查询特定年龄之间的所有人员,例如,年龄> 18和年龄
但是,我需要在查询中保持高度的一致性,因此,不能使用全局二级索引。
在这种情况下,最佳/可行的解决方案是什么?
最佳答案
您要的是矛盾的。如果您需要“所有年龄在18至45岁之间的人”,除非此表非常小,否则在查询时可能会更改一组人。本质上,这是可以容忍最终一致性的操作类型。
我也想知道您将如何处理结果。
如果表真的很大,并且查询会有很多结果,您将如何显示数据?
如果表格总是很小,那么您可以简单地对其进行扫描并应用过滤器。
并问问自己,查询或扫描保持一致意味着什么?查询/扫描可能需要多次往返服务器才能完成操作,这意味着它无法为您提供数据的时间点快照。除非数据很小或不经常更改。