Что такое DWH (хранилище данных)?

«Что такое DWH (хранилище данных)?» — вопрос из категории Моделирование данных и DWH, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DWH (Data Warehouse, хранилище данных) — это централизованное, предметно-ориентированное, интегрированное и неизменяемое хранилище исторических данных, собранных из различных операционных систем (OLTP). Оно предназначено для поддержки бизнес-аналитики (BI), отчетности и принятия решений, а не для обработки транзакций.

Ключевые характеристики (по Инмону):

  1. Предметная ориентация: Данные организованы вокруг ключевых бизнес-сущностей (клиенты, продукты, продажи), а не вокруг операционных процессов.
  2. Интегрированность: Данные из разных источников (CRM, ERP, лог-файлы) приводятся к единым стандартам именования, форматов и единиц измерения.
  3. Неизменяемость (Time-Variant): Данные добавляются, но не обновляются или удаляются в контексте истории. Каждая запись имеет временную метку, что позволяет анализировать изменения во времени.
  4. Нерегламентированность (Nonvolatile): После загрузки данные в DWH, как правило, не изменяются. Операции — это добавление новых данных и их чтение.

Типичная архитектура:

  • Источники данных (OLTP-системы): Базы данных заказов, логистики, веб-сервисы.
  • ETL/ELT-процесс:
    • Extract (Извлечение): Получение данных из источников.
    • Transform (Трансформация): Очистка, стандартизация, обогащение и бизнес-преобразования.
    • Load (Загрузка): Загрузка подготовленных данных в хранилище.
  • Слой хранения: Само хранилище, часто использующее звездообразную или снежинную схему с фактами и измерениями для оптимизации аналитических запросов.
  • Слой представления: Витрины данных (Data Marts), оптимизированные под нужды конкретных департаментов (финансы, маркетинг).
  • Инструменты доступа: BI-системы (Tableau, Power BI), SQL-клиенты для аналитиков.

Почему не использовать OLTP-базу для аналитики? Аналитические запросы (JOIN по большим таблицам, агрегации) в OLTP-системах выполняются медленно, мешают операционной работе и используют неподходящую нормализованную схему. DWH решает эти проблемы, предоставляя оптимизированную для чтения модель.