БД для аналитики

В прошлых уроках мы разобрали базы, которые обслуживают «живой» трафик (OLTP). Но что делать, если нам нужно анализировать терабайты данных, искать текст с опечатками или хранить аватарки пользователей?

1. Column-oriented (Колоночные)

Вспоминаем урок про OLTP и OLAP. Колоночные базы физически хранят данные не по строкам, а по столбцам. Если тебе нужно посчитать SUM(revenue) за год, база прочитает с диска только колонку revenue, проигнорировав имена, статусы и прочие данные.

  • Примеры: ClickHouse, Amazon Redshift, Google BigQuery.
  • Сценарии использования: Business Intelligence (BI), Data Warehouses (Хранилища данных), аналитика логов.
2. Time-Series (TSDB)

Если твои данные — это непрерывный поток событий (температура с датчика, загрузка CPU, цена акции), где главное поле — это timestamp (время), то тебе нужна Time-Series БД.

  • Примеры: InfluxDB, Prometheus, TimescaleDB.
  • Особенности: Феноменальная скорость потоковой записи. Умеют «сжимать» старые данные (downsampling) — например, хранить данные за сегодня посекундно, а данные за прошлый месяц усреднять до одного значения в день.
  • Сценарии использования: Системы мониторинга (Графана), IoT-устройства, финансовые котировки.
3. Search Engines (Поисковые движки)

Классическая БД с индексом B-Tree так себе ищет текст. Запрос вида LIKE '%iphone%' убьет твой Postgres (приведет к полному сканированию). Поисковые движки используют структуру Инвертированный индекс (Inverted Index).

  • Примеры: Elasticsearch, Apache Solr.
  • Особенности: Поддержка морфологии (понимают, что «яблоко» и «яблоки» — одно и то же), опечаток, синонимов и ранжирования по релевантности.
  • Сценарии использования: Строка поиска в интернет-магазине, сбор и анализ текстовых логов сервисов (ELK стек).
4. Vector DBs (Векторные БД)

Самый горячий тренд архитектуры. Текстовые поисковики (как Elastic) ищут по совпадению слов. Но что, если слова разные, а смысл один? Нейросети превращают текст или картинку в «вектор» (массив из сотен чисел, эмбеддинг). Векторная база хранит эти массивы и умеет невероятно быстро находить похожие.

  • Примеры: Pinecone, Milvus, Qdrant, Weaviate.
  • Сценарии использования: Поиск по смыслу (Semantic Search), генерация с дополненным контекстом (RAG) для LLM, поиск похожих изображений.
5. Object Storage / BLOB

Технически это не СУБД в классическом понимании (там нет транзакций или хитрых индексов). У файла есть ключ (URL), и ты можешь его по этому ключу скачать.

  • Примеры: Amazon S3, MinIO.
  • Особенности: Масштабируется до петабайтов. Самое дешевое хранилище из всех возможных.
  • Сценарии использования: Аватарки пользователей, видео, статика для сайтов, бекапы (снимки) других баз данных.