DynamoDB GSI BatchGetItem

时间:2017-07-30 16:55:50

标签: amazon-dynamodb aws-sdk amazon-dynamodb-streams

是否可以使用batchgetitem api从dynamodb Global二级索引中检索行?如果我的目的是根据一些非关键属性从主表中检索数据,但是应该在100个项目的批次中检索数据 - GSI索引是否不适合这里?

还有可用于查询的BatchItemGet API吗?假设一个表有主键和排序键,同一个主键可以有多个排序键我可以使用batchItemGet仅使用主键检索多个主键,或者它在这里不会感到满意吗?

1 个答案:

答案 0 :(得分:1)

没有办法在BatchGetItem API 操作中根据docs 指定索引名称。这意味着在二级索引上使用 BatchGetItem(和 GetItem)是不可能的。这两者都对主索引进行操作。

如果要从二级索引中检索数据,则需要使用 QueryScan。根据 documentation,两者都支持 IndexName 属性。使用 Query 时,您必须指定分区键,并且可以选择根据排序键进行过滤。如果您不过滤排序键,您将获得带有分区键的所有项目,这应该满足您的第二个要求。

要从基于不同分区键的二级索引中检索数据,您需要针对这些键的单独值发出多个 Query 操作,此处没有批处理。