Какие семейства принято выделять среди NoSQL-хранилищ?
- Какие бывают NoSQL-базы?
Четыре семейства: ключ-значение (Redis, DynamoDB), документные (MongoDB), wide-column (Cassandra, HBase), графовые (Neo4j).
- Ключ-значение — доступ строго по ключу
- Документные — иерархические документы, запросы по полям
- Wide-column — партиции с отсортированными строками, огромная запись
А ещё Отдельно — поисковые (Elasticsearch) и временных рядов (InfluxDB, VictoriaMetrics)
Подробно
Различает их прежде всего то, какие запросы дешевы. Ключ-значение даёт максимально быстрый доступ по ключу и ничего больше. Документные позволяют хранить вложенные структуры и искать по их полям. Wide-column оптимизированы под запись и выборку по ключу партиции с диапазоном по колонкам кластеризации. Графовые делают дешёвым обход связей, что в реляционной модели вырождается в множественные соединения. Реляционная СУБД с поддержкой JSON остаётся реляционной — и это важный практический аргумент: современный PostgreSQL закрывает значительную часть документных сценариев, не заставляя отказываться от транзакций и соединений.
Что хотят услышать
- Четыре семейства с примерами.
- Модель доступа каждого.
Частые ошибки
- Считать NoSQL единой технологией с общими свойствами.
- Игнорировать возможность решить задачу JSON-полями в реляционной базе.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Ключ-значение
- ✓Документоориентированные
- ✓Wide-column (семейства колонок) и графовые
- ✗Реляционные с поддержкой JSON
Что спросят дальше
- Для каких запросов графовая база выигрывает у реляционной?
- Когда JSONB в PostgreSQL заменяет документную базу?
Разбор темы
- NoSQL: семейства и когда их выбирать
Почему появился NoSQL, моделирование от access patterns, четыре семейства хранилищ, BASE против ACID и горизонтальное масштабирование.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.