Перейти к основному содержимому

Data Warehouse (DWH)

Хранилище данных — информационная система, в которой хранятся данные из разных источников. Используется для анализа, составления отчетов и интеграции данных транзакций.

Архитектура DWH

  • Нижний уровень: БД, объединяющие данные из источников информации (например, транзакционные СУБД или SaaS-сервисы).
  • Средний уровень: Сервисы и приложения, преобразующие данные в структуру для анализа и сложных запросов (например, сервер OLAP).
  • Верхний уровень: Инструменты для создания отчетов, визуализации и анализа. Также называют уровнем клиента.

Модели DWH

  • Виртуальное ХД: Отдельные БД, используемые совместно для доступа ко всем данным, как если бы они хранились в одном хранилище.
  • Модель витрины данных: Хранилища агрегированных данных по одной бизнес-сфере для отчетности и анализа.
  • Модель корпоративного ХД: Хранение агрегированных данных со всей организации.

Схемы DWH

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

  • Снежинка:
    Нормализованная версия «Звезды», где таблицы измерений делятся на подтаблицы. Экономит место, но усложняет запросы.
    Пример: Таблица «Клиенты» делится на персональные данные, контакты, адреса.

  • Anchor Modeling:
    Полная нормализация данных с якорями (таблицы с сущностями), атрибутами и связями. Удобно для добавления данных и расширения структуры.
    Пример: Якоря — клиенты, товары; атрибуты для клиента — имя, дата рождения; связи — покупки.

  • Data Vault:
    Гибридный подход, объединяющий плюсы «Звезды» и 3NF.
    Состоит из:

    • Хаб: Таблица с основными данными.
    • Ссылка: Соединяет и масштабирует систему.
    • Спутник: Хранит изменяющиеся атрибуты.
      Пример: Хабы для «Клиентов» и «Продуктов», ссылки связывают их с транзакциями, сателлиты хранят текущий адрес клиента или обновленные данные о продукте.

Методологии проектирования

Инмон: нисходящий подход

  • После процесса ETL создается нормализованная модель хранилища, из которой формируются витрины данных.
  • Пример: В страховании сначала формируется общая информация о застрахованных (доход, возраст, болезни), затем фильтруются данные для конкретных моделей.

Кимбалл: восходящий подход

  • Данные после ETL поступают в несколько независимых хранилищ для отдельных бизнес-направлений, которые затем объединяются в единое DWH.
  • Пример: Для анализа рекламных кампаний используются только выборочные метрики.

Пример работы DWH

  1. Извлечение данных (ETL) о транзакциях, счетах и клиентах из CRM, бухгалтерских баз или систем транзакций.
  2. Трансформация данных: удаление дублей, сопоставление клиентов с транзакциями, расчет суммарных значений (например, общих расходов).
  3. Загрузка по схеме «Звезда»: загрузка таблицы фактов (транзакции) и связанных таблиц измерений (клиенты, счета).
  4. Данные сохраняются в DWH и структурируются для доступа через OLAP-кубы или напрямую.
  5. Бизнес-аналитики или системы BI используют интерфейсы для анализа данных (например, отчеты по прибыли и убыткам).

Подборка материалов по теме DWH

  1. Что такое Data Warehouse
  2. Архитектура хранилищ данных: традиционная и облачная
  3. Как устроена работа с DWH в Lamoda
  4. Единое хранилище данных: опыт НМГ
  5. Хранилища данных: обзор технологий и подходов к проектированию
  6. Схема снежинки в модели хранилища данных
  7. 5 шагов проектирования DWH с Data Vault: практический пример
  8. Anchor Modeling и GP: презентация
  9. Хранилище данных и база данных: понимание различий

Видео

  1. Методология моделирования данных для Data Vault
  2. Курс "Создание хранилища данных"
  3. Евгений Ермаков: Data Vault и Anchor Modeling
  4. Все о корпоративных хранилищах данных (DWH)
  5. Архитектура хранилища данных и создание ETL потоков
  6. Роль Аналитика DWH: задачи и инструменты