В «Магните» внедряют Lakehouse, развернутый в «Яндекс.Облаке» на базе решений open source. Этот проект направлен на замену используемой платформы данных и является важной частью программы импортозамещения. Более того, с его помощью компания планирует существенно улучшить качество дата-сервисов. О реализации проекта рассказывает Сергей Черномырдин, руководитель направления по архитектуре данных «Магнита» и номинант на премию Data Award.
- В чем суть реализуемого в «Магните» проекта?
В рамках программы проектов по импортозамещению и стратегической задачи по демократизации данных мы внедряем корпоративный Lakehouse. Это решение меняет подход к работе с данными, делая их и инструменты для их анализа более доступными.
Основной фокус хочу сделать на уже находящейся в эксплуатации системе, переосмысляющей традиционные задачи по работе с данными. В Lakehouse хранятся сырые данные, но эти данные в ряде случаев еще и приведены к реляционной структуре. В этом формате мы отслеживаем реальные изменения и сохраняем всю их историю с момента интеграции, позволяя восстановить состояние информационной системы на любую дату. Это критично для расследования инцидентов и некоторых бизнес-кейсов, а также позволяет говорить о дополнительном контуре резервирования этих данных в Lakehouse.
Кроме того, в Lakehouse встроены проверки качества данных – как синхронные, так и асинхронные – и проведена интеграция с корпоративным каталогом данных и бизнес-глоссарием. Про него мы подробно рассказывали в прошлом году, благодаря чему стали лауреатами Data Award 2024.
- Системы Lakehouse внедряются уже повсеместно. Чем выделяется ваш проект?
Во-первых, это первый в отрасли корпоративный Lakehouse в публичном облаке. Во-вторых, Lakehouse выполняет функцию Data Hub – данные используются не только для аналитики, но и для операционных процессов, в том числе критически важных для работы магазинов и логистики.
Кроме того, нам удалось децентрализовать задачу подключения информационных систем к Lakehouse – команды поставщиков данных сами описывают свои данные и готовятся к интеграции. Это почти self-service. И этот self-service мы развиваем, хотим, чтобы у производителей данных была возможность самостоятельно опубликовать свои данные в Lakehouse.
Мы стремимся к максимальной автоматизации в части интеграции для загрузки в Lakehouse. В результате новый источник данных подключается за считанные дни. Аналитик заполняет шаблон с метаданными потока, после чего он генерируется почти без привлечения разработчиков.
Lakehouse является обязательным этапом публикации бизнес-данных – интеграция становится стандартом, а не опцией. Интеграции подлежат все информационные системы компании, порождающие бизнес-данные.
Конечно, платформа работы с данными у нас уже существовала, но новая архитектура позволяет не просто хранить данные, а выстраивать вокруг них правильные процессы, развивая культуру data-driven. Теперь команды умеют самостоятельно готовить данные для публикации, сам процесс интеграции после этого занимает 1–2 дня.
Мы также каталогизируем и описываем все бизнес-данные компании в Magnit Data, а не только те, что нужны здесь и сейчас. В перспективе пользователи смогут инициировать подключение нужных данных в один клик внутри портала. Мы хотим, чтобы наши пользователи заказывали данные так же быстро и удобно, как доставку еды.
При этом, размещая данные в Lakehouse, информационные системы избавляются от необходимости поддержки множества интеграций и ручной подготовки данных — все уже доступно и централизовано.
- На каких платформах реализовано решение?
Платформа развернута в «Яндекс.Облаке» и построена на базе решений категории open source, «обернутых» в продукты вендора Data Sapience. Также мы используем некоторые нативные сервисы «Яндекс.Облака».
Основные используемые технологии: хранение данных — S3, Parquet, Iceberg, HMS; интеграции и ETL – Kafka, Debezium, Flink, Spark; фреймворки и DevOps – Airflow, Kubernetes, PostgreSQL, Prometheus, Grafana, GitLab; доступ и безопасность – Impala, Ranger.
В первой фазе проекта основное внимание уделялось импортозамещению технологий текущей платформы данных, развертыванию безопасного и экономичного облачного решения и обеспечению масштабируемости за счет автоматизированного управления ресурсами. Облачная модель pay-as-you-go позволяет предоставлять и затем освобождать вычислительные ресурсы по мере необходимости, что снижает затраты на инфраструктуру и позволяет эффективно управлять стоимостью владения.
- Как осуществляется интеграция с источниками?
Системы в компании очень разные, но мы попытались унифицировать стандарт интеграции с Lakehouse с помощью ограниченного числа инструментов. Системы уже сейчас отдают в платформу совершенно разные данные, которые используются для выполнения задач разными бизнес-заказчиками. В зависимости от природы возникновения данных, а также особенностей их хранения, обновления и демографии, команда информационной системы с использованием публичных инструкций определяет способ интеграции с Lakehouse.
В рамках проекта уже подключены более 50 информационных систем. При этом почти 40 подключений удалось выполнить всего за два месяца. Также нам удалось проверить работоспособность более 15 разных комбинаций инструментов и коннекторов: Batch и CDC интеграции с разными типами СУБД, а также файловые интеграции разных типов с использованием разных каналов передачи (Kafka, SFTP, S3).
Наша цель – до 2027 года подключить все источники бизнес-данных компании к Lakehouse.
- Какие сложности возникали?
В ходе проекта мы неоднократно отклонялись от первоначальных его границ. Возникла потребность в расширении перечня способов интеграции для импорта данных – например, оказалось, что «1С» не может отправлять данные в Kafka, пришлось научиться разворачивать Kafka REST Proxy. Сталкивались с проблемами производительности загрузки и выгрузки данных, которые решали совместно с провайдером и из-за которых в том числе пришлось расширять и перечень способов получения данных из Lakehouse. Дорабатывали инструменты и подходы, которые заточены на загрузку «чистых» данных и оказались не до конца готовы к суровой реальности.
Так как концептуальные изменения платформы данных повлияли на ее поставщиков и потребителей, возник и ряд организационных сложностей. Потребовалось «продать» необходимость еще одной интеграции с Lakehouse и его дальнейшее использование не только для задач DWH внутри компании. Кроме того, мы описали и отстояли сценарии использования Lakehouse в контуре компании, чтобы он не стал новой корпоративной шиной данных. Помимо задач аналитики к сценариям использования Lakehouse добавились интеграции для обеспечения данными в том числе и критичных бизнес-процессов компании.
- Какие задачи решаются на базе созданной платформы?
Уже сейчас с помощью Lakehouse решаются совершенно разные задачи. Например, обновление фотокаталога в магазинах: фотографии товаров, которые клиенты «Магнита» видят на кассах самообслуживания и весах, получают из Lakehouse.
Не менее актуальна аналитика управления цепочкой поставок. Команда Товародвижения использует данные Lakehouse для построения отчетности о доступности товаров на полках магазинов, товарном запасе и уровне сервиса распределительных центров. На основе этой отчетности уже сейчас принимаются управленческие решения.
Команда финансового блока использует данные о чеках. Сервис сверяет данные Lakehouse с данными из ФНС (которые, в свою очередь, получают их из ОФД) и, в случае выявления расхождений, формирует новые чеки – чеки «коррекции», тем самым выполняя требование федерального закона 54-ФЗ. Нарушение данного закона грозит запретом на деятельность всей сети.
Наконец, начисление бонусов и купонов в личном кабинете клиента за покупки: команда Онлайн использует данные о чеках для того, чтобы корректно начислять награды клиентам, выполнившим определенные условия покупки.
Lakehouse также служит источником данных для стратегических проектов, отвечающих за оптимизацию операций в магазинах, пополнение и прогнозирование товарных запасов и других проектах, про которые мы не имеем возможности рассказать подробнее.
- А какие принципиально новые проекты становятся возможными?
С появлением функционала Data Hub, использование которого становится обязательным для задач аналитики и обеспечения данными бизнес-процессов с определенными SLA, мы становимся участниками большого количества новых проектных инициатив и задач. В числе ближайших задач, которые будут решаться с использованием данных Lakehouse – формирование заданий сотрудникам магазина – например, расклейка ценников или выкладка товара. При этом планируется использовать данные о магазинах, прогнозах продаж, чеках, событиях на кассах и т.д.
Другой пример – анализ реальных часов работы магазинов и эффективности персонала. В рамках этой задачи планируется использовать информацию о сканировании сотрудниками QR-кодов при выходе на смену, событиях открытия смены на кассах и начале реальных продаж. Анализ этих данных позволит заинтересованным лицам принимать решения об оптимальном режиме работы магазина, а также выявлять случаи недобросовестного исполнения обязанностей сотрудниками магазинов – например, если директор магазина опоздал на работу и не открыл магазин вовремя.
Можно еще упомянуть ценообразование, взаимодействие с поставщиками по коммерческим условиям и т.д.
- Какие результаты достигнуты?
Lakehouse уже сейчас предоставляет поставщиками и потребителям данных широкий набор функциональности: доступ к сырым данным в виде файлов в объектном хранилище, доступ к данным в реляционном виде, «охлаждение» данных, хранение истории изменения данных.
Мы выявили потребность в подключении к Lakehouse около 200 информационных систем, производящих бизнес-данные. Уже подключили более 50 из них, а до конца II квартала их количество должно увеличиться до 80. Загрузили более 600 Тбайт данных и уже сейчас ежемесячно прирастаем на 10%.
Кратно сокращено время предоставления доступа к данным. Например, для одной из задач мы загрузили в Lakehouse и поставили на регламентное обновление 10 объектов данных из трех информационных систем, а затем предоставили доступ к этим данным за три дня. Витрину на тех же данных в старой платформе пришлось бы ждать в среднем 50 дней. Можем развернуть изолированный контур со всеми инструментами платформы за один день.
- В чем роль проекта для бизнеса компании?
В первую очередь это демократизация данных и стандартизация процесса их публикации. Все это нужно для того, чтобы ускорить путь данных от производителя к потребителю и дать возможность для их использования в принятии решений – тот самый подход data-driven.
Данные стали более доступными: теперь любой сотрудник, воспользовавшись каталогом данных, может узнать, какие данные существуют в компании, кем они используются и, при необходимости, получить к ним доступ.
Текущая платформа очень востребована в компании: данными пользуются более 10 тыс. пользователей, она содержит более 1 Пбайт данных, на ней реализовано много функциональности для бизнеса и критичных процессов компании. Замещение такой платформы само по себе является весьма амбициозной задачей, мы пошли дальше и пересмотрели роль платформы и подходы к работе с данными в ней.
- Каково значение проекта для отрасли?
Мы одними из первых в России запустили крупный Lakehouse в облаке на технологиях open source. Для многих это сигнал о том, что это в принципе возможно.
Кроме того, поддержка data-driven подхода позволит принимать более точные решения. В условиях высокой конкуренции в секторе розничной торговли такие решения могут иметь решающее значение. Наличие большого объема разных данных, доступных для аналитики, может привести к открытию инсайтов, которые повлияют на сектор целиком.
- В каком направлении будет идти работа?
В 2025 году мы продолжим наполнение Lakehouse данными, нужными проектам. Планируем предоставление полноценного режима self-service для интеграции информационных систем. В целевом состоянии загрузка в Lakehouse – это обязательство производителя данных по публикации своих данных и один из интерфейсов для взаимодействия с внешним миром. Команда управления данными предоставляет платформу и процессы, с которыми данное обязательство можно удобно и быстро выполнить.
Прорабатываем зрелые решения в части соглашения об условиях обмена данными (Data Contract). Сокращаем как время доставки новых данных до Lakehouse, так и время для желающих получить доступ к данным. Начинаем пилотирование подхода data mesh в новом хранилище данных, для которого Lakehouse будет единственным источником данных.
Что касается нынешнего хранилища, то начнем миграцию первой функциональности и первых пользователей со старой платформы на новую, а реализация новых проектов будет проходить сразу на новой платформе.