首页 > 解决方案 > 如何扫描 DynamoDB 表以在每个分区键中仅检索一项

问题描述

假设我有一个带有分区键“ID”和范围键“时间”的表,其中包含以下项目:

ID  | Time | Data
------------------
A   | 1    | abc
A   | 2    | def
B   | 2    | ghi
B   | 3    | jkl

而且我只想扫描每个分区中每个分区中时间值最高的一项。所以扫描的结果应该是这样的:

ID  | Time | Data
------------------
A   | 2    | def
B   | 3    | jkl

这可以通过 DynamoDB 的扫描功能实现吗?(我想避免全部扫描并自己进行此类过滤)。

标签: amazon-dynamodbdynamodb-queries

解决方案


如果您只想获取其中几个IDs以及它们的最高Time值,您可以使用反向索引进行查询,因此对于每个 ID,您只会读取 1 个项目。但是为此,您需要一个现有的 ID 列表。

因此,对于每个 ID,将有:

  • 1 个查询
  • 1 项已读

否则,唯一的方法就是不幸地扫描所有内容。


推荐阅读