В прошлых уроках мы разобрали базы, которые обслуживают «живой» трафик (OLTP). Но что делать, если нам нужно анализировать терабайты данных, искать текст с опечатками или хранить аватарки пользователей?
1. Column-oriented (Колоночные)
Вспоминаем урок про OLTP и OLAP. Колоночные базы физически хранят данные не по строкам, а по столбцам. Если тебе нужно посчитать за год, база прочитает с диска только колонку SUM(revenue)revenue, проигнорировав имена, статусы и прочие данные.
- Примеры: ClickHouse, Amazon Redshift, Google BigQuery.
- Сценарии использования: Business Intelligence (BI), Data Warehouses (Хранилища данных), аналитика логов.
2. Time-Series (TSDB)
Если твои данные — это непрерывный поток событий (температура с датчика, загрузка CPU, цена акции), где главное поле — это (время), то тебе нужна Time-Series БД.timestamp
- Примеры: InfluxDB, Prometheus, TimescaleDB.
- Особенности: Феноменальная скорость потоковой записи. Умеют «сжимать» старые данные (downsampling) — например, хранить данные за сегодня посекундно, а данные за прошлый месяц усреднять до одного значения в день.
- Сценарии использования: Системы мониторинга (Графана), IoT-устройства, финансовые котировки.
3. Search Engines (Поисковые движки)
Классическая БД с индексом B-Tree так себе ищет текст. Запрос вида убьет твой Postgres (приведет к полному сканированию). Поисковые движки используют структуру Инвертированный индекс (Inverted Index).LIKE '%iphone%'
- Примеры: Elasticsearch, Apache Solr.
- Особенности: Поддержка морфологии (понимают, что «яблоко» и «яблоки» — одно и то же), опечаток, синонимов и ранжирования по релевантности.
- Сценарии использования: Строка поиска в интернет-магазине, сбор и анализ текстовых логов сервисов (ELK стек).
4. Vector DBs (Векторные БД)
Самый горячий тренд архитектуры. Текстовые поисковики (как Elastic) ищут по совпадению слов. Но что, если слова разные, а смысл один? Нейросети превращают текст или картинку в «вектор» (массив из сотен чисел, эмбеддинг). Векторная база хранит эти массивы и умеет невероятно быстро находить похожие.
- Примеры: Pinecone, Milvus, Qdrant, Weaviate.
- Сценарии использования: Поиск по смыслу (Semantic Search), генерация с дополненным контекстом (RAG) для LLM, поиск похожих изображений.
5. Object Storage / BLOB
Технически это не СУБД в классическом понимании (там нет транзакций или хитрых индексов). У файла есть ключ (URL), и ты можешь его по этому ключу скачать.
- Примеры: Amazon S3, MinIO.
- Особенности: Масштабируется до петабайтов. Самое дешевое хранилище из всех возможных.
- Сценарии использования: Аватарки пользователей, видео, статика для сайтов, бекапы (снимки) других баз данных.