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

如何从DynamoDB获取PartiQL中每个主分区键的最新数据

孟胤
2023-03-14

受此启发,如何从DynamoDB获取每个主分区键的最新数据

我在迪纳摩有一张桌子。它存储帐户统计信息。帐户统计数据可能每天更新几次。因此,表记录可能如下所示:

------------ -------------- ------- -------
|account_id|record_id|视图|星|
------------ -------------- ------- -------
|3|2019/03/16/1|29|3|
------------ -------------- ------- -------
|2|2019/03/16/2|130|21|
------------ -------------- ------- ------- account_id是主分区键。record_id是主排序键

如何仅获取每个帐户ID的最新记录?因此,从上述示例中,我希望得到:

-------------------------------2019年3月16日1日29月3日查看星空130日21日2019年3月16日3月12日2日该数据便于用于报告目的。

共有1个答案

燕翔飞
2023-03-14

对每个account\u id执行以下PartiQL查询:

SELECT * FROM <Table> WHERE account_id='3' AND record_id > '2021/11' ORDER BY record_id DESC

PartiQL没有LIMIT关键字,因此将返回所有匹配的记录。您可以通过尽可能限制record_id日期来减少过度获取。例如,如果只有当前日期是感兴趣的,则排序键表达式将是record_id

与参考示例一样,您必须为每个感兴趣的账户id执行一个查询。支持批处理操作。

 类似资料:
  • 我正在使用Node。js和DynamoDB JavaScript SDK开发。 我有一个表,它使用“ID”作为分区键(散列键),使用“time”作为排序键(范围键)。我想从多分区密钥中获取最新的N个数据。 我可以使用Query从分区键获取最新的N个数据。 但我不知道如何从多分区密钥中获取最新的N个数据。如果我想从10个分区键获取数据,我应该查询10次吗?

  • 问题内容: 我在Golang中使用aws-sdk-go库进行DynamoDb连接。 我的DynamoDb表具有分区键DeviceId(字符串)和排序键时间(数字)。如何编写GetItemInput以获取具有特定DeviceId的所有数据? 问题答案: 您必须使用查询或扫描操作,这是一个简单的示例,但是您可以在此处阅读有关Amazon文档的更多信息。 特别是查询操作 查询操作仅使用主键属性值在表或辅

  • 问题内容: 我正在使用SQL Server2005。我有一个带有付款ID,用户ID和时间戳的付款表。我想查找每个用户的最新付款。这很容易搜索并找到答案。我还想知道的是,最近的付款是否是用户的第一次付款。 我有以下内容将对每个用户的付款进行编号: 我没有进行一次精神上的飞跃,然后让我为每个用户选择了最高的paymentNumber。如果我通过使用MAX(paymentNumber)然后将以上内容用作

  • 我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键与不同的排序键映射。 如何获取与特定主键关联的所有排序键? 我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键。 我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以这可能就是解决方案——是这样吗?我还知道,

  • 我正在使用aws sdk go库实现Golang的DynamoDb连接。 我的DynamoDb表有一个分区键DeviceId(String)和一个排序键Time(Number)。如何编写GetItemInput以获取具有特定DeviceId的所有数据?

  • 我目前正在使用JS AWS-SDK的executeStatement使用PartiQL在DynamoDB中进行分页,但我返回的对象不包含用于分页的NextToken(仅项目数组)。这就是代码的样子(非常简单): 我想知道是否有人使用DynamoDB的PartiQL处理分页。 这可能是因为我的分区键是字符串类型吗? 还在努力弄清楚。 谢谢,提前!