Что такое хранилище данных (Data Warehouse)?
Хранилище данных (DWH) — отдельная база, куда собирают данные из всех систем компании специально для анализа и отчётности. Она хранит историю, приведённую к единой структуре, и не мешает работе основных приложений.
Обычная база приложения оптимизирована под быстрые операции с отдельными записями: создать заказ, обновить статус. Тяжёлый аналитический запрос по всем годам на такой базе замедлит рабочую систему, поэтому аналитику выносят отдельно.
Помимо разгрузки, хранилище решает вопрос единой версии правды: одни и те же справочники, согласованные определения метрик и полная история изменений. Данные попадают туда через ETL-процессы — обычно по расписанию, ночью.
Где применяется
Хранилище появляется, когда компания перерастает отчётность «из одной базы». Данные о заказах живут в интернет-магазине, оплаты — в учётной системе, обращения — в CRM, расходы — в рекламных кабинетах; собрать из этого единый отчёт напрямую невозможно.
Сейчас такие хранилища чаще всего облачные: BigQuery, Snowflake, Redshift или PostgreSQL для небольших объёмов. Структуру проектируют звездой — таблица фактов с событиями и справочники вокруг неё, — а наполняют ETL-процессами по ночам. Поверх работают BI-инструменты и аналитики со своими запросами.
Пример
Аналитик хочет посчитать выручку по когортам клиентов за три года. В базе интернет-магазина такой запрос повесит сайт на несколько минут. В хранилище он выполняется на копии данных, которая для этого и предназначена, и никто из покупателей ничего не замечает.
SELECT d.year_month,
s.region,
SUM(f.revenue) AS revenue
FROM fact_sales f
JOIN dim_date d ON d.date_key = f.date_key
JOIN dim_store s ON s.store_key = f.store_key
GROUP BY d.year_month, s.region
ORDER BY d.year_month; Частые вопросы
Чем хранилище отличается от обычной базы данных?
Назначением. База приложения оптимизирована под частые операции с отдельными записями и работает в реальном времени. Хранилище рассчитано на тяжёлые запросы по всей истории сразу и обновляется порциями по расписанию, не мешая работе продукта.
Что такое data lake и чем он отличается от хранилища?
Озеро данных хранит всё подряд в исходном виде: логи, файлы, выгрузки, изображения — без заранее заданной структуры. Хранилище содержит очищенные и согласованные данные, готовые для отчётности. Часто их используют вместе: озеро как первичный склад, хранилище как витрина.
Нужно ли хранилище небольшой компании?
Не всегда. Пока источник один и объёмы небольшие, отчёты можно строить прямо на копии базы. Повод задуматься появляется, когда источников становится несколько, а разные отделы начинают приносить на встречу разные цифры по одному и тому же показателю.
Как часто обновляют данные в хранилище?
Чаще всего раз в сутки ночью — этого достаточно для управленческой отчётности. Там, где решения принимаются быстрее, настраивают загрузку каждый час или потоковую передачу. Чем ближе к реальному времени, тем дороже обходится инфраструктура и поддержка.