在DynamoDB中,我有一个表,其中每条记录都有两个日期属性,create\u date和
last\u modified\u date。这些日期采用ISO-8601格式,如2016-01-22T16:19:52.464Z。
我需要有一种基于创建日期和上次修改日期的查询方法,例如。
获取create_date的所有记录
一般来说,我需要获取
[date_attr][comparison_op][some_date]
的所有记录。
一种方法是在每条记录中插入一个伪固定属性,并创建一个索引,其中伪属性作为分区键,
create_date
作为排序键(同样对于last_modified_date
。)
然后我将能够通过提供固定的虚拟属性作为分区键,日期属性作为排序键并使用任何比较运算符
来查询它
但这看起来不太好,看起来像是一种黑客行为,而不是一种合适的解决方案/设计。有没有更好的解决方案?
NoSQL DBs在某些方面并不擅长,但您可以通过以下解决方案来解决这一问题:
>
将此表数据移动到SQL数据库以进行搜索:这可能很有效,因为您可以根据需要进行查询,有时可能会很繁琐,因为您需要在两个不同的数据库之间同步数据
与Amazon CloudSearch集成:您可以将此表与CloudSearch集成,然后可以查询CloudSearch,而不是查询DynamoDB表
与Elasticsearch集成:Elasticsearch类似于CloudSearch,虽然各有优缺点,但最终结果是相同的——而不是查询DynamoDB,而是查询Elasticsearch
正如您在问题中提到的,添加GSI索引
我有一个dynamodb表,它有一个分区键和排序键。我需要根据列查询表以查找最近的100行。当我检查API时,我必须指定。在这种情况下,我不想查询分区键。我该怎么做? 操作似乎不支持对结果进行排序。 我能想到的一个解决方案是在表中添加一个属性,比如说,并为表中的每一行指定相同的值。然后在表上创建一个GSI,分区键为,时间戳为排序键。然后我可以查询分区键等于的表,并根据对结果进行排序。然而,这个解决
我有一个dynamodb表,其结构如下 我想在此表上执行两个主要查询。 获取用户的所有条目- 还有其他建议吗?谢谢你。 2014年5月更新这里发布了一些很好的建议。我仍在尝试如何最好地实现这一点,并希望检查以下方法的优缺点。 我担心这可能会造成很多不一致,好像对usertrips或recenttrips的插入失败了等等。
在我的DynamoDB表中,有HashKey=ID和GSI=Type。我需要获取特定类型(GSI)的所有hashKeys(ID)。 在这种情况下,获取给定类型的所有ID的有效方法是什么?我的DynamoDB表不会很大。
现在,如果我只希望得到时间戳和sensorId,那么我阅读了投影表达式,并尝试执行一个查询(query.json): aws cli命令 给了我:
问题内容: 我在SQL中有两个表,并且我需要能够基于早于或等于表A中的时间戳的表B中的时间戳进行联接。 因此,这是两个表和所需输出的一些虚假数据: 结案案例(表A) 分类(表B) 所需结果 因此,我知道代码需要如下所示,我只是想不出该如何处理部分($ 1和$ 2是将要传入的变量): 我知道我可以使用子选择,但这将在至少几千行,甚至可能更多的行上进行,我需要它真的要快。所以我希望有一个简单的子句可以
我想查询cassandra timestamp列,例如this hour、last hour、beather。 我在mysql中执行了与昨天数据相同的查询