Как стать автором
Обновить

Локализация и рывок вперед: как мы разработали новый подход к облачному хранению данных для Hoff

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.1K

Всем привет! Я Слава Жуков, CDO в АЭРО, провайдере e-commerce & data-решений. Сегодня расскажу, как мы сделали облачное хранилище понятным и структурированным источником информации для Hoff.

Предыстория

В октябре 2021 года Hoff обратились за корректировкой разметки web-аналитики, но после нескольких консультаций стало ясно, что истинный запрос гораздо шире — в области работы с большими данными.

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

  • Внутреннее, в котором лежат ключевые данные ритейлера (продажи по товарам, регионам и др)

  • Облачное DWH, которое использовалось для работы продуктовых и маркетинговых аналитиков 

За 5 лет в облаке накопился внушительный пул данных об онлайн-заказах и поведении пользователей, а также легаси-код, который замедлял выполнение новых аналитических задач. Структура хранилища DWH на базе Google Cloud Platform влекла за собой недочеты, которые ставили под вопрос качество собираемой информации. Сырые данные из более чем 10 источников стекались в BigQuery, использовались для 155 дашбордов и занимали 1938 расчетных полей в 42 отчетах. Иногда данные могли противоречить друг другу, что усложняло принятие решений для бизнеса. 

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

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

Дискавери-фаза

Начали с анализа старой структуры: требовалось понять и описать картину as is, поэтому мы провели реверсивный инжиниринг. Начиная с конца, то есть от дашбордов, по цепочке «шли» к сырым данным в источниках, попутно выявляя все последовательности и правила преобразования.  

Это был один из самых сложных этапов, потому что потоки данных в облаке на старте проекта выглядели следующим образом:

Было обнаружено, что:

  • Из 93 ТБ данных в BigQuery почти треть — ненужные или устаревшие.

  • Объем еженедельных запросов к хранилищу из PowerBI составляет 29 ТБ.

  • Обработка запросов данных стоит компании порядка 3000$ в месяц.

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

Спасение данных и переезд

Сразу после аудита мы предложили перейти из BigQuery на open-source решения в Yandex Cloud, так как на текущем этапе развития платить за каждое обращение к данным было нерационально. Это казалось рискованным предложением на фоне привычных сервисов Google, но в феврале картина мира резко изменилась — риск отключения стал стимулом к локализации хранилища.

Как без паники выгрузить 93 ТБ данных ASAP, пока Google рассылает «письма счастья»? В этом помог аудит. С коллегами из Hoff оперативно решили, какие данные можем не забирать, прописали скрипты для разных сценариев выгрузки в s3 и подняли 3 виртуальные машины для синхронизации хранилища.

Благодаря проактивности всех участников процесса и помощи аналитиков из Hoff, уже спустя месяц у нас был доступ к историческим данным на случай отключения инфраструктуры Google.

Новое хранилище на базе open-source

Мы выбрали Clickhouse и Greenplum — это бесплатные сервисы с открытым исходным кодом, над которыми работает большое количество разработчиков. Из-за этого они, как правило, содержат меньше дефектов, быстрее обновляются и в целом обеспечивают гибкий рабочий процесс. При желании, текущую архитектуру Hoff можно быстро перенести из облака на локальные сервера без потери данных, в то время как BigQuery заставляет буквально с нуля пересобирать все хранилище. 

В то же время open-source — это про стабильность. Блокировка сервисов поставила под сомнение существование экосистемы данных множества компаний, а открытые решения снимают подобные риски.

Разработка архитектуры

Мы решили послойно развернуть хранилище в разных системах управления
Мы решили послойно развернуть хранилище в разных системах управления

Clickhouse хорошо работает с сырыми данными: за счет высокого сжатия хранилище занимает меньше места, но при этом даже единичные ad hoc запросы выполняются оперативно. Для ядра DWH выбрали Greenplum. Благодаря распределенной обработке, в нем можно быстро джойнить, изменять и фильтровать данные. В BigQuery аналитики Hoff работали только с raw data level, то есть с сырыми данными, которые мы перенесли в Clickhouse вместе с коннекторами. Предобработанные данные упорядочили в Greenplum в виде Data Vault 2.0.

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

В Data Vault переносятся только обработанные с помощью фреймворка DBT данные. Такой подход позволяет доверять информации в хранилище на 100%, не переживая об актуальности и достоверности. С помощью пайплайнов в Airflow мы настроили автоматическое обновление по заданному расписанию.

Благодаря выстроенным процессам и описанным регламентам сотрудники Hoff могут поддерживать эту систему самостоятельно.

Алертинг

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

Для новой архитектуры мы с нуля создали полноценную систему оповещений. Теперь при обнаружении ошибки уведомления будут появляться на всех этапах работы с ними — от загрузки сырых данных до дашбордов.

А при просмотре любого отчета сотрудники могут оценить его актуальность по трехцветной системе маркировки
А при просмотре любого отчета сотрудники могут оценить его актуальность по трехцветной системе маркировки

Витрины данных

Еще один важный этап работы — создание аналитических витрин или data mart. Это части хранилища в виде агрегированных таблиц, которые содержат данные по разным направлениям деятельности компании. Как правило, это ключевые метрики, которые можно комбинировать различными способами для дальнейшего анализа.

На основе витрин данных строится визуализация: один data mart может быть источником для 600 дашбордов. Ранее они делались из сырых данных, которые перед формированием отчета обрабатывал тот или иной отдел на основе своей экспертизы, а теперь — из предобработанной по единому стандарту информации.

Что в итоге

За год удалось с нуля пересобрать хранилище на облачной платформе и оптимизировать все данные: из 93 ТБ в ядро уложили 51 ТБ регулярно используемой информации. Сейчас ежедневный прирост сырых данных — около 15 ГБ, а в Data Vault — 3 ГБ единообразно обработанных.

За счет алгоритмов и разделения хранилища на слои, аналитики обращаются только к необходимому, подготовленному для работы объему информации. У специалистов стало уходить меньше времени на рутинные отчеты, что открыло возможности для новых проектов по развитию компании. 

Теги:
Хабы:
Рейтинг0
Комментарии13

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн