Cassandra: к какому типу БД относится и каковы её ключевые характеристики?

Ответ

Cassandra — это распределенная NoSQL база данных типа wide-column store (ширококолоночное хранилище). Она спроектирована для обеспечения высокой доступности и линейной масштабируемости на кластерах из сотен серверов.

Ключевые характеристики:

  • Горизонтальная масштабируемость и децентрализация: В архитектуре нет единой точки отказа (masterless). Все узлы в кластере равны, что позволяет легко добавлять новые для увеличения производительности.
  • Высокая доступность и отказоустойчивость: Данные автоматически реплицируются по нескольким узлам (и даже дата-центрам), что гарантирует работу системы при выходе из строя части серверов.
  • Настраиваемая согласованность (Tunable Consistency): Позволяет для каждого запроса выбирать баланс между согласованностью данных (Consistency) и доступностью (Availability), следуя теореме CAP.
  • Оптимизация под запись: Cassandra обеспечивает чрезвычайно высокую скорость записи данных.

Язык запросов — CQL (Cassandra Query Language), синтаксически похожий на SQL.

Пример:

CREATE TABLE users (
    user_id UUID PRIMARY KEY,
    name TEXT,
    email TEXT
);

INSERT INTO users (user_id, name, email) VALUES (uuid(), 'Alice', 'alice@example.com');

Основные сценарии использования: хранение временных рядов, IoT-данных, пользовательских профилей — везде, где важна масштабируемость и скорость записи.

Ответ 18+ 🔞

Ну ты смотри, какая хитрая жопа вылезла — Cassandra! Это ж не просто база, это, блядь, распределённая NoSQL-шная махина типа wide-column store, если по-умному. Представь себе этакий склад, где данные в столбцах хранятся, только широких, дохуя широких! Спроектирована она с одной простой, гениальной идеей: чтобы не падала никогда и масштабировалась, как сука, на сотнях серверов.

Что в ней такого, а?

  • Масштабируется горизонтально и без башки: Тут нет главного узла, все равны, как в хорошем бардаке. Хочешь мощности — добавил новый сервер, и похуй. Никакой единой точки отказа, всё децентрализовано, красота!
  • Неубиваемая, как таракан: Данные сами копируются по узлам, а то и по дата-центрам. Часть кластера накрылась медным тазом — а системе похуй, работает дальше. Отказоустойчивость — просто пиздец!
  • Согласованность — на твой вкус: Тут, ёпта, можно самому выбирать, что тебе важнее: чтобы данные везде одинаковые были сразу (согласованность) или чтобы система всегда отвечала, даже если где-то хуйня (доступность). Настраиваешь, как душе угодно, по теореме CAP.
  • Пишет, как бог: Запись данных в эту штуку — просто овердохуища скорости. Оптимизирована под запись конкретно.

Общаешься с ней на CQL (Cassandra Query Language), который с виду на SQL похож, чтоб не пугать программистов.

Вот, смотри, как просто:

CREATE TABLE users (
    user_id UUID PRIMARY KEY,
    name TEXT,
    email TEXT
);

INSERT INTO users (user_id, name, email) VALUES (uuid(), 'Alice', 'alice@example.com');

Где эту зверюгу применяют? Да везде, где поток данных, как из ведра: временные ряды, показания с датчиков (этот ваш IoT), профили пользователей — короче, везде, где нужно жрать терабайты данных и не икать. Главное — масштабируемость и скорость записи, а на остальное, порой, можно и забить.