Как мы научились управлять данными глобального масштаба: кейс разработки Супермаркета Данных
Мария Юшанова, Управление распространения данных Департамента SberData
Информацию не пытается собирать только ленивый. Многие компании считают ее своим главным богатством и оружием. И именно данные нужны для развития бизнеса, повышения качества сервиса и разработок новых продуктов.
Однако может возникнуть проблема, когда данные разрознены и нет единого механизма обмена информацией владельцев данных с их потребителями. Например, в Фабрике Данных Сбера более 350 источников данных, 90 аналитических приложений, 270 лабораторий данных, где работают боле 1300 пользователей и обращается около 15 Пб разной информации. Важно было создать решение, которое автоматизирует процессы по работе с данными и позволит пользоваться им в формате self-service.
Именно за эту амбициозную задачу, которую до этого никто не решал, взялась объединенная команда Сбера и ADV/web-engineering, и в этой статье расскажем, что у нас получилось.
Задача
Стандартный сценарий поиска информации представлял собой поход по начальникам департаментов, формирование договоренностей и согласование получения доступов. При этом владельцы данных могли не знать о том, что кому-то вообще нужны данные, тем более в определенном формате, с определенной регулярностью, что их данные могут быть недостаточно качественными и тп. Даже после того, как данные были найдены и доступ был получен, для каждого такого потока данных должно было быть спроектировано и согласовано технологическое решение. Time-to-market мог составлять до полугода.
Среди потребителей данных мы выделяем две большие группы:
Data scientists, Data-инженеры, аналитики данных, разработчики витрин данных, DataOps — для исследования данных и построения моделей
Представители бизнес-подразделений Сбера — от построения автоматизированных процессов решения бизнес-задач до формирования управленческой отчетности в режиме реального времени.
В организациях масштаба Сбера невозможно построить работу с данными в масштабе всей компании без выстраивания процессов управления данным. Обязательно должен быть data governance. И в связи с этим появляются такие роли, как владелец данных, менеджер данных, бизнес-пользователь данных.
Чтобы воспользоваться необходимыми данными потенциальный пользователь данных должен:
Найти нужные данные
Объяснить, зачем ему эти данные и получить к ним доступ
Поддержать техническую составляющую процесса получения данных
При этом необходимые данные могли быть разбросаны по куче разных систем, а их описание могло не давать полноценного понимания, устроят они потребителя или нет.
Поэтому мы сформировали требования к решению, которое позволит:
Легко и быстро искать необходимые данные
Получать данные по нужным условиям (формат / фильтры / условие поставки данных / периодичность и продолжительность поставки)
Получать данные там, где это необходимо получателю (здесь и далее будет использован термин «площадка получения данных»)
Поддерживать различные сопровождающие процессы, которые будут возникать при работе с данными (например, согласования, переходы пользователей между отделами и т.п.)
Соответствовать требованиям безопасности по работе с данными
В целом, удовлетворять нужды разных групп пользователей и стать единым механизмом распространения данных внутри Сбера.
Концепция и старт проекта
Как упоминалось в лиде, основная идея — создать целевое решение, которое соберет в себе рутинные процессы по работе с данными, автоматизирует их и позволит пользоваться им в формате self-service. Чтобы радикально сократить time-to-data, упростить доступ к данным пользователей Сбера и при этом повысить контроль за доступом к данным и data governance.
Рассматривалась идея «Супермаркета данных», которая есть у других компаний, в том числе коробочные решения, которые предоставляют интеграторы. Однако проанализировав рынок, мы поняли, что коробочное решение не приживется в контуре Сбера, где на момент принятия решения уже существовала Фабрика данных со своими процессами, реализованными сервисами и гигантскими объемами колоссального разнообразия данных (один лишь каталог данных сейчас составляет более полутора миллионов элементов). Исходя из этого было принято единственное и правильное решение — разрабатывать Супермаркет данным самим.
Нужно было собственное решение, которое станет единой точкой входа и фронтом для всех сервисов SberData, решит не только технические задачи, но и будет понятным относительно широкой аудитории пользователей.
Среди компаний-подрядчиков мы выбрали команду ADV/web-engineering.co, показавшую сильную экспертизу и предложившую концепт, максимально приближенный к тому, что мы хотели. Мы стартовали в 2019 году, и вот уже на протяжении двух лет вместе с коллегами из ADV постепенно развиваем уровень зрелости продукта и регулярно улучшаем внутренние процессы разработки, внедрения и сопровождения. Список решённых бизнес-задач исчисляется сотнями, а количество релизов — десятками.
Сегодня СМД используется для ряда промышленных трактов и снабжает данными из более чем 300 источников витрины и аналитические решения бизнес блоков Сбера. Ежедневно через СМД проходит около 3Пб данных, включающих более 70 тыс таблиц и миллиона атрибутов. И эти цифры продолжают расти.
О том, какие шаги мы прошли за эти два года, от лица совместной команды ADV и SberData расскажет Виктор Колдаев @vkoldaev, ведущий аналитик компании ADV/web-engineering:
Сильные e-commerce и data-подразделения позволили ADV собрать команду, использующую опыт построения больших каталогов, работу с дистрибуцией данных и большими нагрузками, экспертизу в области обеспечения безопасности данных для реализации cовместно с сильной командой SberData удобного и интуитивного self-сервиса для поиска и получения данных в контуре Сбера.
Разработку концепта мы с аналитиками команды Сбера начали с представления всего многообразия данных. Здесь используются метаданные — данные о данных, содержащие информацию о списке данных, структуре, показателях качества, актуальности, data governance информации. Метаданные могут обогащаться и использоваться, например, для поиска нужных данных.
Второе — это получение данных с учетом различных критериев и с определенной регулярностью. Пришли к формату заказа данных по типу подписки.
Добавляем пользователей, которые со всем этим могут работать, и получаем верхнеуровневую концептуальную модель сущностей, содержащую:
Ассортимент
Подписки
Пользователи
Далее строится концепция пользовательского интерфейса, через который мы уже более детально прорабатываем пользовательские кейсы и возможности. Появляется:
Каталог, построенный на основании метаданных и содержащий доступный ассортимент, с инструментами поиска и фильтрации
Корзина, позволяющая оформить «заказ на данные» — подписку
Реестр подписок (заказов пользователей)
Карточка подписки
Стартовая разводящая страница, содержащая базовый дашборд
Вот и получился Супермаркет данных. Бонусом в концепции закладывался сопроводительный функционал, типа общего поиска, глобальных справочников, систем рекомендации и административного интерфейса.
Параллельно архитекторами Сбербанка прорабатывается базовая архитектура решения, фиксируется:
Портал Супермаркета данных — интерфейсная часть, с которой работает пользователь и которая сама по себе работает не с данными, а только с метаданными
Технический компонент, отвечающий непосредственно за работу с данными и их поставку согласно требованиям подписок — Ядро Супермаркета данных
Источники данных — условное обозначение всех точек, метаданные которых опубликованы в ассортименте Супермаркета данных и доступных для заказа
Получатели данных — условное обозначение потребителя данных независимо от технологического стека
Использование единого технологического решения позволяет пользователям не заниматься проработкой нового технологического канала обмена данными для каждого инфопотока, а лишь раз настроить свой приёмник для получения данных из Супермаркета.
MVP и развитие решения
Супермаркет данных — довольно сложное архитектурное решение, которое на начальных этапах отличалось от того, что мы имеем сейчас. Внутри него огромное количество интеграций с системами Сбера. Релиз формируется из работы нескольких команд, каждая из которых решает свой пул задач и реализует свой бэклог.
MVP включал в себя базовый функционал:
Ограниченный набор данных в ассортименте
Ограниченная аудитория в рамках работы с MVP продукта
Из всех вариантов поставки данных — только снепшот (полный объем таблицы источника, без возможности наложить фильтр или получить дельту изменений данных за период) по расписанию не чаще раза в день
Запрошенные данные можно получить только после процесса их подготовки и из специализированного hadoop-кластера под именем DDA — data distribution area, область распространения данных
Многие опции подписок (например, сложные фильтры на данные) и прочие полезные бантики были пущены под нож
Очень много идей из концепции также были перенаправлены в бэклог для дальнейшей приоритезации.
После запуска MVP первым делом:
Обеспечили поддержку сервиса централизованного управления пользователями и их ролями,
Запустили процесс регулярного получения метаданных для построения актуального ассортимента из сервиса управления метаданными Фабрики данных Сбера
Реализован базовый функционал уведомлений пользователей о различных событиях, связанных с их подписками, на портале и через почту
Добавлен поиск по объектам ассортимента
В рамках первой вехи развития решения наша совместная команда:
Предоставила возможность построения промышленных трактов, которым требуется повышенная надёжность и безопасность. Здесь добавили поддержку выделенных технических учётных записей. Их использование позволяет оформлять специальные «промышленные» подписки, которые не зависят от конкретного человека, предполагают двойной контроль изменений и отдельные условия поддержки.
Расширила возможность использования СМД внутри контура Сбера. Начали поддерживать больше платформ-приемников, расширяя список бизнес-задач, которые можно решить.
Добавила полноценную фильтрацию запрошенных данных при оформлении подписок
Расширила доступный для заказа ассортимент. Из важного — добавили возможность заказа данных с использованием Единого Семантического Слоя (ЕСС) Сбера.
Полноценное описание ЕСС заслуживает отдельной статьи. Если коротко, то это изначально общая логическая модель данных всего Сбера, структурированная по предметным областям и наполненная данными из разных источников. Использование ЕСС дает пользователю возможность оперировать бизнес-данными без необходимости разбираться в какой-то конкретной структуре хранения данных какого-то конкретного источника.
Следующая веха была заточена под развитие условий поставки данных. Продукт стал доставлять данные:
Не только по расписанию, но и по факту обновления данных в источнике
Не только снепшоты, но и инкременты, чтобы позволить экономить время и вычислительные ресурсы
Не только пакетным способом, но и потоковым, в режиме около реального времени
Не только поставлять данные (перекладка данных, ETL), но и управлять доступом к данным по подписке через сервисы проксирования. Так получатель обращается к запрошенным данным напрямую, без ETL-процесса подготовки данных и размещения их в DDA. Подобная оптимизация особенно актуальна для гигантских объемов информации, так как, по сути, получение данных выполняется в два раза быстрее и с экономией места на дисках.
Следующая важная задача — поддержка обновленных требований кибербезопасности по поставке чувствительных данных через Супермаркет данных. Это был отдельный большой проект нескольких команд Сбера, начиная от проработки процесса и архитектуры и заканчивая доработкой нескольких систем, включая Супермаркет. В рамках этого проекта команда:
Реализовала механизм доступа к данным через теги доступа. Теги доступа представляют собой своего рода ярлыки, которые устанавливаются на данные любого уровня атомарности: от целой схемы до конкретного атрибута. Это позволяет владельцу данных гибче определять ценность и защиту для своих данных
Внедрила защиту данных с использованием технологии токенизации и шифрования.
Дополненная концептуальная архитектура с высоким уровнем абстракции теперь выглядит так:
Что сейчас
На данный момент объединенная команда ADV и SberData совершенствует сервис, повышая его стабильность и производительность, а также продолжает развивать функционал, расширяя список решаемых бизнес-задач:
Сейчас автоматизированная система находится на уровне Business operational и развивается в сторону Business critical: начинаем с отдельных подписок, целимся в повышение стабильности всего решения.
Занимаемся оптимизацией затрачиваемых ресурсов, позволяя, например, переиспользовать одни и те же поставленные данные для решения однотипных задач
Расширяем поддержку новых типов источников данных
Расширяем список получателей данных, в том числе активно реализуем поддержку возможности поставки данных в отдельный внутренний сервис Сбера, предназначенный для обмена данными с дочерними и зависимыми организациями
Мария Юшанова, Управление распространения данных Департамента SberData
Что в итоге
Эксперты департамента управления данными Сбера (SberData) вместе с коллегами из ADV проделали большой путь по разработке и внедрению уникального продукта. Организовывали команды и выстраивали взаимодействие как внутри, так и между ними, продумывали процессы, выбирали инструменты работы и т.д. Это полноценная совместная работа двух профессиональных команд — Сбера и ADV.
За 2 года объединенная продуктовая команда запустила сервис, позволяющий оптимизировать и стандартизировать процессы получения данных для решения различных бизнес-задач компании с учетом централизованного контроля доступа к разным типам информации.
Интерфейс сервиса реализован в формате интерактивного каталога, где пользователи могут заказывать данные и оформлять на них подписку для выполнения различных бизнес-задач, от использования данных для построения решений промышленного уровня до обучения моделей для персонализации услуг и построения скоринговых моделей на основе транзакционного поведения потребителей. Многие процессы, без которых работа такого монстра невозможна, автоматизированы и скрыты от пользователя.
Решение полностью интегрировано в архитектурный ландшафт Сбера. Реализована передача данных из разных источников разными способами, поддержаны процессы централизованного доступа пользователей как к порталу, так и к данным. Это гарантирует получение данных теми потребителями, которым доступ разрешен к конкретным типам данных, в формате, удобным для потребителя.
У нас получилась отличная слаженная команда с коллегами из ADV, где их умение думать по-продуктовому и большой опыт в реализации сложных проектов сочетается с высоким профессионализмом и экспертизой в области больших данных специалистов SberData. И будем дальше развивать данный проект, выводя работу с данными в Сбере на качественно новый уровень. О чем поделимся в следующих статьях!