gpt4 book ai didi

amazon-web-services - Amazon DynamoDB 获取过去 24 小时的所有项目

转载 作者:行者123 更新时间:2023-12-01 03:29:53 25 4
gpt4 key购买 nike

我想获取过去 24 小时的所有项目。我已经做了一些谷歌搜索,似乎用 DynamoDB 做起来并不容易。

我在想是否可以使用公共(public)哈希键和时间戳字段作为排序键创建二级索引。因此,我可以使用条件 timestamp > (DateTime.Now - 24h) 查询时间戳。如果这是一种可能的方式或有其他想法,有人可以对此发表评论吗?

实际上,我只需要表中不超过 24 小时的项目。所以另一个想法是每小时清理一次表并删除所有超过 24 小时的项目。这可能吗?

编辑:另一个想法是创建一个二级索引,其中日期作为哈希键,时间作为排序键,然后执行两个查询。 date = 'today' 的第一个和 date = 'yesterday' 的第二个,条件是准时。但是我如何将日期和时间存储为字符串或整数?这会比我上面的想法更好吗?

最佳答案

您对索引的想法通常是正确的方向。您也是对的,Dynamo 无法订购通过扫描检索到的项目(在没有索引的情况下获得所需的项目是必需的)。

等等选项:

  • 您可以按照您的建议创建一个 GSI,其分区键是日期值,排序键是时间戳 - 然后通过两个查询,您始终可以获取最近 24 小时的项目(您可以分区键中也有每小时值,然后进行 24 次查询而不是 2)
  • 另一个可能比 GSI 更好的选择是每 N 小时轮换一次表(其中 N 可能是 12 小时或 24 小时或其他一些根据您拥有的数据量有意义的值)。该解决方案为您提供了一种修剪旧数据并针对不均匀访问模式进行优化的好方法。较旧的表可能需要非常低的写入容量,在某些情况下,您甚至可以使用低读取容量。这种方法确实需要在读取和写入数据时了解多个表,但根据您正在使用的数据量,考虑它可能真的很有利。
  • 关于amazon-web-services - Amazon DynamoDB 获取过去 24 小时的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38749919/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com