2017-02-23 44 views
0

Раньше я использовал mysql. Теперь по определенной причине пришлось переместиться на cassandra. Теперь я столкнулся с проблемой несовместимости с моим mysql queries в cassandra cql. Например, when case в mysql, похоже, не поддерживается в cql. Как сделать эту работу в sqlcassandraКогда случай в sql не поддерживается в cassandra cql

SELECT age, sum(case when age>0 and age<=10 then 1 else 0 end) as x0, 
sum(case when age>10 and age<=20 then 1 else 0 end) as x1 
FROM user_table where location_id=24 

Я получаю следующее сообщение об ошибке:

SyntaxException: line 1:32 no viable alternative at input 'when' (... age, sum([case] when...) 

Спасибо заранее.

+1

Не могли бы вы снять горизонтальные полосы прокрутки? Это уменьшает читаемость. – reporter

+0

@AshrafulIslam, о котором вы упоминали, вы можете просто преобразовать mysql-запрос в cql'. Как я могу преобразовать выше 'mysql query' в' cql' – curiousguy

+0

У Cassandra есть огромное ограничение на select query, Ex. вы можете использовать только предложение where только для полей первичного ключа, узел выбора cassandra, где хранить данные только на основе ключа раздела и т. д. Таким образом, вы должны составить схему табличной таблицы таким образом, чтобы вы могли эффективно и эффективно получать и извлекать данные. –

ответ

0

Невозможно сопоставить этот запрос с cql. С кассандрой все по-другому.

При проектировании вашей системы вы должны иметь в виду, какие запросы вы должны запускать и соответствующим образом проектировать. Это дается тем фактом, что вы можете получить доступ к данным так, как это было написано.

Последняя, ​​но не менее важная часть, в которой вы создаете суммы, вероятно, то, что вы хотели бы сделать на стороне клиента.

Best