我有以下表來存儲時間序列數據:卡桑德拉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