Data & Analytics

DWH / хранилища данных

Data Warehouse, корпоративное хранилище данных — единая база, куда сводят данные всех систем компании для аналитики и отчётности.

Что такое DWH

DWH (Data Warehouse, в русских документах — КХД, корпоративное хранилище данных; в разговоре «дэ-вэ-ха» или «двх») — отдельная база, куда регулярно сводят данные из всех систем компании: CRM, биллинга, склада, сайта, логов. Задача одна: дать аналитику возможность посчитать любой срез по всей компании, не трогая боевые базы и не сводя выгрузки в Excel вручную.

Ключевое отличие от обычной БД — назначение. Боевая база приложения оптимизирована под короткие транзакции: взять заказ по ID, обновить статус. Хранилище оптимизировано под противоположное — прочитать 300 млн строк, сгруппировать и отдать 20 чисел. Это разные режимы работы, и совмещать их в одной базе — верный способ уронить продакшен отчётом.

Слои хранилища

Классическая раскладка, к которой сходится большинство проектов:

Слой Что лежит Кто трогает
Raw / Staging / ODS Сырые копии источников как есть Только ETL
DDS / Core Очищенная модель предметной области Инженеры данных
Data Marts (витрины) Готовые агрегаты под конкретный отдел Аналитики, BI

Что такое витрина данных

Витрина данных (data mart) — срез хранилища, подготовленный под одну предметную область или одну команду: витрина продаж, витрина маркетинга, витрина финансов. Технически это таблица или набор таблиц с уже посчитанными агрегатами и понятными названиями колонок.

Зачем витрины нужны, если есть ядро:

  • Скорость. Агрегат посчитан заранее, дашборд не пересчитывает 300 млн строк на каждое открытие.
  • Понятность. В ядре — нормализованная модель на 200 таблиц, в витрине — одна плоская таблица, где выручка называется выручка.
  • Разграничение доступа. Маркетингу отдают витрину без зарплат и персональных данных.

Витрину строят чаще всего по схеме «звезда»: центральная таблица фактов (каждая строка — событие: продажа, клик, платёж) и справочники-измерения вокруг (клиент, товар, дата, регион). Если справочники дополнительно нормализованы — это «снежинка».

Что такое Data Lake

Data Lake (озеро данных) — хранилище сырых файлов в исходном виде: логи, JSON, выгрузки, фото, Parquet. Схема не задаётся при записи, а применяется при чтении (schema-on-read). Складывают всё подряд и по дешёвке — обычно в object storage.

DWH Data Lake Lakehouse
Что хранит Структурированные таблицы Файлы в любом формате Файлы + табличный слой
Схема При записи При чтении При записи, поверх файлов
Стоимость хранения Высокая Низкая Низкая
Кто пользуется Аналитики, BI Инженеры, Data Science И те, и другие
Транзакции, UPDATE Есть Нет Есть (Iceberg, Delta)
Риск Дорого хранить лишнее Превращается в «болото» Стек сложнее

Lakehouse — попытка снять компромисс: файлы лежат в дешёвом object storage, а поверх них табличный формат (Apache Iceberg, Delta Lake, Hudi) даёт схему, версионирование и ACID. Читает всё это Spark или Trino.

Честная оговорка: «озеро» без каталога, владельцев и описаний за год превращается в свалку, где никто не знает, какая из выгрузок актуальна. Data Lake — это дисциплина, а не бакет.

На чём строят

  • Greenplum — MPP на базе PostgreSQL, классический выбор для корпоративного DWH, в том числе on-premise.
  • ClickHouse — колоночная СУБД, отлично держит витрины и события; часто закрывает задачу без кластера.
  • PostgreSQL — вполне достаточно для хранилища на сотни ГБ, не надо усложнять раньше времени.
  • Snowflake, BigQuery — облачные хранилища с разделением хранения и вычислений.

Инфраструктура

Хранилище живёт по расписанию: ночью загрузка и пересчёт витрин, днём запросы аналитиков. Отсюда практика — держать сырой слой в object storage, а быстрые диски отдавать только под витрины. Требования к железу тоже смещены: аналитический запрос читает колонки целиком, поэтому важнее пропускная способность дисков и объём RAM под кеш, чем частота CPU. И отдельный пункт — резервное копирование: DWH можно пересобрать из источников, но пересборка трёхлетней истории занимает недели, поэтому бэкапят его как обычную боевую систему.

Связанные термины

  • ETL / интеграция данных — как данные попадают в хранилище
  • OLAP — режим работы, под который DWH построен
  • BI-системы — то, что читает витрины
  • Greenplum — MPP-СУБД под корпоративное хранилище
  • ClickHouse — колоночная СУБД для витрин и событий
  • Big Data — когда хранилища перестаёт хватать одной машины

Готовы запустить GPU-задачу?

Запустить GPU-сервер