Получить доступ

Из чего состоит первичный ключ в Cassandra?

MiddleКолоночные БД
Ещё спрашивают так:
  • Что такое partition key и clustering key?
  • Как моделировать данные в Cassandra?
Коротко

Первичный ключ = partition key (на каком узле и в какой партиции лежат данные) + clustering columns (порядок строк внутри партиции).

  • Эффективны запросы по partition key с диапазоном по clustering columns
  • PRIMARY KEY ((chat_id), created_at, msg_id) — сообщения чата по времени
  • Партиция не должна расти бесконечно — добавляют бакет (день, месяц)

А ещё Моделирование от запросов: одна таблица на запрос, дублирование — норма

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Cassandra моделируется под запросы (query-first): partition key решает, на каком узле лежат данные и обеспечивает доступ по нему, а clustering columns задают сортировку внутри партиции. Эффективны только запросы по этому ключу, поэтому данные часто дублируют в несколько таблиц под разные паттерны.

Что хотят услышать

  • Две части ключа и их роли.
  • Какие запросы эффективны.
  • Ограничение размера партиции и бакеты.

Частые ошибки

  • Ожидать произвольных запросов по любым колонкам.
  • Выбирать монотонно растущий partition key (горячая партиция).

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Из partition key (узел/партиция) и clustering columns (порядок строк внутри партиции)
  • ✗Только из одного автоинкрементного id
  • ✗Из инвертированного индекса по всем колонкам
  • ✗Из внешнего ключа на другую таблицу

Что спросят дальше

  • Что такое LSM-дерево?
  • Чем wide-column отличается от колоночной OLAP-БД?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем