【发布时间】:2020-05-13 19:48:20
【问题描述】:
我有几年间隔 1 分钟的 power_drawl 时间序列数据。也就是说,每天将有 1440 个(60 分钟 * 24 小时)值。
这是我的桌子,
CREATE TABLE power_drawl (date date, time time, x_power_mw float, PRIMARY KEY(date, time)) WITH CLUSTERING ORDER BY (time ASC);
SELECT * FROM power_drawl WHERE date='2016-01-01' and time>='00:00:00' and time<='00:10:00' ALLOW FILTERING ;
date | time | x_power_mw
------------+--------------------+--------------------------------
2016-01-01 | 00:00:00.000000000 | 23.95
2016-01-01 | 00:01:00.000000000 | 24.17
2016-01-01 | 00:02:00.000000000 | 23.52
2016-01-01 | 00:03:00.000000000 | 21.17
2016-01-01 | 00:04:00.000000000 | 24.53
2016-01-01 | 00:05:00.000000000 | 25.06
2016-01-01 | 00:06:00.000000000 | 28.5
2016-01-01 | 00:07:00.000000000 | 25.52
2016-01-01 | 00:08:00.000000000 | 25.66
2016-01-01 | 00:09:00.000000000 | 25.4
2016-01-01 | 00:10:00.000000000 | 23.25
现在我有这样的查询
“2011 年至 2015 年 1 月每天下午 12 点至下午 2 点之间,x_power_mw 的 max 值是多少,何时发生”
“在上面的查询中,如果我想查询 2011 年和 2015 年而不是 2011 年到 2015 年(不连续值)怎么办?”
对我来说,为这些查询编写单个 cql 查询似乎是不可能的。
1) 如何编写带有where 子句的cql 查询,其年份为2011 年和2015 年而不是2011 年至2015 年?
2) 每年分别查询并在客户端计算最大值是个好主意吗?
3) 我的data model 对于这些查询是否正确,如果不是正确的(我应该将年份与日期分开以添加为复合集群键)?
【问题讨论】:
标签: nosql datastax cassandra-3.0