Из чего состоит первичный ключ в Cassandra?
- Что такое partition key и clustering key?
- Как моделировать данные в Cassandra?
Первичный ключ = partition key (на каком узле и в какой партиции лежат данные) + clustering columns (порядок строк внутри партиции).
- Эффективны запросы по partition key с диапазоном по clustering columns
PRIMARY KEY ((chat_id), created_at, msg_id)— сообщения чата по времени- Партиция не должна расти бесконечно — добавляют бакет (день, месяц)
А ещё Моделирование от запросов: одна таблица на запрос, дублирование — норма
Подробно
Cassandra моделируется под запросы (query-first): partition key решает, на каком узле лежат данные и обеспечивает доступ по нему, а clustering columns задают сортировку внутри партиции. Эффективны только запросы по этому ключу, поэтому данные часто дублируют в несколько таблиц под разные паттерны.
Что хотят услышать
- Две части ключа и их роли.
- Какие запросы эффективны.
- Ограничение размера партиции и бакеты.
Частые ошибки
- Ожидать произвольных запросов по любым колонкам.
- Выбирать монотонно растущий partition key (горячая партиция).
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Из partition key (выбор партиции) и clustering columns (порядок внутри неё)
- ✗Только из одного автоинкрементного id
- ✗Из clustering key (выбор узла) и partition columns (сортировка)
- ✗Из внешнего ключа на другую таблицу
Что спросят дальше
- Что такое LSM-дерево?
- Чем wide-column отличается от колоночной OLAP-БД?
Разбор темы
- Колоночные БД: wide-column и аналитические
Разница между wide-column (Cassandra) и column-oriented OLAP (ClickHouse), partition/clustering keys, LSM-дерево и зачем хранить по колонкам.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.