在DynamoDB中,我有一个表,其中每个记录有两个日期属性,create_date和last_modified_date.这些日期是ISO-8601格式,即2016-01-22T16:19:52.464Z.
我需要有一种基于create_date和last_modified_dateie 查询它们的方法
create_date > [some_date]last_modified_date < [some_date][date_attr] [comparison_op] [some_date]等...一种方法是在每条记录中插入一个伪固定属性,并创建一个索引,其中dummy属性作为分区键,并create_date作为排序键(同样适用于last_modified_date.)
然后,我就可以通过提供固定的虚拟属性作为分区键查询它是这样,日期属性作为排序键,使用任何比较操作符<,>,<=,>=,等等.
但这似乎并不好看,而且看起来像是黑客而不是正确的解决方案/设计.还有更好的解决方案吗?
NoSQL DB有一些不好的东西,但你可以通过以下解决方案来解决这个问题:
解决方案1)将此表数据移动到SQL数据库以进行搜索:这可能是有效的,因为您将能够根据您的要求进行查询,这可能有时很繁琐,因为您需要将数据同步到不同的数据库之间
解决方案2)与Amazon CloudSearch集成:您可以将此表与Cloudsearch集成,然后查询您的DynamoDB表,而不是查询Cloudsearch
解决方案3)与Elasticsearch集成:ElasticSearch类似于云,虽然每个都有一些优点和缺点,最终结果是相同的,而不是查询DynamoDB查询Elasticsearch
解决方案4)正如您在问题中提到的那样添加索引
| 归档时间: |
|
| 查看次数: |
8980 次 |
| 最近记录: |