DSE (Cassandra) - поиск диапазона по типу данных int - PullRequest
1 голос
/ 09 января 2020

Я новичок в использовании Кассандры. Я создал таблицу с данными ниже, и когда я пытаюсь выполнить поиск по диапазону с помощью токена, я не получаю никаких результатов. Я делаю что-то не так или это мое понимание модели данных?

enter image description here

enter image description here

Запрос select * from test where token(header)>=2 and token(header)<=4;

1 Ответ

5 голосов
/ 09 января 2020

функция token вычисляет токен из значения на основе сконфигурированного разделителя. Расчетное значение - это га sh, которое используется для идентификации узла, в котором расположены данные, это не сами данные.

Кассандра может выполнять поиск диапазона значений только по столбцам кластеризации (только для некоторых дизайны) только внутри одного раздела. Если вам нужно выполнить диапазон для произвольного столбца (также для ключей раздела), есть DSE Search, который позволяет индексировать таблицу и выполнять различные типы поиска, включая диапазон ... Но учтите, что он будет намного медленнее чем традиционные запросы Cassandra.

В вашей ситуации вы можете запустить 3 запроса параллельно (для покрытия значений 2,3,4), например:

select * from test where header = value;

, а затем объединить результаты в ваш код.

Я рекомендую пройти курсы DS201 и DS220 в DataStax Academy , чтобы понять, как Cassandra выполняет запросы и как моделировать данные, чтобы сделать это возможным.

...