Моделирование данных в БД Cassandra 2.0 на CQL3
Статья предназначена в основном для новичков.ЛикбезCassandra (далее C*) — распределённая NoSQL БД, поэтому все решения «почему так, а не вот так» всегда принимаются с оглядкой на кластеризацию. CQL — это SQL-подобный язык. Аббревиатура от Cassandra Query Language. Node (нода) — инстанс C*, или java процесс в терминах операционных систем. На одной машине можно запустить несколько нод, например. Основная единица хранения — строка. Строка может динамически раширятся до 2 миллиардов колонок. Это важно. cqlsh — коммандная строка для CQL. Все примеры ниже выполняются именно в ней. Является частью дистрибутива C*. Первый пример. У нас есть сотрудники какой-то компании. Создадим таблицу на CQL и заполним данными: CREATE TABLE employees ( name text, age int, role text, PRIMARY KEY (name) ); INSERT INTO employees (name, age, role) VALUES ('john', 37, 'dev'); INSERT INTO employees (name, age, role) VALUES ('eric', 38, 'ceo'); Таблицы в C* обязаны иметь PRIMARY KEY. Он используется для поиска ноды, в которой хранится искомая строка. Прочитаем данные: SELECT * FROM employees; Эта картинка — руками разукрашенный вывод cqlsh. Выглядит как обычная таблица из реляционной БД. C* создаст две строки. Внимание! Это две внутренние структуры строк, а не таблицы. Если чуть слукавить, то можно сказать, что каждая строка — это как маленькая таблица. Далее понятней.Читать дальше →