Максим Бритвин

Старший консультант-разработчик департамента EPM, «КОРУС Консалтинг»

Привет, Хабр! Кто бы мог подумать, что рутинная просьба «помоги с Excel» запустит цепочку событий, которая изменит подход к работе всего отдела и вдохновит на создание собственного ИТ-продукта?

Меня зовут Максим Бритвин, я старший консультант-разработчик в «КОРУС Консалтинг», и сегодня расскажу, как один простой скрипт вырос в инструмент, который разгрузил айтишников и дал финансистам автономность в работе с данными.

Эта статья о том, как рождаются продукты из задач, которые никто не любит делать вручную.

С чего все началось

В начале года ко мне пришла коллега с просьбой помочь в подготовке данных для демостенда по бюджетированию. На входе был Excel файл с исходными данными, необходимыми для расчетов, задача была стандартной – взять файл, заменить значения измерений на целевые и отдать CSV файл для загрузки. 

Я как раз изучал Rust и был в поиске практической задачи, чтобы применить новые знания. Поэтому обработку Excel файла я реализовал на нем, с помощью OpenSource библиотеки calamine, и в нем же заменял нужные значения.

Работало все blazingly fast, но потом пришли правки.

Сначала – просто изменить целевое значение. Потом – добавить новые условия. Потом – адаптировать под другие файлы. В какой-то момент я понял, что трачу больше времени на поддержку скриптов, чем на реальную работу и решил разработать инструмент, чтобы исключить себя из этого процесса ?

Моим коллегам-консультантам для работы нужен был инструмент, который:
✔ Работает без лишних нагрузок – его можно было развернуть даже на слабом сервере
✔ Прост для бизнес-пользователей – финансисты могут сами править мэппинги без моей помощи
✔ Автоматизирует рутину, но при этом оставляет контроль над данными

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

Почему ETQL – не просто еще один ETL?

Обычный ETL: настроил раз — и забыл. Пока все работает — проблем нет. Но как только бизнесу нужно что-то поменять (добавить новое правило, исправить мэппинг, проверить данные перед загрузкой), начинается ад:

  • Ждешь разработчика — он занят, в отпуске или просто не понимает вашу задачу с первого раза.

  • Теряешь время — даже мелкая правка может затянуться на дни.

  • Ошибки всплывают поздно — данные уже загружены, и теперь их надо срочно исправлять.

ETQL — это ETL, который подчиняется бизнесу, а не наоборот:

  1. Финансисты меняют правила сами – без программистов. Добавили новое подразделение? Изменили аналитику? Просто откройте веб-интерфейс и поправьте мэппинг — как в Excel, но без ошибок.

  2. Проверка данных перед загрузкой – никаких «ой, мы забыли про валидацию». Система сама найдет дубли, пустые поля и несоответствия формата.

  3. Работает там, где другие ETL бессильны – например, когда:

    • Данные разбросаны по 10+ Excel-файлам с разной структурой.

    • Нужно срочно загрузить данные в систему бюджетирования, но стандартный ETL «ломается» на нестандартном формате.

Главное отличие: обычные ETL-инструменты созданы для IT-специалистов. А ETQL – для финансистов, плановиков и бизнес-пользователей, которые хотят контролировать данные без посредников.

Когда ETQL особенно полезен?

  • Закрытие периода — больше не нужно ночами править Excel.

  • Частые изменения правил — например, если у вас постоянно добавляются новые статьи бюджета.

  • Строгий контроль качества — чтобы в систему не попали «грязные» данные.

Мы знаем, как сложно бывает адаптироваться к новому продукту и к его интерфейсу. Да и переключаться между разными вкладками при выполнении задачи тоже бывает очень неудобно. Поэтому в процессе установки ETQL мы можем отказаться от преднастроенного интерфейса и реализовать либо отдельный, по требованиям заказчика, либо встроить кнопки по управлению процессами ETQL практически в любую систему, которая сможет выполнить запрос к нашему бэкенд-серверу.

Немного про технику

ETQL в своей базовой поставке состоит из трех компонентов — WEB интерфейса, REST API сервера со всей логикой и базы данных. Каждый компонент упакован в свой собственный Docker контейнер и при установке через них ETQL сразу готов к использованию и настройке.

Стэк технологий, которые мы использовали при создании понятен практически любому специалисту:

  1. REST API сервер написан на Python и библиотеке Fast API и приправлен кодом на Rust для ускорения процессов.

  2. Web интерфейс реализован через React.

  3. Для соединения и работы с базой данных используется библиотека SQLAlchemy, что дает нам хорошее взаимодействие с практически любой базой данных.

Такой стэк позволяет нам построить удобное и надежное решение, которое просто дорабатывать и кастомизировать. Кроме того, Fast API позволяет создавать автоматическую документацию всех методов, поэтому всегда у администратора есть возможность посмотреть и протестировать каждый эндпоинт в интерактивном режиме.

Какие источники уже есть?

На текущем этапе наш ETQL может решить базовые задачи от подготовки и проверки данных до загрузки в EPM системы. 

В нашем решении мы не разделяем системы на источники и целевые – любой источник может быть и приемником данных. Сейчас мы реализовали базовые системы, которые покрывают практически все задачи по подготовке:

  • Excel файлы любой конфигурации – загрузить данные с листа, из именованного диапазона или из умной таблицы

  • CSV и другие текстовые файлы с разделителями

  • Базы данных (PostgeSQL, Oracle, MSSQL)

Да, в этом списке нет EPM-систем и мы активно работаем над тем, чтобы добавить самые популярные российские системы бюджетирования. Сейчас мы предлагаем проводить первоначальную подготовку и проверку данных в ETQL, и затем уже эти данные загружать в них через встроенные ETL инструменты. 

В этом случае бизнес пользователи получают простой интерфейс для управления правилами мэппинга и качеством данных, которые могут вести самостоятельно и сами определять, когда данные готовы для загрузки в систему бюджетирования.

Зачем нам собственный ETQL-инструмент?

Был «затык»: готовые решения не решают главных проблем бизнеса. Поэтому собственный ETQL-инструмент стал идеальным вариантом.

ETQL создавался по принципу «разработка без компромиссов»:

  1. Для скорости:

    • Готов к работе за 1 день вместо 3 месяцев

    • В 5 раз быстрее настраивается под новые требования

    • Позволяет начать работу с данными до полного внедрения EPM-системы

  2. Для гибкости:

    • Изменение правил загрузки – за 15 минут вместо 3 рабочих дней

    • Возможность доработать функционал под конкретного клиента

    • Не нужно ждать обновлений от вендора

  3. Для контроля:

    • Можно встроить в любую корпоративную систему

    • Не зависит от политики иностранных вендоров

Реальная выгода для бизнеса:

  • Сокращение сроков внедрения EPM-проектов на 30-40%

  • Экономия до 60% бюджета на поддержку загрузок данных

  • Возможность оперативно реагировать на изменения бизнес-требований

Почему нельзя было взять готовое решение? Мы в КОРУСе уже 25 лет интегрируем данные разными ETL-системами и постоянно сталкиваемся с одними и теми же проблемами:

  • Слишком сложно для бизнес-пользователей

  • Не учитывают специфику финансовых данных

  • Требуют постоянного участия разработчиков

ETQL — это ответ на все эти боли. Это инструмент, который действительно делает работу с данными проще, а бизнес — эффективнее.

Заключение? Приглашение!

Если вы тоже устали бесконечно готовить огромные файлы для загрузки данных из Excel, сверять формат данных вручную или ждать правки в мэппинге — есть предложение!

30 июля мы проводим первую онлайн-демонстрацию продукта. Мы хотим показать, на что он способен, обсудить ключевые задачи и сложности, а также просто пообщаться с единомышленниками и получить обратную связь. 

Регистрируйтесь по ссылке: велком!

Комментарии (0)