Кейс Hoff: как бизнесу получить максимум от данных для продуктовой аналитики и digital-маркетинга

Рассказываем, как компании распутать десятки терабайт данных, реагировать на ошибки в них в 3 раза быстрее и сократить время на подготовку аналитических отчётов до 20 минут.

Кирилл Фридлянд
Директор по управлению данными (CDO) Hoff Tech

Hoff — большая сеть гипермаркетов мебели и товаров для дома, сайт hoff.ru и мобильное приложение используют более 113 миллионов клиентов. Чтобы проводить продуктовый и маркетинговый анализ, мы собираем много информации. В локальном хранилище у нас находятся ключевые данные, такие как продажи, остатки и движения товаров. А вот в облачном Data Warehouse (DWH) мы храним информацию о событиях и действия клиентов на сайте и в приложениях, о просмотрах товаров, конверсиях и спросе в Интернете. За 5 лет накопилось 93 ТБ сырых данных из более чем 10 различных источников. На основе этих данных мы строим аналитику, всего сотрудники используют 155 различных дашбордов и формируют 42 отчёта.

Изначально мы хотели повысить качество веб-аналитики. Структура хранилища была запутанной, а данные в нём иногда противоречили друг другу, что замедляло и усложняло создание отчётов.

Для решения проблемы мы обратились в e-сommerce агентство Aero. В процессе обсуждения проекта выяснилось, что устранить противоречия в данных и ускорить работу с хранилищем DWH можно только с помощью полного рефакторинга. Кроме того, возникла необходимость миграции хранилища на российскую платформу, поэтому совместно с Aero мы решили полностью перестроить архитектуру: создать масштабируемое DWH с едиными принципами хранения для всех данных и системой алертинга для контроля качества.

Как «распутать» 93 ТБ данных

Мы сформировали команду из специалистов Hoff, Hoff Tech и Aero. Это был сложный этап работы. 93 ТБ данных использовались для создания дашбордов и отчётов, которые содержали 1938 расчётных полей. Команда провела реверс-инжиниринг: начиная с дашбордов отслеживали путь данных к источникам, выявляя последовательности и правила преобразования.

В начале проекта общая схема потоков данных выглядела так:

Упорядочить эти потоки данных удалось благодаря последовательной отработке скриптов и разбивки данных по источникам. Итоговый упорядоченный граф:

В результате мы определили, что почти треть накопленной за 5 лет информации устарела или не используется. Мы совместно решали, какие из этих данных не нужно переносить в новое хранилище.

Кроме того, выяснилось, что еженедельно из Power BI запрашивается 29 ТБ данных для построения аналитики. Изначально наше DWH было развёрнуто на облачной платформе, которая предусматривала оплату за каждое обращение к данным. При такой схеме использования затраты на эти запросы составляли порядка 3000 долларов в месяц.

Оптимизация расходов и опенсорс-продукты

Aero предложили использовать опенсорс-продукты, что позволило бы избежать платы за каждый запрос данных и при этом разворачивать DWH на любой инфраструктуре. Мы хотели локализовать хранилище, поэтому новую облачную платформу нужно было найти в России. Выбрали Yandex Cloud — платформа предоставляет управляемые сервисы аналитической СУБД ClickHouse и массивно-параллельной СУБД Greenplum, которые хорошо подошли для проекта.

Clickhouse и Greenplum — это бесплатные опенсорс-продукты, над которыми работает большое сообщество. Они, как правило, содержат меньше дефектов, быстрее обновляются и не зависят от политики какой-либо компании. Архитектуру, использующую эти продукты, можно быстро масштабировать или перенести на любую инфраструктуру без потери данных и пересборки хранилища с нуля.

Clickhouse хорошо работает с сырыми данными: за счёт высокого сжатия хранилище занимает меньше места, но при этом даже единичные ad hoc запросы выполняются оперативно. Благодаря распределённой обработке, в Greenplum можно быстро изменять, фильтровать и связывать данные.

Многослойная архитектура, визуализация данных и алертинг

Aero спроектировали гибридную модель, суть которой — дробление массива данных на логические сегменты. В таком формате нашим сотрудникам удобнее работать с хранилищем: можно компилировать информацию в зависимости от конкретных потребностей.

Для её реализации мы решили послойно развернуть хранилище DWH в разных системах управления.

В старом хранилище аналитики могли работать только с сырыми данными. В новом DWH эту данные мы перенесли в ClickHouse вместе с коннекторами, что позволяет хранить все сырые данные из источников в одной СУБД.

Для ядра DWH мы выбрали Greenplum. Data Vault 2.0 Greenplum предполагает хранение только высоконормализованных данных. Поэтому предварительно мы обрабатываем сырые данные, поступающие из ClickHouse, с помощью фреймворка DBT. Такой подход позволяет избежать повторов данных и противоречий, можно доверять информации в хранилище на 100%, не переживая об актуальности и достоверности. Данные автоматически обновляются по заданному расписанию с помощью настроенных пайплайнов в Airflow. Благодаря чётко выстроенным процессам и описанным регламентам, наши сотрудники могут поддерживать эту систему самостоятельно.

Ещё один важный этап работы — создание аналитических витрин данных. Это части хранилища в виде агрегированных таблиц, которые содержат данные по разным направлениям деятельности Hoff. Это ключевые метрики, которые можно комбинировать различными способами для дальнейшего анализа. На основе витрин данных строится визуализация в Yandex DataLens. Одна витрина данных может быть источником для множества дашбордов. В старом хранилище мы работали только с сырыми данными, поэтому дашборды и отчёты каждый отдел компании строил исходя из собственной экспертизы. Теперь эти отчёты создаются из предобработанной по единому стандарту информации.

Кроме того, для нашего DWH Aero создали с нуля систему алертинга. Теперь актуальность отчётов определяется с помощью трехцветной системы маркировки, это позволяет избежать попадание устаревших данных в аналитику. При обнаружении ошибок на всех этапах загрузки и обработки данных работает система оповещений, что позволяет избежать работы с неконсистентной или неверной информацией.

Результаты

За 1 год нам с Aero удалось полностью пересобрать облачный DWH. После анализа и оптимизации данных мы сократили их объём с 93 ТБ до 51 ТБ. При этом в новое хранилище ежедневно поступает 15 ГБ сырых данных, а из них в Data Vault Greenplum попадает 3 ГБ высоконормализованных данных. Работа с предварительно подготовленной информацией позволила сократить время на подготовку аналитического отчёта до 20 минут.

Созданная многоуровневая архитектура и использование управляемых облачных сервисов позволяют легко масштабировать проект. При регулярно растущем объёме данных DWH можно трансформировать в Data Lake без потери качества структуры.

Константин Пешехонов
Генеральный директор в Hoff Tech

Объем рынка онлайн-торговли в России ежегодно растет. Появляются новые игроки, увеличивается конкуренция и в борьбе за внимание потребителя выигрывает тот, кто умеет работать с данными, развивает продуктовую аналитику и маркетинг. Это позволяет предлагать наиболее релевантные товары, предугадывать интересы и тренды, эффективнее распоряжаться бюджетом

Появилась единая методология очистки и подготовки данных — теперь вероятность разночтений сведена к минимуму. При появлении нового источника достаточно прописать новый алгоритм, после чего сырые данные будут автоматически приводиться в стандартный вид и попадать в Data Valut. Разработанная система алертинга позволяет оперативно оповещать аналитиков — скорость реагирования на ошибки увеличилась в 3 раза. Всё это позволяет поддерживать достоверность информации.

Мы оптимизировали затраты на DWH: теперь не нужно платить за каждое обращение к данным. Бюджет при переходе в новое облако не изменился, а количество задач и объём разметки для продуктовой аналитики регулярно растут.

Подписывайтесь на блог Yandex Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории наших партнеров и клиентов, которые активно читают наши подписчики:

0
4 комментария
Искатель историй

В статье нет дат и времени когда что происходило

Ответить
Развернуть ветку
GR

Как насчитали 113 миллионов клиентов себе?

Ответить
Развернуть ветку
Не очень хороший человек

1 + 1 + 3 = 113 миллионов

Ответить
Развернуть ветку
Сергей Поляков

113 миллионов айди за 5 лет На сайте и мобилке=113 млн клиентов? В сболе похожие цифры, но хофф…

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда