Ответ
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), профили пользователей — короче, везде, где нужно жрать терабайты данных и не икать. Главное — масштабируемость и скорость записи, а на остальное, порой, можно и забить.