Как мы подключали к фреймворку генерации данных новые хранилища, HBase и PostgreSQL, и вместе с ML-командой банка делали загрузку синтетики на тестовые стенды
Заказчик это крупный банк. Витрины данных в банке нужно тестировать, но промышленные данные для этого брать нельзя. Поэтому у банка есть внутренняя платформа, которая генерирует синтетические данные и загружает их на тестовые стенды.
Платформа построена вокруг фреймворка генерации базовой и ML-синтетики. Он создаёт таблицы и заполняет их данными, а качество достигается так: ML-модель обучают на эталонных данных и настраивают связи между полями. Если хорошо настроить метаданные, синтетика по качеству почти не отличается от промышленных данных. Благодаря этому витрины можно полноценно тестировать уже на ранних этапах разработки. Изначально фреймворк поддерживал Hadoop и Greenplum.
Разработчики Фортех подключились к проекту в мае 2024 года. В команде банка работали три бэкенд-разработчика, fullstack-разработчик, три тестировщика, аналитик и руководитель проекта.
Платформа работает с несколькими хранилищами сразу: Hive, HBase, Greenplum и PostgreSQL. У каждого свои особенности загрузки, а объёмы синтетических данных большие.
Генерацию данных делает отдельная ML-команда банка. Её результат нужно было связать с загрузкой на стенды, не вмешиваясь в саму генерацию.
Проект внутренний и закрытый, все работы шли в инфраструктуре банка и по его правилам.
HBase. Разработчики Фортех сделали функциональность загрузки больших синтетических наборов данных в Apache HBase. Это новое хранилище для платформы.
Hive, Greenplum и PostgreSQL. Для этих хранилищ написали дополнительную бизнес-логику загрузки данных. PostgreSQL подключили к платформе.
ML-генерация. Наладили интеграцию с командой, которая занимается ML-генерацией: синтетика, которую она создаёт, попадает в загрузку на стенды.
Новый сервис. Команда разработала новый сервис со схожей функциональностью и написала для него логику. Сделали библиотеку для работы с интегрированным сервисом, чтобы к нему было проще подключаться.
Качество кода. Кодовую базу покрыли тестами на JUnit и Mockito. Параллельно занимались рефакторингом, техническим долгом и ревью кода.
Платформа синтетических данных умеет загружать большие наборы данных в Apache HBase и работает с PostgreSQL. Вместе с Hive и Greenplum это четыре хранилища.
Загрузка связана с ML-генерацией, которую ведёт отдельная команда банка. Появился новый сервис со схожей функциональностью и библиотека для работы с ним, а основной код покрыт тестами.
Зачем банку синтетические данные?
Промышленные данные банка нельзя использовать в тестах. Синтетика повторяет их структуру и связи между полями, поэтому витрины данных можно проверять уже на ранних этапах разработки.
Можно ли загружать синтетические данные в разные хранилища?
Да. Здесь платформа работает с Apache Hive, HBase, Greenplum и PostgreSQL, и для каждого хранилища есть своя логика загрузки.
Как разработчики Фортех работают во внутренних проектах банков?
Как часть команды заказчика: в его инфраструктуре, по его процессам и с его правилами безопасности. Здесь наши бэкенд-разработчики работали вместе с ML-командой и тестировщиками банка.
Какой стек нужен для работы с большими данными в банке?
В этом проекте это Java и Spring, хранилища Hadoop-стека и Greenplum, Kafka и gRPC для связи между сервисами.

Как мы с нуля сделали микросервисы, которые принимают документы из внутренних систем, отправляют их на подпись в Диадок, следят за статусами и хранят архив

Веб-сервис для персонализации промо-акций, анализа поведения пользователей и формирования индивидуальных предложений

Как мы за три месяца привели в порядок бэкенд на NestJS и добавили версионирование API и программу вознаграждений через СБП

Как мы делали поисковый сервис с обновлением до 10 мс, координацию серверов, автобукинг, шардирование MongoDB и подписки на Stripe