Java DynamoDB如何查询具有强一致性的非关键属性?
我在DynamoDB中有下表:Java DynamoDB如何查询具有强一致性的非关键属性?,java,amazon-dynamodb,dynamodb-queries,amazon-dynamodb-index,amazon-dynamodb-data-modeling,Java,Amazon Dynamodb,Dynamodb Queries,Amazon Dynamodb Index,Amazon Dynamodb Data Modeling,我在DynamoDB中有下表: Table: Person Attributes: person_id, firstName, lastName, age, birthday Partition Key: person_id 我的问题是:我需要查询特定年龄段的所有人,例如年龄>18岁和年龄
Table: Person
Attributes: person_id, firstName, lastName, age, birthday
Partition Key: person_id
我的问题是:我需要查询特定年龄段的所有人,例如年龄>18岁和年龄<45岁的人
但是,我的查询需要很强的一致性,因此,我不能使用全局二级索引
在这种情况下,最好/可能的解决方案是什么?我建议您使用
scan
操作,因为您希望实现过滤,但不知道分区键。在java中,您可以按照以下指南扫描表并使用过滤器表达式。
你所要求的是矛盾的。如果您需要获取“年龄在18到45岁之间的所有人”,除非此表非常小,否则在您查询时,这组人可能会发生变化。这是一种本质上可以容忍最终一致性的操作类型 我还想知道你会如何处理这些结果 如果表非常大,并且您的查询将有很多结果,那么您将如何显示数据 如果表总是很小,那么您可以简单地扫描它并应用过滤器 问问自己,查询或扫描保持一致意味着什么?查询/扫描可能需要多次往返服务器才能完成,这一事实意味着它不会为您提供数据的时间点快照。除非数据非常小或很少更改