Кейс компании «Росагролизинг»: Перевод аналитической системы на Postgres Pro

 

Чтобы повысить устойчивость аналитической системы предприятия, было решено перенести БД в российскую Postgres Pro и заместить службу интеграции MS SSIS.

Заказчик и партнёр

АО «Росагролизинг» — государственная лизинговая компания, которая занимается технической и технологической модернизацией отечественного агропромышленного комплекса, передавая в лизинг средства производства организациям АПК. Чтобы повысить устойчивость аналитической системы предприятия руководители компании приняли решение о переносе СУБД в российскую Postgres Pro и импортозамещении службы интеграции MS SSIS.

ИТ-компания «Нетрика» выступила технологическим партнером проекта. «Нетрика» — многопрофильная компания, специализирующаяся на разработке цифровых систем и платформенных ИТ-решений, центр ИТ-экспертизы по управлению проектами для государства и бизнеса. Входит в N3.Group. Одно из направлений работы компании — услуги по миграции баз данных (БД) с зарубежных СУБД Microsoft SQL Server и Oracle Database на отечественную СУБД Postgres Pro российской компании Postgres Professional.

Задачи проекта

С августа до конца 2022 года выполнить импортозамещение СУБД Microsoft SQL Server и Microsoft SSIS на российскую Postgres Pro и Apache Airflow для аналитической системы предприятия АО «Росагролизинг».

Postgres Pro — российская система управления базами данных, глубоко переработанная версия СУБД с открытым исходным кодом PostgreSQL. Позволяет решать сложные промышленные задачи на предприятиях с высоконагруженными системами. Входит в реестр отечественного ПО и имеет сертификат ФСТЭК.

Описание проекта

Система компании «Росагролизинг» решает следующие бизнес-задачи:

  • Агрегация атомарных аналитических данных из других систем АО «Росагролизинг»;
  • Проведение вычислений на агрегированных данных для подготовки чистых аналитических данных о результатах деятельности АО «Росагролизинг»;
  • Передача чистых аналитических данных в BI систему.

Все эти задачи решаются в СУБД в 15 ETL пакетах, которые содержат 131 процедуру размером от 500 до 12 000 строк кода каждая. Было необходимо полностью сохранить функциональность СУБД без последствий для работы и процессов предприятия.

Хранилище в этой СУБД содержит более 6 Тб данных, сгруппированных в 341 таблице, в каждой от 20 до 450 колонок, от 20 тыс. до 4 млрд строк.

Процесс миграции

Миграция была проведена за 5 месяцев командой из четырех специалистов со стороны «Нетрики» и одним специалистом на стороне заказчика. В процессе параллельно создавалась новая версия системы на Postgres Pro и дорабатывалась старая версия на MS SQL Server. Происходило это из-за того, что в работе старой системы выявлялись особенности работы легаси-функционала, и она использовалась как эталон для проверки правильности результатов, выдаваемых новой системой.

Все это ощутимо сказывалось на сроках, которые были зафиксированы. Поэтому значительная часть успеха проекта обусловлена слаженной двусторонней работой специалистов исполнителя, которые создавали новую версию Postgres, и заказчика, которые дорабатывали версию Microsoft. Также благодаря разработке утилит для автоматизации миграции фактически весь код был переведен на Postgres за два месяца. Оставшиеся три месяца заняла отладка этого кода.

Для выполнения работ в срок команда миграции разработала скрипты автоматизации всей рутинной работы:

  • Скрипт переписи SQL кода процедур и базы данных с сохранением исходного форматирования кода и комментариев в нем.
  • Скрипт переноса данных из одной СУБД в другую с такой же структурой.
  • Скрипт сверки 100% соответствия данных в старой и новой версиях БД, в том числе после выполнения процедур.
  • Скрипт пошагового воссоздания SSIS пакетов путем генерации DAG файла с тем же набором step’ов и task’ов.
  • Скрипт проверки правильной работы процедур путем сравнения результатов выполнения одинаковых запросов в старой и новой версиях СУБД.

Таким образом, вручную специалисты работали только с вышеуказанными проблемами в исходной СУБД и теми, что автоматически решить не получалось.

В течение четырех месяцев старая и новая версии СУБД находились в параллельной эксплуатации для контроля корректной работы и производительности в Postgres Pro. Затем версия на MS SQL Server была выведена из эксплуатации, и с тех пор аналитическая система АО «Росагролизинг» работает на российской СУБД.

Результаты проекта

Осуществлен перенос базы данных объемом около 6 Тб — это более 300 таблиц с количеством строк до 4 млрд. Адаптировано 15 ETL пакетов и 131 процедура. При этом полностью сохранена функциональность системы заказчика.

Каждый проект по миграции БД уникален в части сроков, сложности и трудозатрат. Чтобы помочь клиентам спланировать миграцию своих БД, «Нетрика» проводит предпроектное обследование СУБД и окружения. Процесс обследования не требует непосредственного доступа к данным и позволяет разработать техническое задание на миграцию с учетом всех особенностей текущей СУБД и бизнес-процессов.