gpt4 book ai didi

amazon-dynamodb - 获取 DynamoDB 表中的最后 N 条记录

转载 作者:行者123 更新时间:2023-12-03 13:31:50 24 4
gpt4 key购买 nike

有没有办法从 dynamodb 表中获取最后 N 条记录。我拥有的范围键是时间戳。所以我可以使用 ScanIndex forward 按时间顺序排序项目。

但是为了查询,我需要一个 hashKey 条件,我不想过滤。有什么想法吗?

最佳答案

DynamoDB 并非旨在以这种方式工作。这些项目是根据 HashKey 上的散列分布的,其顺序是不可预测的。

您的选择包括:

  • 将项目分组在单个哈希键下(不推荐:您的数据会使一些服务器过载,亚马逊无法保证您的读/写能力)
  • 扫描整个表并保留最近的 N 个项目(类似于 for (item in items) { if (item newer then oldest accumulated item) accumulate item; } );
  • 将您的表划分为多个表(即,而不是名为 Events 的表,为今天的事件创建一个名为 Events20130705 的表,为明天的事件创建一个名为 Events20130706 的表),然后像上一个选项一样进行扫描——这样您的扫描就是更小

  • 你也可以改变你的数据模型。例如,您可以有一个版本化的条目来保留对 N 个最新项目的引用。或者你可以有一个类似单个计数器的东西,你可以在哈希键下增加和更新 N 个其他条目,例如最近的 K,其中 K 是你的计数器 mod N。

    也许您甚至可以使用其他工具来完成这项工作。例如,您可以使用 Redis 服务器来执行此操作。如果不更详细地了解您的用例,就很难做出准确的建议——这应该有多大的可扩展性?它应该有多可靠?您愿意进行多少维护?你愿意为此付出多少?

    通常最好接受限制,了解您的限制并发挥创造力。

    关于amazon-dynamodb - 获取 DynamoDB 表中的最后 N 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494731/

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