Ошибка запроса Cassandra select - PullRequest
       8

Ошибка запроса Cassandra select

0 голосов
/ 13 февраля 2019

У нас есть таблица:

CREATE TABLE table (
    col1 text,
    col2 text,
    col3 timestamp,
    cl4 int,
    col5 timestamp,
    PRIMARY KEY (col1, col2, col3, col4)
) WITH CLUSTERING ORDER BY (col2 DESC, col3 DESC,col4 DESC) 

Когда я пытаюсь сделать запрос из этой таблицы, например:

select * from table where col1 = 'something' and col3 < 'something' 
  and col4= 12 limit 5 ALLOW FILTERING;
select * from table where col1 = 'something' and col4 < 23 
  and col3 >= 'something' ALLOW FILTERING;

Я всегда получаю ошибку: Clustering column "col4" cannot be restricted (preceding column "col3" is restricted by a non-EQ relation).

Я попытался изменить создание таблицы с помощью col4, col3, col2, но второй запрос не работает и выдает похожую ошибку.
Любое предложение / совет для решения этой проблемы.

Мы находимся: Cassandra 3.0.17.7.

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете использовать условие неравенства только в последнем столбце раздела запроса.

Например, вы можете использовать col1 = val and col2 <= ..., или col1 = val and col2 = val2 and col3 <= ..., или col1 = val and col2 = val2 and col3 = val3 and col4 <= ..., но выне может выполнить условие неравенства для нескольких столбцов - так Cassandra читает данные.

...