Моделирование данных в БД 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* создаст две строки.
Внимание! Это две внутренние структуры строк, а не таблицы. Если чуть слукавить, то можно сказать, что каждая строка — это как маленькая таблица. Далее понятней.Читать дальше →
