2016-10-17 2 views
-1

Когда есть таблица, как это в Кассандре:Кассандра выбрать на таблицу со счетчиком, где положение

CREATE TABLE amout ( ID INT, дата временной метки, countValue счетчик, ПЕРВИЧНЫЙ КЛЮЧ ((ID) , Дата));

Я знаю о, как указано здесь ключ разделения по: Difference between partition key, composite key and clustering key in Cassandra? Но счетчик не может быть частью первичного ключа. Теперь я хочу, чтобы запрос, основанный на countValue, например, так:

SELECT * from amount WHERE countValue > 10; 

Конечно, это даст неопределенное исключение имен. Но можно ли достичь такого запроса, не делая ничего подобного SELECT * FROM amount;, а затем перейди через набор данных? Я хочу получить набор данных, в котором я нуждаюсь.

+0

Если у вас есть DSE (DataStax Enterprise Cassandra), то вы можете выполнить его с помощью встроенной индексации Solr. Но прямого пути нет, встречное сканирование не поддерживается, кроме ключа. – Sreekar

+0

@Sreekar Я думаю, что я собираюсь использовать SQL для этого. Получил довольно большую базу данных Cassandra рядом с SQL-средой, поэтому ее легко переключить для меня. – Proliges

ответ

2

Это не то, что вы можете сделать в Кассандре. Вам нужно будет использовать некоторые другие процессы, такие как фильтрация на стороне клиента, как вы предложили.

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

+0

Хорошая фильтрация на стороне клиента может быть не лучшим способом для этой операции, я должен выбрать в постоянно растущей базе данных. Возможно, я сделаю это в SQL, но, возможно, я могу создать таблицу, где 'countValue' является целым числом. Тогда я должен иметь возможность прокручивать его, если я прав. – Proliges

Смежные вопросы