Мы используем Cassandra в качестве историка данных для нашего решения по управлению автопарком. У нас есть стол в Кассандре, где хранятся детали поездки, сделанные автомобилем. Структура таблицы, как указано нижеОшибка Cassandra. Кластерная колонка не может быть ограничена (предыдущий столбец ограничен отношением не EQ).
CREATE TABLE journeydetails(
bucketid text,
vehicleid text,
starttime timestamp,
stoptime timestamp,
travelduration bigint,
PRIMARY KEY (bucketid,vehicleid,starttime,travelduration)
);
Где:
- bucketid: - ключ раздела, который представляет собой сочетание месяц и год
- vehicleid: -Уникальная Идентификатор автомобиля
- STARTTIME : - время начала поездки
- окончание: - окончание поездки
- travelduration: - продолжительность путешествия в миллисекундах DS
Мы хотели бы выполнить следующий запрос - получить все странствия автомобиля - 1234567 между 2015-12-1 и 2015-12-3, поездки длительностью больше 30 минут
Когда я запускаю этот запрос:
select * from journeydetails where bucketid in('2015-12') and vehicleid in('1234567')
and starttime > '2015-12-1 00:00:00' and starttime < '2015-12-3 23:59:59'
and travelduration > 1800000;
Я получаю этот результат:
InvalidRequest: code=2200 [Invalid query] message="Clustering column "travelduration"
cannot be restricted (preceding column "starttime" is restricted by a non-EQ relation)
У кого-нибудь есть рекомендация по устранению этой проблемы?
Спасибо за комментарии Арон ... Я исследую Искра как альтернативу – sam1977