
Переосмысление подхода к данным в HR-секторе: стратегический актив компании
Изначально сервис «Формы ввода» позволял работникам продолжать вести отчетность в Excel, загружая и выгружая файлы в специальный сервис обработки данных, который преобразовывал их в аналитику для дашборда управленческого звена. Проект стал динамическим и кастомизируемым, с автоматическим подсчетом данных, за исключением конфигурации доклада, которая строилась на обычном JSON. В сервисе были прописаны типизация, форматирование и ограничения, что позволяло любому сотруднику формировать отчеты, осваивая систему всего за пару дней.
На текущий момент сервис полностью реализован, основная структура заморожена, но мы продолжаем его оптимизацию и улучшение. В связи с разнообразием видов докладов возникла необходимость в системе управления, что привело к разработке панели администратора для всех микросервисов. Админ панель реализована на архитектуре RBAC и покрывает все необходимые нужды; в планах — переход к атрибутной системе.
Сервис «Формы ввода» стал отправной точкой для создания серии дашбордов, обеспечивающих понятную визуализацию данных. Для отображения графиков использовалась библиотека Echarts, зарекомендовавшая себя как надежное решение. На данный момент мы пришли к тому, что в качестве БД для витрины данных используем Clickhouse.
В начале разработки мы не ожидали большого потока данных и использовали AirFlow как оркестратор. Он переносил данные из баз форм ввода в систему хранения, на тот момент представлявшую собой PostgreSQL. Однако с увеличением объема данных из HR-системы 1С мы решили применить иную технологию, так начался ресерч технологии DBT. Это привело к выбору Dagster — легко интегрируемого open source решения, которое в связке с DBT отлично подошло под наши нужды.
Сервис отчетности полностью безопасен: данные находятся в закрытом контуре, а пароли шифруются в отдельном сервисе. Настроен эффективный алертинг для оповещения о сбоях, автоматически создаются задачи в Jira. Вся аутентификация происходит через Keycloak.
Визуально сервис выглядит просто, благодаря сложным технологиям, используемым «под капотом». После тестирования различных технологий мы пришли к выводу о необходимости использования собственного LakeHouse на базе S3. Мы начали использовать Trino вместе с Apache Iceberg, что позволило эффективно хранить сырые данные и значительно уменьшить их объем.
В настоящее время мы стремимся сократить использование языка Python при разработке DWH, так как он недостаточно быстр для расчетов данных. Пошагово двигаемся к освоению языка программированию GO для написания сервисов (под требования заказчиков).
В результате значительно улучшился процесс отчетности, обеспечив удобство и доступность для пользователей. Созданный сервис не только упростил загрузку и обработку данных, но и стал основой для дальнейшего развития аналитических инструментов в компании. Переход на DBT позволил нам эффективно управлять растущими объемами данных, а использование современных технологий, таких как Trino и Apache Iceberg, обеспечило надежное хранение и обработку информации.
Проект продолжает развиваться: мы сосредоточены на оптимизации существующих процессов, улучшении пользовательского интерфейса и внедрении новых функциональных возможностей. В конечном итоге, наши сервисы станут мощной платформой для принятия управленческих решений.