我是 DynamoDB 的新手,在我们的应用程序中,访问模式类似于,显示最近创建的所有订单。因此,我决定将 createdDateTime 属性保留为范围键,同时在 DynamoDB 中进行数据建模。我还看到很多帖子建议将 dateTime 保存为 ISO_8601 格式的字符串。排序将如何在 DynamoDB 中进行。在获取订单列表时,我想要最近的。
问问题
32 次
1 回答
1
由于许多不同的业务原因,想要显示最近创建的任何内容是一个相对常见的要求。
大多数情况下,有几件事是正确的:
- “最近创建”的列表往往是一个固定大小的有序列表
- 这是一个时间点快照,根据创建内容的速度,即使返回列表也可能不准确
话虽如此,您可能会考虑使用辅助系统来存储最近创建的项目,该系统不一定与您存储项目本身的位置相同。
该方法很大程度上取决于创建新项目的速度。例如,在每秒创建许多新订单的系统中,可以通过缓存或某些流处理器来获取最近创建的 N 个订单。
但是,如果速度更接近每小时一个订单,那么使用 Dynamo 中的单个记录之类的东西可以更好地实现前 N 个最近的订单,您可以在创建每个新订单时保持列表更新。
后一种方法可以达到大约 300 个订单/秒。除此之外,你需要一些不同的东西。
于 2020-08-16T07:23:00.900 回答