DynamoDB GSI BatchGetItem

use*_*749 7 amazon-dynamodb aws-sdk amazon-dynamodb-streams

是否可以使用batchgetitem api从dynamodb全局二级索引中检索行?如果我的目标是也基于某些非键属性从主表中检索数据,但应在 100 个项目的批次中检索数据 - GSI 索引是否不适合此处?

BatchItemGet API 也可用于查询吗?假设一个表有主键和排序键,同一个主键可以有多个排序键,我可以使用仅带有主键的 batchItemGet 检索多个主键还是在这里不会触发?

Mau*_*ice 6

BatchGetItem根据文档,无法在 API 操作中指定索引名称。这意味着在二级索引上使用BatchGetItem(就此而言)是不可能的。GetItem这两者都对主索引进行操作。

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

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