Разработка OLAP куба для анализа и оценки трейд-промо акций
Проект по автоматизации сбора данных из различных систем-источников и созданию единого пространства для хранения и обработки информации по промо
О Проекте
Компания, мировой лидер в производстве личной гигиены и бумажных изделий, обратились к нам с запросом по разработке OLAP куба для анализа и оценки эффективности трейд-промо акций. В рамках проекта должен был быть решен вопрос по автоматизированному сбору данных из различных систем-источников. Помимо этого необходимо было создать единое информационное пространство для хранения и обработки информации по промо. Также, одним из требований была реализация функционала обратной записи (WriteBack) для ввода прогнозных данных.
На момент начала проекта в компании отчёты по трейд-промо собирались аналитиками через скриптовый/ручной сбор данных из источников, поэтому существовала сильная зависимость от сотрудников, которые владели процессом регулярного сбора данных, а также много времени уходило на сбор и подготовку данных, вместо их анализа.
Объект анализа
Расскажем немного об объекте анализа, а именно о промо.
Промо (промо акция, трейд-промо мероприятие) – это вид активности для повышения продаж в торговых точках, например, желтые ценники, определенная выкладка, выделенные места продаж и т.д. У каждого промо есть бюджет (инвестиция), ожидаемый результат и фактическое исполнение.
Промо планируются заранее: промо-план формируется на календарный год вперед на основе согласованного бюджета компании. Ближе к дате промо заполняется прогноз по выполнению промо, после закрытия появляется факт. Процесс промо длится в среднем 3 месяца: сначала происходит заказ товара, затем отгрузка товара ретейлеру и далее – выход на полку.
На каждом этапе промо есть множество показателей, которые будут полезны для оценки эффективности, формировании прогнозов и принятии управленческих решений.
Реализация
Наша команда провела интервьюирование заинтересованных в решении структурных подразделений, проанализировала все требования, пожелания и существующие ограничения, погрузилась в новую для себя предметную область и сформировала техническое решение.
Система была развернута на существующей инфраструктуре Компании, построенной на базе стека продуктов Microsoft SQL Server и Microsoft Analysis Services.
Данные из источников собираются в Staging Area, где они хранятся в неизменном виде. Затем данные проходят процедуры ETL, которые загружают и обрабатывают данные из Staging Area и помещают их в витрины данных Data Mart в разбивке на факты и измерения. На этапе обработки данных также происходит мэппинг справочников и одинаковых сущностей из разных источников.
Далее, на основе данных из витрин Data Mart, строится OLAP куб, который позволяет получить более удобный и быстрый доступ к обработанным данным, производить анализ и формировать отчеты гибкой структуры в различных разрезах. Подключение к кубу возможно через Excel, Power BI или другие BI инструменты.
В OLAP кубе реализован ролевой доступ к данным через функционал Row-level security (RLS). RLS позволяет ограничивать доступ к строкам данных в кубе в зависимости от прав доступа пользователя. Это позволяет защитить конфиденциальную информацию и предотвратить несанкционированный доступ к данным, к которым пользователь не имеет права доступа.
В OLAP кубе также подключен функционал Writeback, который позволяет пользователям вносить данные по прогнозам непосредственно в куб, опираясь на значения других актуальных показателей и затем сохранять внесенные данные в хранилище. В базе данных также записывается история изменения показателей: кто, когда и какое изменение вносил в данные.
Хранилище и куб обновляются автоматически на ежедневной основе. Также настроены частичные обновления, которые обновляют данные не полностью, а только в части некоторых таблиц фактов, что позволяет поддерживать актуальность данных на постоянной основе. Все обновления отслеживаются специально разработанной службой мониторинга, которая отправляет уведомления на почту в случае ошибок в обновлении и помогает оперативно реагировать на них.
Таким образом, данная структура решения обеспечивает эффективную загрузку, обработку и анализ данных, что позволяет повысить эффективность деятельности аналитиков и принимать более обоснованные решения на подготовленных и актуальных данных.