Типы NoSQL баз данных на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем спрашивают на собесе DE
NoSQL — обзорное знание для DE. На собесе: «зачем NoSQL», «отличие KV и document», «Cassandra для чего». Senior — нюансы CAP, consistency models.
Key-Value
Простейшая модель: key → value.
Redis. In-memory. Используется как:
- Cache.
- Session store.
- Rate limiter.
- Pub/Sub.
- Очередь (Streams).
- Counter (атомарные
INCR).
DynamoDB (AWS). Managed KV/document. Sub-10ms latency, авто-scale.
Применение:
- Cache layer перед SQL.
- Sessions / tokens.
- Real-time counters / leaderboards.
НЕ для: аналитики, complex queries, joins.
Document
Хранит JSON-документы. Schema flexible (no migrations).
MongoDB. Топ document БД. Поддержка:
- Nested documents.
- Aggregation framework.
- Indexes (включая text, geo).
- Transactions (с 4.0+).
- Replica sets, sharding.
Применение:
- Product catalog (полу-структурированные товары).
- User profiles с гибкими атрибутами.
- CMS контент.
- Event logs (хотя есть лучшие варианты).
НЕ для: строгие связи (joins дорогие), bulk-аналитика.
Wide-column
Cassandra, ScyllaDB. Распределённая, eventually consistent.
Модель — таблица с partition key + clustering keys + columns. Похоже на SQL, но distributed-first.
Свойства:
- Линейная масштабируемость на write.
- Multi-DC репликация.
- AP в CAP (доступность важнее consistency).
- Tunable consistency (per-query).
Применение:
- Time-series данные (события, метрики).
- IoT.
- Messaging (история чатов).
- High-write OLTP.
НЕ для: ad-hoc analytics, complex queries.
Graph
Neo4j, Amazon Neptune. Хранят nodes и edges с properties.
Cypher query language:
MATCH (u:User)-[:FRIEND]->(f:User)-[:FRIEND]->(fof:User)
WHERE u.id = 42
RETURN fofПрименение:
- Social networks.
- Fraud detection (graph patterns).
- Recommendation (graph traversal).
- Knowledge graphs.
НЕ для: простой OLTP, аналитика.
Time-series
InfluxDB, TimescaleDB, ClickHouse, Prometheus.
Оптимизированы под:
- High write throughput.
- Сжатие по времени.
- Window aggregations.
- Retention policies.
TimescaleDB — расширение Postgres, лучшее из обоих миров. CH — strong для analytics.
Применение:
- Metrics / monitoring.
- IoT sensor data.
- Financial ticks.
Когда NoSQL, когда SQL
SQL (Postgres, MySQL):
- Транзакции, ACID.
- Известная схема.
- Joins, complex queries.
- < TB-scale (или scale через шардинг).
NoSQL:
- High-write throughput (>50k/s).
- Schema flexibility.
- Гео-распределение.
- Specific access pattern (KV, graph traversal).
Hybrid (часто):
- Postgres для core OLTP.
- Redis для cache.
- ClickHouse для analytics.
- ElasticSearch для search.
Частые ошибки
MongoDB как primary OLTP. Без транзакций (до 4.0) — eventual consistency. Постгрес безопаснее для финансов.
Cassandra без partition key planning. Hot partition (один partition с миллиардами записей) убивает производительность.
Redis без persistence. RDB / AOF — обязательны если нужна durability.
NoSQL для всего. «Schema flexible» = «никто не знает, что в БД». Через год — chaos.
Joins в MongoDB через $lookup. Можно, но медленно. Если нужны joins — это SQL-задача.
Графовые алгоритмы на Postgres. Можно через recursive CTE, но Neo4j быстрее на сложных traversal.
Связанные темы
- DWH ClickHouse на собесе DE
- SQL vs NoSQL для SA
- Партиционирование в ClickHouse для DE
- Greenplum на собесе DE
- Подготовка к собесу Data Engineer
FAQ
MongoDB поддерживает транзакции?
С 4.0 — multi-document transactions внутри replica set. С 4.2 — distributed transactions. Дорогие, использовать осторожно.
Cassandra vs ScyllaDB?
ScyllaDB — переписанная Cassandra на C++. Сильно быстрее на том же hardware. Полностью совместима с Cassandra protocol.
Это официальная информация?
Нет. Статья основана на документации MongoDB, Cassandra, Redis, Neo4j.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.