Этап 5 из 15 · ≈ 8 ч

NoSQL-хранилища

Основа с Middle

Документные, key-value, колоночные, поисковые и базы временных рядов — когда что выбирать.

семействопримерыдля чего
key-valueRedisкэш, сессии, счётчики, очереди
документныеMongoDBгибкая схема, документ целиком
колоночные аналитическиеClickHouseаналитика по миллиардам строк
wide-columnCassandraогромные объёмы записи, масштаб
поисковыеElasticsearch, OpenSearchполнотекстовый поиск
временные рядыTimescaleDB, VictoriaMetricsметрики, телеметрия

Что важно знать

  • Выбор — по паттерну доступа, а не по моде; PostgreSQL закрывает большинство задач.
  • Второе хранилище — это синхронизация данных и согласованность.

Критерии освоения

Middle ≈ 8 ч

  • Объясняет семейства NoSQL и выбирает хранилище под паттерн доступа
  • Использует Elasticsearch для полнотекстового поиска и понимает его согласованность

Практика. Добавить в сервис полнотекстовый поиск по товарам на Elasticsearch с синхронизацией из PostgreSQL.

Senior ≈ 6 ч

  • Обосновывает выбор хранилища для системы по нагрузке, согласованности и эксплуатации
  • Объясняет компромиссы CAP и PACELC на примерах конкретных баз

Практика. Для трёх сценариев (лента событий, каталог, метрики) выбрать хранилища и обосновать письменно.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что общего у большинства хранилищ, называемых NoSQL?Junior

NoSQL — не «без SQL», а размен: жертвуют соединениями, произвольными запросами и частью гарантий ради горизонтального масштаба, гибкой модели или скорости.

Полный разбор
Когда NoSQL база может быть лучше реляционной?Middle

NoSQL выбирают под конкретный паттерн доступа: документы, читаемые целиком; доступ по ключу с огромной нагрузкой; запись временных рядов; горизонтальное масштабирование записи. Цена — меньше JOIN и транзакций, схему проектируют под запросы.

Полный разбор
В кворумной системе из N реплик при каком условии чтение гарантированно увидит последнюю запись?Senior

При W + R > N множества реплик записи и чтения пересекаются, и чтение увидит последнюю подтверждённую запись. N — реплик, W — подтверждений записи, R — опрошенных при чтении.

Полный разбор
Что такое репликация данных?Junior

Репликация — копии одних и тех же данных на разных узлах: отказоустойчивость, масштабирование чтения, данные ближе к пользователям. Разделение на непересекающиеся части — это шардирование.

Полный разбор
Для чего Elasticsearch обычно используют в backend-системах?Middle

Для полнотекстового поиска (морфология, опечатки, релевантность), фасетов и фильтров по многим полям, поиска по логам и аналитики. Обычно это модель чтения рядом с основной базой, а не источник истины.

Полный разбор
Что добавляет PACELC к формулировке CAP?Senior

CAP говорит только про сбой; PACELC добавляет: иначе (Else), без разделения, выбираем между задержкой (Latency) и согласованностью (Consistency).

Полный разбор
Какие семейства принято выделять среди NoSQL-хранилищ?Middle

Четыре семейства: ключ-значение (Redis, DynamoDB), документные (MongoDB), wide-column (Cassandra, HBase), графовые (Neo4j).

Полный разбор
Что представляет собой документ в документоориентированной базе?Junior

Документ — самодостаточная запись с вложенной структурой (JSON/BSON): связанные данные лежат внутри, а не разнесены по таблицам.

Полный разбор
Какой доступ к данным предоставляет хранилище ключ-значение?Junior

Простейшая модель: get/put/delete по ключу, значение для хранилища непрозрачно.

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования