О чём эта история
Российским брендом ROSTIC’S владеет компания «Юнирест». В сети 1200 ресторанов, и еженедельно они аккумулируют более 100 ГБ информации. Головной офис и партнёры‑франчайзи принимают решения по финансовому планированию, маркетингу, управлению поставками, обслуживанию ресторанов с учётом анализа этих данных.
Компания собирает, структурирует и анализирует информацию на собственной платформе данных. Эту платформу перенесли в Yandex Cloud, чтобы ускорить обработку данных и снять часть задач с разработчиков. При миграции пересмотрели архитектуру и для создания хранилища данных использовали управляемые сервисы Yandex Managed Service for Greenplum® и Yandex Managed Service for ClickHouse®. В результате команда проекта внедрила новые фреймворки, что ускорило обработку поступающих данных и подготовку аналитических отчётов в два раза. Кроме того, освободились ресурсы разработчиков, за счёт чего команда ускорила разработку новых технологических проектов в три раза.
Задача компании
ROSTIC’S — один из лидеров на российском рынке ресторанов быстрого обслуживания. В сети 1200 заведений, расположенных в 74 регионах страны. Брендом владеет компания «Юнирест».
Бизнес ROSTIC’S строится по модели франчайзинга, и партнёрам необходимо предоставлять актуальную информацию о бизнесе для принятия решений по управлению рестораном: как ускорить обслуживание и сборку заказов, оптимизировать работу курьеров, увеличить продажи.
Для сбора, структурирования и анализа информации из всех систем компания создала платформу данных. Уже на этапе разработки команда понимала, что объём хранимых данных будет стремительно расти. Поэтому в качестве инфраструктуры для проекта выбрали облачную платформу, которая позволяет гибко масштабировать ресурсы в зависимости от нагрузки. Компания изначально выбрала зарубежного провайдера, но со временем появились ограничения и выросли риски использования иностранной инфраструктуры. Поэтому возникла необходимость поиска российского поставщика облачных услуг.
Кроме того, компания стремилась оптимизировать ресурсы разработчиков, разгрузив их от части задач. Обслуживание инфраструктуры планировали передать провайдеру, а часть функций — аналитикам, что потребовало внедрения новых инструментов и сервисов. Также, учитывая, что рестораны ежедневно генерируют большие объёмы данных, для компании было критически важно обеспечить их быструю обработку. Поэтому вместе с миграцией команда пересмотрела архитектуру проекта и решила создать новую версию платформы данных.
«Юнирест» выбирала нового провайдера из российских поставщиков облачных решений, опираясь, в том числе, на опыт и отзывы коллег. Поскольку команда пересматривала архитектуру проекта и хотела переложить рутинные задачи на провайдера, то было важно наличие управляемых сервисов.
Среди российских провайдеров такие сервисы предлагает Yandex Cloud. Yandex Managed Service for Greenplum® и Yandex Managed Service for ClickHouse® подходили «Юниресту» для создания хранилища платформы данных. Дополнительным преимуществом стала возможность резервного копирования, что позволяет восстанавливать кластер Greenplum за выбранный период. Среди других плюсов команда проекта выделила удобный интерфейс, множество метрик, систему уведомлений и дашборды для оперативного контроля состояния кластеров. В итоге «Юнирест» остановила свой выбор на Yandex Cloud.
Новая платформа данных на базе управляемых сервисов Greenplum и ClickHouse
Изначально загрузка данных на платформу строилась на классическом ETL‑подходе (Extract, Transform, Load), при котором данные выгружаются из источников, преобразуются в необходимый формат и далее направляются в хранилище. Но у такого подхода были недостатки: необходимость вручную прописывать каждый пайплайн, пакетная загрузка данных (из‑за чего процессы могли потреблять значительные ресурсы), сложность в загрузке изменений из источников (что могло вести к потере данных). Чтобы решить эту задачу и оптимизировать процессы, компания собрала команду из 11 человек, включая троих дата‑аналитиков и четверых разработчиков, которая занялась созданием новой платформы данных.
Сейчас исходные данные поступают на платформу из 12 источников при помощи Airbyte, в том числе из программы для предприятий общественного питания R_Keeper, учётной системы 1С, банковских приложений, сервисов заказа доставки, сервиса для трекинга и аналитики мобильных приложений AppMetrica. Они попадают в сыром виде в озеро данных, которое организовано на базе Yandex Object Storage. Для загрузки данных выбрали концепцию Change Data Capture (CDC). При этом механизме в хранилище загружаются только изменённые данные, а не весь пакет, а также нет необходимости напрямую отправлять SQL‑запросы в базу данных. Такой подход позволил снизить нагрузку на систему‑источник. Как следствие, выросла и производительность платформы данных.
В озеро данных также поступают и «охлаждаются» исторические данные. Yandex Object Storage позволяет организовать хранение данных по партициям, распределённым по заданным временным интервалам, что упрощает извлечение нужной информации.
Для организации хранилища данных платформы выбрали связку Yandex Managed Service for Greenplum и Yandex Managed Service for ClickHouse. В Greenplum строятся быстрые слои хранилища: данные из Object Storage обрабатываются и структурируются. После чего они отправляются в ClickHouse, где строятся конечные витрины.
Для переноса данных между контурами хранения и обработки выбрали инструмент DBT (Data Build Tool) — фреймворк с открытым исходным кодом, с помощью которого выполняют, тестируют и документируют запросы. Для работы с ним можно оперировать языком SQL, который хорошо знаком аналитикам данных. Поэтому теперь они сами строят детальные витрины, и это освобождает время разработчиков. Для оркестрации DBT выбрали Apache Airflow™. Инструменты Airbyte и DBT развернули в кластерах Yandex Managed Service for Kubernetes®.
Витрины, созданные в Yandex Managed Service for ClickHouse, служат источником для BI‑платформы, в качестве которой компания выбрала «Форсайт». В ней пользователь видит уже готовые дашборды, отчёты, визуализированные данные. Также данные из Greenplum и ClickHouse используют дата‑сайентисты — на их основе обучают ML‑модели и строят прогнозы.
Результаты
Команда построила отказоустойчивую масштабируемую платформу данных в Yandex Cloud и активно использует её с 2022 года. В новой платформе данных удалось полностью отказаться от ETL‑подхода в пользу ELT. За счёт внедрения инструмента DBT команда сняла нагрузку с разработчиков и направила освободившиеся ресурсы на другие задачи. Наличие в Yandex Cloud систем мониторинга и оповещений помогло оперативно исправлять ошибки и следить за качеством данных. За счёт новой платформы данных компания ускорила разработку новых технологических проектов в три раза и в два раза быстрее готовит аналитические отчёты, например по продажам позиций из меню.
В будущем команда нацелена на развитие концепции Self‑service BI, при которой бизнес может сам строить аналитику по параметрам, которые ему необходимы. Большинство отчётов уже формируется на основании готовых данных. При таком подходе бизнес сможет самостоятельно проверять гипотезы и получать новые срезы данных без привлечения разработчиков.
Мнение
В Yandex Cloud можно развернуть и настроить сервис буквально в несколько кликов, благодаря чему мы можем проверять гипотезы и создавать MVP в сжатые сроки. А сервис Yandex Managed Service for Kubernetes позволяет нам оперативно развернуть любой продукт и оценить его эффективность, что ускоряет процесс разработки.