DynamoDB查询/根据时间戳排序
问题描述:
在DynamoDB中,我有一个表,其中每个记录都有两个日期属性,create_date
和last_modified_date
。这些日期采用ISO-8601格式,即2016-01-22T16:19:52.464Z
。DynamoDB查询/根据时间戳排序
我需要有基于这样create_date > [some_date]
last_modified_date < [some_date]
[date_attr] [comparison_op] [some_date]
等的create_date
和last_modified_date
即
- 得到的所有记录查询他们的一种方式...
这样做的一种方法是插入虚拟固定属性wi TH每个记录并与虚设属性作为分区键和create_date
作为排序键创建索引(对于last_modified_date
同样。)
然后,我将能够查询它是这样通过设置固定虚设属性作为分区键,日期属性作为排序键,并使用任何比较运算符<
,>
,<=
,>=
,等等。
但这看起来不太好,看起来像一个黑客而不是一个适当的解决方案/设计。有没有更好的解决方案?
答
有一些事情的NoSQL数据库是不是良好,但您可以通过以下方案解决这个问题:
解决方法1)移动搜索的目的本表数据到SQL数据库:这可能是有效的,因为你将能查询按您的要求,因为你需要不同的DB的
解决方案2之间的数据同步,这可能是乏味的,有时)与亚马逊CloudSearch集成:您可以将这个表Cloudsearch整合,然后比较然后查询您的DynamoDB表查询Cloudsearch
溶液3)集成与Elasticsearch:ElasticSearch类似于云虽然每个具有一定的优点和缺点,最终的结果将是相同的,而不是查询DynamoDB查询Elasticsearch
解决方案4)正如你在你的问题中提到的添加索引
这是相关的:http://stackoverflow.com/a/38790120/491553 –