如何通过AWS dynamoDB执行范围查询

时间:2015-10-04 01:34:33

标签: amazon-web-services amazon-dynamodb

我有一个存储书籍信息的AWS DynamoDB表,哈希键是书籍ID。图书价格有一个属性。

现在我想执行查询以返回价格低于特定值的所有图书。如何有效地完成这项工作,而不扫描整个表格?

对二级索引的查询似乎只能返回索引为特定值的一组条目,因此我对如何有效地执行范围查询感到困惑。非常感谢你!

2 个答案:

答案 0 :(得分:0)

有两件事你可能会感到困惑。范围键,属性范围。

为了澄清,在这种情况下,您需要一个辅助索引,并且在查询索引时,您将指定一个关键条件(假设java并假设二级索引值 - 这几乎是任何sdk支持的语言) 见http://docs.amazonaws.cn/en_us/AWSJavaSDK/latest/javadoc/index.html?com/amazonaws/services/dynamodbv2/model/QueryRequest.html w / BETWEEN条件。

答案 1 :(得分:0)

你不能进行那种查询。 DynamoDB通过散列键在多个节点上进行分片,因此在没有散列键的情况下(在所有散列键上)执行查询本质上是完全扫描。

对你的情况来说,hack会有一个只有一个整个表值的哈希键,但这基本上是错误的,因为你放弃了使用DynamoDB的所有优点。有关详细信息,请参阅热哈希密钥问题:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html