Открыли супермаркет в «Сбере», только вместо еды там данные
Представьте: вы приходите в магазин за молоком, берёте пачку, идёте на кассу. Но теперь всё по-другому: вы должны обойти 20 отделов, заполнить сто анкет, подписать договор и ждать, пока вам откроют доступ, чтобы вы могли купить молоко. Примерно так раньше сотрудники в «Сбере» искали и получали данные. Рассказываем, как мы решили эту проблему.
Почему данные в «Сбере» раньше было достать сложнее, чем вкусную клубнику зимой
У «Сбера» миллионы клиентов, сотни сервисов, тысячи сотрудников и процессов. А значит, и огромное количество данных: кто что покупает, куда заходит, чем пользуется.
С ростом масштаба появляется хаос: данные копятся в разных системах и форматах без единого порядка. Кто-то собирал их для отчётов, кто-то — для машинного обучения, другие просто хранили на всякий случай. В итоге получилось так: данных много, а пользы от них мало, потому что:
- владельцы данных не знают, что их информация кому-то может понадобиться;
- доступ к данным получить трудно, особенно если сотрудник из другого отдела;
- даже если данные нашлись — не факт, что они подойдут для задачи сотрудника или будут нужного качества.
Это как с молоком в настоящем супермаркете: вы искали кокосовое, ходили к сотрудникам магазина, продавцы полгода обсуждали, можно ли вам его продавать. А по итогу вместо кокосового вы получили миндальное молоко, которое терпеть не можете.
А теперь представьте, что вы работаете в «Сбере» и вам срочно нужно найти информацию, чтобы запустить новый сервис или подготовить отчёт. Вместо работы вы полгода пишете письма, ждёте согласования и разбираетесь, как всё устроено. Вот эту проблему и нужно было решить: собрать данные вместе, чтобы положить их в единую, быструю и понятную систему.
Задача: превратить сложный поиск данных в приятный шопинг
Получается, что стандартный сценарий поиска информации был таким: сотруднику понадобились данные → он шёл искать их у начальников департаментов → всем подряд рассказывал, почему они ему нужны, чтобы договориться о получении → ждал доступ → настраивал всё технически, чтобы данные приходили стабильно и в нужной форме. Весь процесс занимал до полугода.
Даже если удавалось найти нужные данные и договориться об их использовании, этого было мало. Под каждый такой случай нужно было отдельно придумывать, как именно эти данные передавать: через какую систему, в каком формате, как часто. И ведь не одному сотруднику нужны были данные. Информацию запрашивали две большие категории специалистов компании:
- Айтишники — аналитики, дата-сайентисты, дата-инженеры, разработчики. Они строят модели, пишут код, исследуют данные.
- Бизнес — менеджеры и специалисты из разных подразделений. Им нужно составлять отчёты, автоматизировать процессы и быстро принимать решения на основе данных.
В такой огромной компании, как «Сбер», нельзя просто взять и пустить данные в свободное плавание: отдать их аналитику, который вышел на работу несколько недель назад, или менеджеру, который не до конца может сформулировать причину требования. Нужно понимать, кто за что отвечает, поэтому появляются роли: владелец данных, менеджер данных, бизнес-пользователь.
Тогда мы собрали все эти факторы и вместе с командой «Сбера» сформировали требования к инструменту, который решит большую задачу:
- быстро найдёт нужные данные;
- отправит их так, как нужно заказчику (по формату, фильтрам, частоте);
- заберёт данные там, где удобно (мы называем это площадкой получения данных);
- поддержит все сопутствующие процессы (согласования или переходы между отделами);
- соответствует всем правилам безопасности.
И главное — чтобы этим инструментом одинаково эффективно могли пользоваться и айтишники, и бизнес. Так, чтобы любой сотрудник «Сбера» мог быстро находить нужную информацию сам.
От хаоса к порядку: как появился Супермаркет данных
Представьте большой город, где тысячи людей каждый день ищут еду, но супермаркета нет. Чтобы сварить борщ, вам нужно идти к директору капустного отдела, договариваться с менеджером по свёкле, потом подписывать акт приёма-передачи картошки. И только через пару месяцев вы, возможно, сварите борщ. А возможно, нет.
Примерно так раньше и искали данные в «Сбере». Сотруднику нужны были цифры для отчёта, для модели, для витрины. И все эти данные проходили такой же квест, пока не открылся Супермаркет данных. Теперь можно зайти, взять корзинку и пройтись вдоль полок:
- вот витрина с актуальными курсами валют;
- вот в отделе «Финансы» лежат платежи за последние три года;
- свежие данные по транзакциям за вчера;
- всё с ярлыками — откуда данные, что внутри, когда обновлялись, какие фильтры можно применить.
Но к этому решению мы пришли не сразу. В других компаниях (или городах) была похожая проблема, а значит, и были сервисы, которые решали эту задачу, — готовые решения от интеграторов, что-то вроде «коробочного» супермаркета: его ставишь и запускаешь, а он решает проблему с данными (или борщом).
Готовое решение не подошло, потому что у «Сбера» свои правила, а также уже была Фабрика данных со своими процессами, реализованными сервисами и гигантскими объёмами данных. Представьте себе фирменный гипермаркет с миллионом своих товаров, куда пытаются впихнуть фикспрайсовскую стойку с печеньками. Тогда мы и приняли решение делать свой сервис.
Мы взялись за задачу, потому что знали, как строить большие каталоги и как правильно расставлять данные (или товары на полках), чтобы не путаться. Вместе начали проект: создавали, перестраивали, тестировали, улучшали. Сейчас продукт зрелый, рабочий и помогает «Сберу» каждый день.
Как работает Супермаркет для обычного пользователя
Супермаркет данных ещё можно сравнить с интернет-магазином — всё то же кокосовое молоко, но с доставкой на дом. Вместо обычных товаров (наушников, игрушек, еды) — данные. Вы не лазите по серверам, не спрашиваете разрешения у десяти разных отделов: всё уже собрано в одном месте, красиво разложено и готово к «покупке».
Как это работает «под капотом»
Сначала происходят реальные действия: сотрудники «Сбера» оформляют кредиты, клиенты делают переводы, в системах записываются транзакции, заявки, логины, клики. Все эти данные хранятся в мастер-системах — настоящих рабочих системах, с которыми люди взаимодействуют каждый день.
С периодичностью один раз в сутки (ночью, чтобы не перегружать систему) эти данные аккуратно сгружаются в огромное хранилище — такой склад, куда свозят всю информацию. Поверх этого склада работает Супермаркет данных. Он сам не хранит информацию. Он как умный каталог: знает, где и что лежит, в каком оно виде, насколько свежее, кто может к нему получить доступ. Пользовательский интерфейс выглядит так: каталог, корзина, реестр подписок, карточка подписки и стартовая страница с базовым дашбордом.
А дальше всё просто: пользователь заходит в Супермаркет, смотрит, какие данные доступны, выбирает нужные и добавляет себе в корзину. Сотрудник оформляет подписку — это как сделать заказ в интернет-магазине. Подписка бывает разной:
- Одноразовой — «получите, распишитесь». Например, выгрузка за прошлый квартал, чтобы построить отчёт.
- Периодической — «доставлять по вторникам». Например, вы хотите получать свежие данные каждый день, неделю или при изменении конкретного параметра.
То есть вы как бы говорите: «Хочу вот эти данные. Доставляйте, пожалуйста, в соответствии с такими-то условиями». И дальше они приходят туда, куда вы указали: в хранилище, витрину, аналитическую систему.
Вы не думаете, откуда, как, через что они передаются: всё уже продумано и настроено, как будто подписались на ежедневную доставку картошки фри из «Бургер Кинга», только вместо картошки у вас транзакции, платежи и другие важные штуки.
Как система понимает, какие данные вам нужны
Вы пришли в Супермаркет данных, добавили в корзину всё, что нужно. Но как система понимает, какие именно данные вам отдать, если они лежат в десятках разных хранилищ с разной структурой и в разном виде?
Допустим, вам нужны данные о клиентах: фамилия, паспорт, открытые продукты Ивана Иванова. В банке всё это есть, но вот где именно — большой вопрос. В одной системе паспорт может лежать в одной табличке, а в другой — размазан по трём: в одной — серия и номер, в другой — дата выдачи, в третьей — связь с клиентом. А где-то этих данных может вообще не быть.
Чтобы не заставлять каждого пользователя изучать внутренности сотни систем, в Супермаркете есть единое семантическое поле — это как умный переводчик между логикой и реальностью. Это как если бы в настоящем гипермаркете полки всегда были одинаково организованы: молочка — слева, овощи — справа, а печенье — всегда на третьей полке с краю. Вам не нужно разбираться, как устроен склад или кто где хранит коробки. Вы просто приходите и забираете то, что вам нужно, как будто всё всегда лежало по правилам.
Система знает, что у клиента может быть паспорт, права, дети, и всё это логически описано. Неважно, где именно физически лежит информация: вам она приходит в одинаковом красивом виде. А пользователь не видит, как это происходит. Он просто говорит: «Нужны данные по клиентам» — и получает, что хотел.
Супермаркет данных через семь лет: теперь можно найти даже «кокосовое молоко»
С момента запуска Супермаркет данных сильно повзрослел. Проект живёт уже больше семи лет и продолжает развиваться. Самое заметное изменение — это время, за которое сотрудник может получить нужные данные. Раньше на это уходило до полугода: нужно было искать источники, ждать согласований, подключать разработку. Сейчас на всё это уходит всего несколько дней. А следующая цель — сократить путь до пары часов.
За счёт такой скорости решение и выигрывает: меньше кастомных интеграций, меньше ручного труда, меньше издержек. Пользователь просто настраивает подписку и получает данные в нужном виде без танцев с бубнами.
Такая система нужна не везде. Чтобы она была полезной, нужны большие объёмы данных, зрелая инфраструктура и много команд, которые этими данными пользуются. Это история не про стартапы и не про маленькие компании. Это инструмент для крупных игроков: банков, интернет-магазинов, госсектора.
Теперь Супермаркет помогает тысячам сотрудников каждый день быстро находить нужную информацию и не тратить полгода на поиски «кокосового молока».