У меня есть следующие таблицы для хранения данных временных рядов:Cassandra 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);
- Для отчета пользовательского интерфейса Я хочу, чтобы получить все оповещения на определенный период времени. У меня есть этот запрос:
выберите * из alerts_by_year_day где год = 2015 и day_of_year в (241, 240);
Но этот запрос возвращает мне результаты, которые находятся в порядке ASC года, а затем в порядке ASC дня. Результаты аналогичные
2015 | 240 | .....
2015 | 241 | .....
Но я хочу показывать последние результаты сначала или в порядке убывания. Добавление 'order by alert_timestamp;' дает ошибку Итак, как я могу отображать результаты, которые находятся в порядке убывания?
- Затем в течение определенного периода времени я хочу получить только определенные типы предупреждений на основе 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);
Но, конечно, он возвращает результаты по типу первого и в том, что с помощью временной метки. Я ищу только подмножество типов и в порядке desc, в котором они были сгенерированы. Возможно ли это в Кассандре?
Благодаря
Спасибо за ответ! Очень сложно запускать запросы на каждый день, а затем также хранить подробные сведения о папках для дней, которые отображаются и т. Д. – user1860447