有没有办法从 DynamoDB 表中获取最后 N 条记录。我的范围键是时间戳。因此,我可以使用 ScanIndex 正向排序项目,以时间顺序排列。
但是为了查询,我需要拥有一个哈希键条件,但我不想进行过滤。有什么想法?
有没有办法从 DynamoDB 表中获取最后 N 条记录。我的范围键是时间戳。因此,我可以使用 ScanIndex 正向排序项目,以时间顺序排列。
但是为了查询,我需要拥有一个哈希键条件,但我不想进行过滤。有什么想法?
DynamoDB不是为此设计的。项目根据哈希键上的哈希分配,这样顺序是不可预测的。
您有几个选项:
for(item in items){if(item新于累积的最旧项目)累积项目; }
);Events
的表,而是创建一个名为Events20130705
的表来存储今天的事件,Events20130706
用于明天的事件等),然后像以前的选项一样进行扫描--这样扫描范围更小您也可以更改数据模型。例如,您可以有一个“版本化”的条目,该条目将保留对N个最新项的引用。或者您可以拥有一个类似于单个计数器的东西,您可以将其增加并更新K mod N的哈希键下的其他N个条目,其中K是您的计数器。
也许您甚至可以使用另一个工具来完成此工作。例如,您可以拥有一个Redis服务器来执行此操作。如果没有更详细的了解您的用例,很难提出精确的建议--它应该具有多大的可扩展性?它应该是多么可靠?您愿意执行多少维护工作?您愿意为此支付多少费用?
通常最好接受限制,了解约束并创造性地解决问题。
我不确定这是否仍然相关。我相当确定您可以使用ScanIndexForward以及rangeKey来获取最新值。