当前位置: 首页 > 知识库问答 >
问题:

如何扫描DynamoDB表以仅检索每个分区键中的一项

韦知
2023-03-14

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

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的扫描功能是否可能做到这一点?(我想避免全部扫描,自己过滤)。

共有1个答案

戎永福
2023-03-14

如果只想获取几个ID及其最高时间,可以使用反向索引进行查询,因此对于每个ID,只能读取1项。但为此,您需要现有的ID列表。

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

  • 1个查询
  • 1项读取

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

 类似资料:
  • 我有一个dynamodb表,用于存储在我的服务器上运行的进程的历史运行数据,我需要一个可以聚合这些进程并查看每个进程的最新数据的位置。每个进程都有自己的ProcessId,它是dynamodb表的分区键。排序键是开始时间 本质上,我需要为我提供的每个ProcessId检索最新的StartDateTime。我在aws sdk中使用nodejs lambda来检索数据。我已经研究过使用BatchGet

  • 具有数十亿条目的理论表。 分区键是表示给定设备ID的唯一uuid。大约会有10k唯一的uuid。 排序键是数据收集时间的日期字符串。 每个项目都有一些数据字段。有几十个字段,因此为每个字段制作GSI是不合理的。对于我们的示例,假设我们正在寻找“dataOfinterest”字段。 我想在数据库中搜索“dataOfinterest='fobar'的所有项目”——理想情况下是在日期范围内进行。据我所知

  • 类似Bigtable的数据库存储按其键排序的行。 Cassandra使用分区和聚类键的结合来保持数据的分布和排序;但是,您只能通过使用分区键来选择行! 用于上述查询的Cassandra存储层的可视化。

  • 我是DynamoDB的新手,想知道我们如何通过在JAVA中使用ONLY分区键来查询DynamoDB中的表 我有一个名为“ervive pdi data invalid qa”的表,其模式是: 分区键为SubmissionId 排序键是id。 城市(属性) 错误(属性) 这张桌子看起来像这样:桌子 我想通过使用(software.amazon.awssdk)新版本的AWS SDK DynamoDB类

  • 我试图查询具有分区键和排序键的表(但是分区键和排序键是1:1,我只想使用分区键[仅返回一项]进行查询)。 这是我尝试过的代码,但没有成功(testId是分区键名,1234567890是字符串形式的分区键值);你们都知道我可以只使用分区键进行查询的方法吗?记住,由于分区键和排序键是1:1,所以只会返回一个项?提前非常感谢您。[这是我的第一篇堆栈溢出帖子-很抱歉,如果我用词不当,我很乐意回答关于我的措

  • 受此启发,如何从DynamoDB获取每个主分区键的最新数据? 我在迪纳摩有一张桌子。它存储帐户统计信息。帐户统计数据可能每天更新几次。因此,表记录可能如下所示: ------------ -------------- ------- ------- |account_id|record_id|视图|星| ------------ -------------- ------- ------- |3|