是否可以使用batchgetitem api从dynamodb Global二级索引中检索行?如果我的目的是根据一些非关键属性从主表中检索数据,但是应该在100个项目的批次中检索数据 - GSI索引是否不适合这里?
还有可用于查询的BatchItemGet API吗?假设一个表有主键和排序键,同一个主键可以有多个排序键我可以使用batchItemGet仅使用主键检索多个主键,或者它在这里不会感到满意吗?
答案 0 :(得分:1)
没有办法在BatchGetItem
API 操作中根据docs 指定索引名称。这意味着在二级索引上使用 BatchGetItem
(和 GetItem
)是不可能的。这两者都对主索引进行操作。
如果要从二级索引中检索数据,则需要使用 Query
或 Scan
。根据 documentation,两者都支持 IndexName
属性。使用 Query
时,您必须指定分区键,并且可以选择根据排序键进行过滤。如果您不过滤排序键,您将获得带有分区键的所有项目,这应该满足您的第二个要求。
要从基于不同分区键的二级索引中检索数据,您需要针对这些键的单独值发出多个 Query
操作,此处没有批处理。