DWH
Last updated
Last updated
Data Warehouse (DWH) — это единое корпоративное хранилище архивных данных из разных источников. Цель Data Warehouse — обеспечить компанию возможностью принимать верные решения в ключе управления бизнесом на основе целостной информационной картины.
В DWH данные из всех СУБД предприятия аккумулируют и очищают, формируя их единый источник. Благодаря этому Data Warehouse содержит самую точную информацию обо всех аспектах деятельности предприятия за годы работы.
Данные из хранилища затем можно визуализировать и проанализировать с помощью систем бизнес-аналитики (BI). Расширенные функции BI — это поиск закономерностей и взаимосвязей в данных (Data Mining), искусственный интеллект, машинное обучение и средства визуализации результатов. Перечисленные инструменты помогают бизнесу находить новые возможности на рынке и быстро их реализовывать, отталкиваясь от данных и прогнозных моделей.
Однако возникает вопрос: зачем использовать для аналитики отдельное хранилище, а не анализировать данные в каждой СУБД по отдельности, ведь DWH — это тоже база данных?
Дело в том, что Data Warehouse и транзакционные БД — это разные типы баз данных. Хранилище предназначено для анализа данных, которые поступают в него с определённой периодичностью — например, ежечасно или ежедневно. Оно разворачивается поверх СУБД и способно быстро обрабатывать большие массивы данных, собранные за несколько лет. DWH фактически — инструмент для комплексного анализа данных из множества источников: по товарам, сделкам, персоналу, логистике и т. д.
СУБД в основном предназначены не для аналитики, а для повседневной работы. Информация в них обновляется в реальном времени. В основе CRM, ERP, 1C и многих других систем и программ лежит именно функциональность БД. Актуальные сведения поступают сначала в основные БД, а уже оттуда значимые данные пересылаются в DWH. Таким образом удаётся получить целостную информационную картину.
Одна из моделей проектирования Data Warehouse — «слоеный пирог», построенный по архитектуре LSA, Layered Scalable Architecture.
Она реализует логическое деление структур с данными на несколько функциональных уровней:
Стейджинг (Primary Data Layer) — уровень, на котором подгружаются данные из внешних источников. Например, из таблиц, ERP-системы или биллинговой системы.
Ядро хранилища (Core Data Layer) — центральный уровень, который подгоняет данные к единым структурам и ключам. На этом слое обеспечивается целостность и качество данных.
Аналитические витрины (Data Mart Layer) — слой, который преобразует данные к структурам, удобным для анализа и использования в BI-дашбордах и других аналитических системах.
Сервисный слой (Service Layer) — уровень, на котором обеспечивается управление предыдущими слоями, мониторинг и диагностика ошибок.
Существует две модели, описывающие то, как должны быть устроены хранилища данных. Их идейные вдохновители — Билл Инмон, «отец хранилищ данных», и Ральф Кимбалл, идейный лидер в области хранилищ многомерных данных.
По модели Инмона (Inmon) данные из источников должны поступать в хранилище сразу после процесса ETL.
По модели Кимбалла (Kimball) после процесса ETL данные загружаются в витрины данных, а объединение витрин создает концептуальное (а не фактическое) хранилище данных.
От выбора двух подходов будет зависеть исходный результат. Представим хранилище в виде картотеки — библиотечного шкафа с карточками, в котором хранятся данные.
По Инмону мы сначала берем 10 карточек, выписываем из них самое важное на листочек и кладем в шкаф. Подобный подход используют в страховании. Сначала формируют общую картинку о всех застрахованных, собирают данные о доходе, возрасте, хронических болезнях, распространении определенных болезней в регионе, демографии, авариях на дорогах и пр. Все аспекты взаимосвязаны, поэтому сначала собираются все возможные данные, а после фильтруются и ложатся в основу модели.
По Кимбаллу мы начинаем с нескольких ящиков (витрин данных), а потом решаем, что сложить в общий шкаф. Такой подход используют, например, в маркетинге: чтобы анализировать рекламные кампании не нужно знать абсолютно все, к метрикам нужно подходить выборочно.
При создании DWH также следует учитывать и специфику данных, взаимосвязи внутри групп данных, связи между ними, типы преобразования данных, частоту обновления, взаимосвязь между объектами хранилища, процессы передачи, резервного копирования, восстановления.
Источник: