Здравствуйте, я хочу запрашивать данные для определенных устройств, периодически отправляющих предупреждения. Поэтому я хочу иметь временные ряды. Я создал таблицу, как это:Запрос на временные ряды Cassandra
CREATE TABLE alerts_by_day (
day_of_year int,
year int,
alert_timestamp timestamp,
serial_number text,
alert_id uuid,
alert_type text,
PRIMARY KEY((day_of_year, year), serial_number, alert_timestamp, alert_type,alert_id)
) WITH CLUSTERING ORDER BY (serial_number DESC, alert_timestamp DESC, alert_type DESC);
Теперь я хочу, чтобы создать запрос или материализованное представление для того, чтобы иметь возможность запроса по диапазону времени (т.е. с 29 ноября 2015 до 20 января 2016 года) и тип предупреждения. Поэтому я просто хочу показывать предупреждения для определенного типа и временного диапазона. Я могу запросить в течение определенного интервала времени:
Select * from alerts_by_day
where day_of_year IN (312,313)
and year IN (2016,2015)
and alert_timestamp < '2016-11-08 03:09:14-0800'
and alert_timestamp > '2016-11-07 23:13:28-0800'
, но я не могу это сделать:
Select * from alerts_by_day
where day_of_year IN (312,313)
and year IN (2016,2015)
and alert_timestamp < '2016-11-08 03:09:14-0800'
and alert_timestamp > '2016-11-07 23:13:28-0800'
and alert_type IN ('type1', 'type2')
, потому что я использовал ограничение, НЕ EQ для alert_timestamp.
Как я могу достичь этого, я вижу только предупреждения типа 1 и типа 2?
здесь ошибка: Невозможно выполнить CQL сценарий: кластеризация столбца alert_type не может быть ограничено (precedign alert_timestamp колонка ограничена не-EQ-связи)
какая версия кассандры вы используете? – root545
Я удалил свой ответ. но вы можете проверить этот ответ http://stackoverflow.com/questions/34422515/cassandra-error-clustering-column-cannot-be-restricted-preceding-column-is-re Im short, что вы делаете, невозможно – root545