我有以下表来存储时间序列数据:卡桑德拉datamodelling
CREATE TABLE alerts_by_year_day (
day_of_year int,
year int,
alert_timestamp timestamp,
serial_number text,
alert_id uuid,
alert_type text,
....
....
PRIMARY KEY((year, day_of_year), alert_timestamp, serial_number, alert_id)
) WITH CLUSTERING ORDER BY (alert_timestamp DESC, serial_number DESC);
- 对于UI报告我要检索的给定时间内的所有警报。我有这样的查询:
SELECT * FROM alerts_by_year_day其中year = 2015和DAY_OF_YEAR在(241,240);
但是,此查询返回的结果是年度ASC顺序,然后是ASC顺序的一天。 所以这样的结果
2015 | 240 | .....
2015 | 241 | .....
但我想要先显示最新结果或按降序显示。通过alert_timestamp添加'order'给出了一个错误 那么我如何显示结果降序?
- 然后,对于给定的时间段,我只想根据alert_type检索特定类型的警报。
所以我创造了这样的垫子观点:
CREATE MATERIALIZED VIEW alerts_by_type_and_timestamp AS
SELECT *
FROM alerts_by_year_day
WHERE alert_timestamp IS NOT NULL AND
alert_type IS NOT NULL AND
day_of_year IS NOT NULL AND
year IS NOT NULL AND serial_number IS NOT NULL AND
alert_id IS NOT NULL
PRIMARY KEY ((year, day_of_year, alert_type), alert_timestamp, serial_number, alert_id)
WITH CLUSTERING ORDER BY (alert_timestamp DESC, serial_number DESC, alert_id DESC);
但是,当然,它返回结果按类型第一,并通过时间戳。 我正在寻找的仅仅是类型的一个子集,并且按照它们的生成顺序排列。 Cassandra可能吗?
由于
感谢您的回应!每天运行查询并存储所显示日期的分页详细信息非常麻烦。 – user1860447