【问题标题】:To query Last 7 days data in DynamoDB在 DynamoDB 中查询最近 7 天的数据
【发布时间】:2021-02-10 07:19:36
【问题描述】:

我的发电机数据库表如下:

HashKey(Date) ,RangeKey(timestamp)

数据库存储每天的数据(哈希键)和时间戳(范围键)。

现在我想查询最近 7 天的数据。 我可以在一个查询中执行此操作吗?还是我需要每天给 dbb 打 7 次电话?数据的顺序无关紧要所以,有人可以建议一个有效的查询来做到这一点。

【问题讨论】:

  • 调用查询 7 次,或创建新的 GSI,日期为 RangeKey

标签: amazon-dynamodb dynamodb-queries


【解决方案1】:

我认为您在这里有几个选择。

  1. BatchGetItem - BatchGetItem 操作从一个或多个表中返回一个或多个项目的属性。您通过主键识别请求的项目。您可以指定所有 7 个主键并触发一个请求。
  2. 7 次调用 DynamoDB。不理想,但它可以完成工作。
  3. 引入一个全局二级索引,将您的数据投影到您的应用程序需要的形状中。例如,您可以通过使用截断的时间戳来引入表示一整周的属性:
  2021-02-08 (represents the week of 02/08/21T00:00:00 - 02/14/21T12:59:59)
  2021-02-16 (represents the week of 02/15/21T00:00:00 - 02/22/21T12:59:59)

我称之为“截断时间戳”,因为我实际上忽略了时间戳的 HH:MM:SS 部分。当你在 DDB 中创建一个新项目时,你可以引入一个截断的时间戳来表示它被插入的星期。因此,在同一周插入的所有项目都将显示在 GSI 的同一项目集合中。

  1. 根据您要处理的数据量,您还可以考虑使用单独的表来分隔数据范围。 AWS 有一个article describing this pattern

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多