我有一个dynamodb表,其结构如下
userId -> hashkey
timestamp -> sortkey
//other fields
我想在此表上执行两个主要查询。
还有其他建议吗?谢谢你。
2014年5月更新这里发布了一些很好的建议。我仍在尝试如何最好地实现这一点,并希望检查以下方法的优缺点。
Trips:
Id -> this is a GUID generated by the API that is inserting data to dynamo
timestamp -> sortkey
//other details
UserTrips:
userId -> hashkey
tripId -> id from trips table
RecentTrips:
timeKey -> YYYYMM format hash key
tripId -> id from trips table
我担心这可能会造成很多不一致,好像对usertrips或recenttrips的插入失败了等等。
昨天我就这个话题回答了一个类似的问题,因此,如果我的回答有用,请将其链接到此处:https://stackoverflow.com/a/61783992/11986130
简而言之,我决定使用年
作为我的分区键,这样我就可以使用查询(如果我有很多数据,当然可能是月或其他更合适)。
希望有帮助!
编辑:这种方法不一定没有问题,因为您可能会因为“热分区”而降低性能——也许也值得一看这个答案:https://stackoverflow.com/a/36491475/11986130
您没有指定正在使用哪个aws sdk,但例如在Java中,您可以通过查询哈希键来解决第2个问题,范围键的条件是其值小于您加载的最后一个项的值。您还必须指定降序,因为ddb查询的默认值是升序。为了进行分页,您只需对查询进行限制,以获得指定的最大项数。
所以你基本上:
现在,如果我只希望得到时间戳和sensorId,那么我阅读了投影表达式,并尝试执行一个查询(query.json): aws cli命令 给了我:
我们有一个Postgres表(物化视图),其中包含大约200万行,列如下: start_time(timestampz)-有索引 end_time(timestampz)-有索引 对于表中的每一行,我们希望添加一个包含以下内容的结果列: 1,如果行开始和结束时间范围与任何其他行重叠 0,如果行开始和结束时间范围不与任何其他行重叠 将每一行标记为具有重叠(1或0)的有效方法是什么? 编辑: 预期产出
在DynamoDB中,我有一个表,其中每条记录都有两个日期属性,
我正在尝试评估Cassandra DB在存储和检索不同通道的时间序列数据方面的性能。 数据以文件格式记录,最大记录速率为8个样本/秒,每个样本都有一个以毫秒为单位的时间戳。给定时间记录的通道数可能会有所不同。 受以下链接的启发,我使用时间序列数据建模入门创建了以下表: 创建表uhhdata ( ch_idx int,date timestamp,dt timestamp,val float,PRI
我需要在一定的时间范围内进行查询, 首先,我想做一个查询,比如 结果是 有人能指出我做错了什么吗? 第二,我没有做这个例子https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html 上面的例子如何适合我的应用,谢谢 杰夫 此
Dynamodb具有时间戳属性,以字符串格式存储日期和时间“Thu Jan14 19:55:27UTC 2021”。现在,我想检索介于“Thu Jan11 20:55:27UTC 2021”和“Thu Jan13 22:15:27UTC 2021”之间的记录。下面是代码: 这并没有给出正确的记录集,因为字符串和日期时间之间正在进行比较。未将Attr()转换为datetime。下面是我尝试的代码片段