Содержание:
Вместе с Алексеем Чудиновым и Вячеславом Земсковым рассказываем, как появилось корпоративное хранилище данных в Газпромбанке и что с ним будет происходить дальше.
Что такое КХД (корпоративное хранилище данных)
В процессе работы банка каждый день накапливается огромный массив данных: открываются депозиты, выдаются кредиты, переводятся деньги и происходит много других операций. Всё это фиксируется в разных банковских системах и потом используется для решения бизнес-задач. Массив информации нужно где-то хранить — для этого в Газпромбанке есть корпоративное хранилище данных.
Корпоративное хранилище — это большая специализированная база данных, куда загружается информация из различных источников. Все данные, которые попадают в хранилище, связываются между собой и унифицируются. КХД даёт быстрый доступ к исторической и оперативной информации.
Через КХД можно быстро получить доступ к историческим и оперативным данным. Вся информация, которая попадает в хранилище, связывается между собой и унифицируется. Это позволяет:
- проводить многомерный анализ данных;
- строить статистические модели в области Data Science;
- планировать, оценивать и прогнозировать работу банка.
Можно сказать, что КХД — это цифровой двойника банка, потому что в нем отражено большинство бизнес-процессов.
Как КХД появилось в Газпромбанке
Первая версия хранилища появилась в 1999 году и поддерживалась до 2021 года. Объем данных рос, поэтому в 2008 году решили выбрать новую платформу и инструментарий для нового хранилища.
Специалисты проанализировали решения, которые есть на рынке, и выбрали аналитическую платформу Sybase IQ. Сейчас этот продукт принадлежит немецкой компании SAP, которая специализируется на разработке ПО. Для загрузки данных из различных источников выбрали ETL-инструмент IBM DataStage. Оба инструмента, база данных и ETL, действуют в Газпромбанке до сих пор.
Долгое время банк развивал корпоративное направление и держал фокус на работе с организациями. Розничные продукты были сопутствующими. Но со временем стало понятно, что без конкурентоспособной розницы развивать бизнес дальше невозможно. В конце 2017 года это стало ограничивать рост Газпромбанка, поэтому специалисты начали больше внимания уделять розничному направлению.
Газпромбанк развивается, поэтому в нем постоянно меняется IT-ландшафт. Некоторые системы устаревают и на замену им приходят другие, некоторые появляются по запросу бизнес-пользователей. Все они — источники данных для КХД, и со всеми ними нужно успевать вовремя создавать интеграции. Сейчас хранилище интегрировано больше чем с 400 различными источниками данных.
Непрерывное развитие банка делает непрерывным и поток задач. На КХД строится отчетность:
Изменения в любом виде отчетности тянут за собой изменения в устройстве системы. Специалисты оценивают, как грядущие перемены повлияют на структуру, которая есть, и пересобирают ее, если это нужно.
Из чего КХД состоит сейчас
Хранилище данных – это большой и сложный программно-аппаратный комплекс, который состоит из десятков серверов. Каждый день КХД работает с тысячами потоков данных. Нужно было выстроить архитектуру хранилища так, чтобы она не зависела от систем и бизнес-процессов, которые постоянно меняются.
У КХД Газпромбанка неклассическая, двухуровневая архитектура. Оно состоит из двух слоев:
- Stage — области временного хранения данных;
- Core — области целевого хранения данных.
Отказ от классического подхода к архитектуре КХД позволил сократить доставку данных от источника до потребителя в некоторых случаях до двух-трех часов. Но есть и ряд потоков, которые работают в классическом для КХД подходе, когда данные из источника загружаются раз в сутки.
Независимо от регламента загрузки все данные проходят по единому маршруту: ETL-инструмент обрабатывает информацию из системы-источника и подготавливает ее к загрузке в КХД. После того, как данные готовы, запускается фреймворк загрузки в область Stage. Когда данные успешно в нее загрузились, запускается фреймворк для расчета основной витрины — Core.
Core — это одновременно и слой консолидации данных, и витрина для бизнес-пользователей. Помимо Core есть еще ряд специализированных витрин, которые созданы под требования разных заказчиков, но все они строятся над данными Core.
Базовый принцип для работы с данными в КХД — слой Core является единым источником данных для всех потребителей хранилища в банке. Еще его называют единой версией правды.
Core гарантирует, что данные, полученные из КХД разными подразделениями для разных задач, не будут противоречить друг другу. А значит, решения, которые приняли с использованием этих данных, будут валидными и согласованными.
Когда несколько пользователей обращаются к Core, они не блокируют друг друга, потому что SAP IQ работает с версиями. Если данные изменяются, это отражается в отдельной версии таблицы. Пока они не зафиксированы, пользователь их не увидит. Если человек начал работать с какой-то конкретной версией данных, то он продолжит с ней работать даже после коммита новой версии.
Как проводится контроль работы КХД
Данные недостаточно лишь загрузить. Еще нужно убедиться, что они загружены корректно, в них нет ошибок. Если ошибки есть, надо разобраться, чем они вызваны — ошибкой загрузки, ошибкой пользовательского ввода или спецификой ведения учета и регистрации данных в банке.
Для того, чтобы упростить разбор ошибок, которые связаны с корректностью загрузки, в КХД организовано логирование на каждом шаге каждого процесса:
- ETL-процессы записывают детальные логи, связанные с работой с источником.
- Фреймворк, который обеспечивает загрузку в область Stage, логирует корректность загрузки и фиксирует проблемы с консистентностью данных.
- Фреймворк, который рассчитывает Core и другие пользовательские витрины, сохраняет детальную статистику по обработке и консолидации данных.
Данные в КХД грузятся 24/7, поэтому нужен был инструмент, который будет управлять потоками загрузки. Оркестратором, отвечающим за своевременную обработку, стала «система семафоров»: когда информация проходит по каждому слою данных, в логах ставятся метки о том, что процесс корректно дошел до этой точки. По этим меткам следующий за ним процесс понимает, можно ли начинать работу.
Если в области Stage семафоры показывают больше техническую информацию, то в области Core она уже носит бизнес-смысл. Например, Stage семафор показывает «Таблица N загружена», а в ядре — «Данные по Главной книге загружены, день закрыт. Необходимые проверки пройдены».
Работать с большим количеством логов и следить за корректностью работы семафоров без специального инструмента невозможно. Поэтому специалисты по КХД разработали две системы мониторинга:
- «Универсальный мониторинг» — состояния КХД и источников;
- «Инспектор» — состояния загрузок и пересчетов в КХД.
Из этих систем данные подаются в Grafana — инструмент для визуализации.
Как проводится контроль качества данных в КХД
В КХД каждый день поступает огромный массив данных, и они могут содержать ошибки. Источников ошибок много: сбой в работе системы, неверная обработке данных, сбой ETL-процесса. Без оперативного контроля качества загруженных данных использовать КХД будет невозможно: в какой-то момент объем ошибок дорастет до критичного.
Чтобы этого не произошло, в Газпромбанке есть ряд автоматических проверок качества данных, которые запускаются каждый день в заданное время или по событию, после загрузки определенной информации:
- техническая целостность;
- балансовая сходимость;
- атрибутивная корректность;
- сделочный учет.
Если результат проверок неудовлетворительный, то данные в КХД автоматически перезагружаются. Когда и это не помогло, к решению подключается отдел контроля качества данных КХД.
Проблемы с качеством данных часто возникают не из-за реальной ошибки, а из-за разных алгоритмов расчета. Например, есть бухгалтерский и сделочный учеты. Ведутся они по-разному, поэтому друг с другом не сходятся. Такие ошибки относятся не к ошибкам системы или людей, а к ошибкам принципиальным. Это не противоречит требованиям учета или требованиям по обслуживанию клиентов. Главное — правильно интерпретировать расхождения и проверять, чтобы они не становились больше, чем те, которые специалисты Газпромбанка считают нормой.
Кроме контроля сходимости есть проверки доверительных интервалов: они работают, когда данные загружаются в Stage. Проверки сделаны для того, чтобы поймать всплески данных. Например, в источнике по ошибке удалили большой массив информации. Это попадает в КХД, данные в хранилище тоже помечаются удаленными. Отчетность в КХД искажается. Так быть не должно, поэтому в КХД настроены проверки, чтобы предупредить такие ситуации. Эти проверки обеспечивают непрерывность обработки данных и доставку их до потребителя в корректном виде.
Загрузка данных в КХД происходит постоянно и ее нельзя остановить, чтобы проанализировать баг. Поэтому контроль ошибок и отклонений происходит автоматически, а проблемы оперативно решаются отделом по контролю качества данных КХД.
Решить проблемы оперативно получается благодаря двум условиям:
- Распределенная команда — сотрудники находятся в разных часовых поясах. Если инцидент произойдет вечером, когда новосибирские специалисты уже дома, к решению проблемы подключатся сотрудники московского офиса.
- Удаленный доступ — бывают случаи, когда что-то сломалось, а на работе никого нет. Если починить сломанное надо сейчас же, сотрудники могут подключиться к рабочему компьютеру из дома и решить вопрос удаленно.
Кто и как разрабатывает КХД в Газпромбанке
Разработкой КХД полностью занимается внутренняя команда Газпромбанка — внешних подрядчиков в эти работы пока еще не подключали. Развивать и сопровождать больше 10 000 потоков данных без высокой квалификации, знания предметной области и выстроенных процессов разработки невозможно.
Команда состоит:
- из системных аналитиков;
- инженеров данных;
- архитекторов моделей данных;
- инженеров DevOps;
- тестировщиков;
- специалистов поддержки;
- специалистов по инфраструктуре.
Когда в команду ищут нового человека, смотрят и на hard, и на soft skills кандидата. Благодаря этому даже новички говорят со специалистами на одном языке, стараются помогать друг другу и другим сотрудникам банка.
Читай также: Soft skills: какие навыки нужны разработчикам в финтехе
Банк активно движется в сторону data-driven-организации, а для этого нужны данные. Чтобы поддерживать процессы банка, надо не только быстро и качественно разрабатывать, но и доставлять изменения до промышленного контура. Поэтому сейчас в Газпромбанке развивают направление DevOps/DataOps: выпускать несколько релизов в неделю невозможно, если не автоматизировать тестирование и выкатку кода в прод.
Как используют КХД
Хранилище создали для того, чтобы бизнес-пользователи могли строить отчеты или создавать свои инструменты. Если они владеют SQL, языком запросов к базе данных, то могут делать это сами. Если не владеют, можно обратиться к специалистам КХД. Те помогут получить данные или создать алгоритм для расчета нужных показателей.
Так, например, на данных КХД создали систему «Автографик». Из-за ковида появились ограничения по численности сотрудников в офисе. Нужно было планировать, сколько человек сможет выйти на работу в офис в определенный день, и составлять график. Задача была непростой, следовало учесть случайные факторы. Например, болезнь или большое внеплановое дело: если оно появляется, нужно вывести в офис как можно больше сотрудников.
«Автографик» получает аналитические данные из КХД и предиктивно планирует численность сотрудников в каждом офисе так, чтобы закрыть потребности бизнеса и при этом не перейти допустимый порог.
Когда бизнес заказывает отчет в КХД, важно сделать его не только точно, но и быстро.
В банке запустился продукт, по которому сотрудники могли давать скидки клиентам и получать бонусы за оказанную услугу — например, выдачу кредита.
После запуска продукта нужно было сформировать обратную связь, понять, насколько правильно он работает.
Буквально на следующий день после запуска мы эту информацию загрузили в хранилище, построили на ней аналитику и нашли проблему — сотрудники неправильно выполняли условия программы. Мы посчитали и поняли, что продукт лучше закрыть: он не стал бы приносить банку ту прибыль, на которую изначально рассчитывали.
У специалистов, которые ведут КХД, отлажены процессы по плановым задачам, поэтому их получается решать оперативно.
У нас замкнутая структура, которая отвечает за тракты сбора данных с учетом изменений в банке. Эти управления находятся у нас в департаменте. Наша задача — правильно организовать и координировать их работу. Мы делаем так, чтобы управления корректно и своевременно получали информацию.
Специального обучения по работе с КХД для владельцев бизнес-процессов нет, но в банке есть Confluence-пространство с документацией по КХД. Сотрудник может изучить ее перед тем, как пользоваться хранилищем. Если после этого остались вопросы, специалисты КХД проводят консультации.
К кому отправятся представители бизнеса, зависит от вопроса, который их волнует. Если вопрос технический, например, ждали данные, а их нет, то он приходит в отдел поддержки. Если вопрос аналитический, например, почему показатель таков, то вопрос приходит в отдел контроля качества данных. Специалисты поясняют ситуацию, если нужно — подключаются к решению проблемы.
Сейчас в КХД больше 5 000 пользователей на продуктовом сервере. Это количество будет расти, потому что в банке становится всё больше сотрудников из бизнес-подразделений, которым нужны данные из хранилища.
Вместе с ростом задач увеличивается и количество данных. Сейчас оно составляет порядка 80 ТБ и продолжает расти. Объем данных в банке повышается нелинейно: график увеличения информации больше похож на экспоненту, чем на прямую.
Количество ресурсов и дисковых массивов, которые нужны для обработки информации, постоянно растет. Сейчас прирост составляет примерно 5–6 ТБ сжатых данных за полгода.
Что дальше будет происходить с КХД
Вендор, которому принадлежит SAP IQ, перестал развивать инструмент и переключился на другое направление, поэтому сейчас Газпромбанк готовится к переходу на новую платформу — Greenplum. Проект начнется в 2022 году и будет длиться три года:
- Первый год специалисты КХД будут заниматься инфраструктурными вопросами, настраивать кластеры, делать фреймворки, подключать новые ETL-инструменты — Air Flow, NiFi и Kafka.
- На второй и третий год в новое хранилище будут мигрировать данные, пользователи и процессы. При этом поддержка старого КХД продолжится. Источники информации интегрируют сначала с прежним хранилищем, а после — с новым.
Технология разработки и системы, которые уже есть в хранилище, не должны измениться из-за перехода. Изменится только платформа. Какое-то время развитие старого и нового хранилища будет параллельным.
Проект масштабный и сложный. Планируется участие не только внутренней команды, но и команды подрядчиков. У команды КХД уже есть опыт решения подобных сложных задач, и подрядчики будут выбираться с релевантным опытом, поэтому всё должно получиться.