Услуги 1С Услуги Битрикс 24 ИТ-инфраструктура и оборудование Серверные решения и сети Разработка сайтов

Как работает хранилище данных

Серверные решения и сети
Как работает хранилище данных

Многие слышали термин «хранилище данных», но представляют его просто как «большую базу, где всё лежит». На самом деле DWH устроен сложнее и интереснее. Это не один сервер и не одна программа, а целая архитектура, которая каждый день бесшумно собирает, чистит, структурирует и раскладывает информацию по полочкам. Пользователи даже не замечают её работы – они просто открывают отчёт в BI-системе и видят актуальные цифры.

Давайте разберём, как работает хранилище данных, из каких слоёв оно состоит и что происходит внутри в момент, когда менеджер вносит заказ в CRM.

Откуда берутся данные? Источники

Любое хранилище начинается с источников. Это все системы, в которых бизнес ежедневно фиксирует факты своей деятельности:

  • CRM (продажи, заявки, клиенты);
  • ERP и 1С (товары, склад, финансы);
  • маркетинговые системы (Яндекс.Метрика, Google Analytics, рекламные кабинеты);
  • колл-трекинг и чаты;
  • Excel-файлы с подрядчиками;
  • логи сайта и мобильного приложения.

Проблема в том, что все эти системы говорят на разных языках. В CRM дата «02.03.2025» записана как «02.03.2025», в 1С – как «2025-03-02», а в Excel – как «02.мар.2025». У одного клиента может быть три карточки с разными телефонами. Задача хранилища – привести этот хаос к единому стандарту.

Первый слой: зона временного хранения

Прежде чем данные попадут в «чистое» хранилище, они проходят через промежуточную зону. Представьте себе приёмный поклад на складе: груз привезли, выгрузили, проверили, что ничего не разбито, пересчитали – но на основное место хранения ещё не положили.

На техническом уровне промежуточная зона – это специальные таблицы в базе данных, куда информация копируется «как есть» из исходных систем. Здесь не происходит очистка или преобразование – только извлечение. Это нужно по двум причинам:

  • Чтобы не дёргать рабочую CRM каждый раз, когда хранилище перестраивает данные.
  • Чтобы иметь «сырой слой» для отладки и восстановления, если что-то пошло не так.

Процесс, который переносит данные из источника в промежуточную зону, а затем – в основное хранилище, называется ETL.

ETL: извлечение, преобразование, загрузка

ETL расшифровывается как Extract, Transform, Load – извлечение, преобразование, загрузка. Это сердце хранилища данных. Обычно ETL-процессы запускаются по расписанию: каждую ночь, каждый час или в реальном времени.

Шаг 1. Извлечение (Extract)

Специальные скрипты или ETL-инструменты подключаются к каждому источнику и забирают новые или изменённые записи. Чаще всего используется инкрементальная загрузка – то есть только то, что изменилось со вчерашнего дня. Это экономно и быстро.

Шаг 2. Преобразование (Transform)

Самый важный и трудоёмкий этап. Данные очищаются, нормализуются и приводятся к единому формату:

  • Удаляются дубликаты (один и тот же клиент – одна запись).
  • Исправляются ошибки (пустые поля заполняются значениями по умолчанию, даты приводятся к стандарту).
  • Переименовываются поля так, чтобы они имели понятные названия («client_id» вместо «cid_4321»).
  • Вычисляются новые показатели (например, сумма заказа = цена × количество).
  • Осуществляется денормализация – то есть данные из разных таблиц объединяются, чтобы ускорить будущие запросы.

Шаг 3. Загрузка (Load)

Очищенные и преобразованные данные записываются в основное хранилище. Если ETL отработал без ошибок, система переходит к следующему циклу. Если в процессе произошёл сбой (например, источник временно недоступен), хранилище не загружает «битые» данные и пишет лог для администратора. После загрузки старые данные в промежуточной зоне могут быть удалены или оставлены для аудита – это зависит от настроек.

Ядро DWH: хранилище в узком смысле

После ETL данные попадают в центральную зону хранилища. Здесь они организованы по принципу «звезда» или «снежинка» – это стандартные схемы моделирования для аналитических систем.

Выделяют два типа таблиц:

  • Таблицы фактов – содержат измеримые события (продажа, звонок, переход по рекламе). Здесь хранятся числа: сумма, количество, длительность.
  • Таблицы измерений – содержат контекст: кто продал, какой товар, в каком городе, в какой день. Это как подписи к цифрам.

Например, таблица факта «Продажи» может ссылаться на измерение «Клиент», измерение «Товар», измерение «Дата» и измерение «Менеджер».

Витрины данных (Data Marts)

Не всем пользователям нужно полное хранилище. Маркетологу – одни разрезы, логисту – другие, финансовому директору – третьи. Поэтому поверх основного DWH строят витрины данных – это срезы хранилища, «заточенные» под конкретный отдел или задачу.

Витрина может быть:

  • физической (отдельная база данных, куда копируются нужные таблицы);
  • логической (просто виртуальное представление с правами доступа к части исходных таблиц).

Для бизнес-пользователя витрина выглядит как готовая папка с отчётами. Он ничего не знает про ETL и промежуточную зону – просто открывает Power BI или Tableau и строит графики.

Как пользователи работают с DWH? BI-системы

Само по себе хранилище данных – это всё ещё база, в которой неудобно делать аналитику ручными SQL-запросами. Поэтому поверх DWH подключают BI-системы (Business Intelligence). Это интерфейсы с красивыми дашбордами, где руководитель может нажать пару кнопок и увидеть динамику продаж по дням.

BI-система генерирует SQL-запрос к хранилищу, получает результат и рисует график или сводную таблицу. Весь процесс занимает секунды, потому что данные уже очищены, структурированы и оптимизированы для аналитики.

Отличие DWH от обычной базы данных

Часто путают хранилище данных с обычной операционной базой (например, 1С или CRM). Разница фундаментальна:

Характеристика Обычная база (OLTP) Хранилище данных (OLAP)
Основная задача Быстро записать транзакцию (создать заказ) Быстро прочитать и агрегировать тысячи строк
Структура Нормализованная (много маленьких таблиц) Денормализованная (звезда, меньше JOIN)
Данные Только текущее состояние (или короткая история) История за годы
Нагрузка Много мелких запросов Мало, но очень тяжёлых запросов

DWH не нужен, чтобы оформлять заказы. Он нужен, чтобы понять, почему заказов стало больше или меньше, кто из клиентов самый прибыльный, как сработала рекламная кампания.

Компания Intez Group проектирует и внедряет хранилища данных любой сложности. Мы помогаем настроить ETL-процессы, спроектировать модель данных (звезда/снежинка), создать витрины и подключить BI-системы. Работаем с локальными и облачными решениями.

Наши услуги

1 / 1
1 / 1