CQL является декларативным, как SQL, а сама базовая структура компонента запроса языка (выберите вещи, где условие) - то же самое. Но есть достаточно различий, которые нельзя использовать с ним так же, как обычный SQL.
Очевидные предметы: 1. Нет объединений или подзапросов. 2. Нет сделки
Менее очевидны, но не менее важно отметить:
- для первичного ключа Кроме этого, вы можете применить только WHERE условия на колонке, если вы создали индекс по этому столбцу. В SQL вам не нужно индексировать столбец для фильтрации на нем, но на CQL оператор select будет работать без сбоев.
- Нет логических операторов OR или NOT, только AND. Очень важно моделировать ваши данные, чтобы вам не нужны эти два; это очень легко случайно забыть.
- Обработка данных существенно отличается. CQL допускает ТОЛЬКО равный оператор для временных меток, поэтому чрезвычайно распространенные и полезные выражения, подобные этому, не работают:
where dateField > TO_TIMESTAMP('2013-01-01','YYYY-MM-DD')
Кроме того, CQL не позволяет вводить строки с точностью до миллиса (только секунды), но это позволяет вводить миллисеты с эпохи как длинный int - который большинство других БД-модулей НЕ разрешают. Наконец, часовой пояс (как смещение по GMT) невидимо захватывается как для длинного миллисекунда, так и для строковых форматов без часового пояса.Это может привести к путанице для тех систем, которые намеренно не перекрывают местное время + GMT.
- Вы можете ТОЛЬКО обновлять таблицу на основе первичного ключа (или списка первичных ключей IN). Вы не можете обновлять данные на основе других данных столбца и не можете выполнять массовое обновление следующим образом:
update table set field = value;
CQL требует предложения where с первичным ключом.
- Грамматика для И не разрешает парсеры. Чтобы быть справедливыми, это не обязательно из-за отсутствие оператора OR, но это означает, что традиционный rewriters SQL, которые добавляют «защитную» скобку вокруг выражения не будет работать с CQL, например:
select * from www where (str1 = 'foo2') and (dat1 = 12312442);
В общем, лучше всего использовать Cassandra как большую, устойчивую высоту данных, для которой небольшое количество очень высокого уровня, очень высокопроизводительные запросы могут быть применены для перетаскивания подмножества данных для работы на прикладном уровне. Это подмножество может составлять 1 миллион строк, да. CQL и модель Cassandra не предназначены для операторов SELECT на 2 страницы со встроенными случаями, скоплениями и т. Д.
Может ли кто-нибудь помочь с синтаксисом, указав общее количество ключей, семейство столбцов в ... like показывать данные; показать таблицы; –
MAHI
дали решение для этого в моем ответе – Tamil