Amazon web services DateTime作为DynamoDB中的字符串,如何将DateTime属性保持为范围键?

Amazon web services DateTime作为DynamoDB中的字符串,如何将DateTime属性保持为范围键?,amazon-web-services,amazon-dynamodb,dynamodb-queries,amazon-dynamodb-index,Amazon Web Services,Amazon Dynamodb,Dynamodb Queries,Amazon Dynamodb Index,我是DynamoDB新手,在我们的应用程序中,访问模式类似于“显示最近创建的所有订单”。因此,我决定在DynamoDB中进行数据建模时,将createdDateTime属性保留为范围键。我还看到许多帖子建议将日期时间保存为ISO_8601格式的字符串。如何在DynamoDB中进行排序。在获取订单列表时,我希望先显示最近创建的内容。由于许多不同的业务原因,想要显示最近创建的内容是一个相对常见的要求 大多数情况下,有几件事是正确的: “最近创建的”列表往往是一个固定大小的有序列表 这是一个时间点快照

我是DynamoDB新手,在我们的应用程序中,访问模式类似于“显示最近创建的所有订单”。因此,我决定在DynamoDB中进行数据建模时,将createdDateTime属性保留为范围键。我还看到许多帖子建议将日期时间保存为ISO_8601格式的字符串。如何在DynamoDB中进行排序。在获取订单列表时,我希望先显示最近创建的内容。

由于许多不同的业务原因,想要显示最近创建的内容是一个相对常见的要求

大多数情况下,有几件事是正确的:

  • “最近创建的”列表往往是一个固定大小的有序列表
  • 这是一个时间点快照,取决于创建内容的速度,即使在返回列表时,列表也可能不准确
  • 这样说,你可以考虑一个辅助系统来存储最近创建的项目,这不一定与存储项目本身的地方相同。

    这种方法在很大程度上取决于创建新项目的速度。例如,在一个每秒创建许多新订单的系统中,可以通过缓存或某个流处理器获得最近创建的N个订单

    但是,如果速度接近每小时一个订单,那么最好使用类似于Dynamo中的一条记录的方法来实现前N个最新订单,在创建每个新订单时,您可以在其中保持列表的更新

    后一种方法可以达到每秒约300个订单。除此之外,你还需要一些不同的东西