gpt4 book ai didi

amazon-dynamodb - 基于时间戳的DynamoDB查询/排序

转载 作者:行者123 更新时间:2023-12-04 07:05:51 24 4
gpt4 key购买 nike

在DynamoDB中,我有一个表,其中每个记录都有两个日期属性,create_datelast_modified_date。这些日期采用ISO-8601格式,例如2016-01-22T16:19:52.464Z
我需要一种基于create_datelast_modified_date查询它们的方法,例如

  • 获取所有记录,其中create_date > [some_date]
  • 获取所有记录,其中last_modified_date < [some_date]

  • 通常,我需要获取所有记录,其中 [date_attr] [comparison_op] [some_date]
    一种实现方法是在每条记录中插入一个虚拟固定属性,并创建一个索引,其中虚拟属性作为分区键,并使用 create_date作为排序键(对于 last_modified_date同样如此)。
    然后,我可以通过提供固定的哑属性作为分区键,将日期属性作为排序键并使用任何比较运算符 <><=>=等来进行查询。
    但这似乎并不好,并且看起来像是hack,而不是适当的解决方案/设计。有更好的解决方案吗?

    最佳答案

    NoSQL DB在某些方面不擅长,但是您可以使用以下解决方案解决此问题:

  • 将此表数据移动到SQL数据库中以进行搜索:这是有效的,因为您将能够根据需要进行查询,有时这可能很乏味,因为您需要在两个不同的DB之间同步数据
  • 与Amazon CloudSearch集成:您可以将此表与CloudSearch集成,然后可以查询Cloudsearch而不是查询DynamoDB表
  • Elasticsearch集成:Elasticsearch与CloudSearch相似,尽管它们各有利弊,最终结果是相同的-而不是查询DynamoDB,而是查询Elasticsearch
  • 正如您在问题中提到的,添加GSI索引
  • 关于amazon-dynamodb - 基于时间戳的DynamoDB查询/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951450/

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