Бизнес-сериал: формируем BI-систему в строительстве почти в прямом эфире. Часть III

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр!

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

Наверняка вы сталкивались с ситуацией, когда данные в отчетах Power BI не обновились, а узнать об этом можно только после сообщений в чате. Или когда поиск нужной информации в хранилище данных (DWH) превращается в настоящий квест с запросами типа SELECT * FROM. Инженеры данных и BI-разработчики ежедневно решают не только задачи по интеграции и анализу данных, но и занимаются рутинной работой, такой как:

  • Поиск нужных объектов в DWH;

  • Написание шаблонных SQL-запросов;

  • Ручной запуск обновлений данных и отчетности;

  • Анализ логов и устранение ошибок в пайплайнах и отчетах.

Чтобы минимизировать эти рутинные процессы, мы разработали два внутренних инструмента:

  • BI Tools — веб-сервис для удобного поиска данных в DWH, генерации шаблонных SQL-запросов и управления процессами обновления данных;

  • PBI Usage — набор скриптов для мониторинга активности пользователей в Microsoft Power BI, контроля обновления отчетов и автоматической отправки уведомлений об ошибках в VK Teams.

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

BI Tools: быстрый доступ к DWH без танцев с бубном

Что нас не устраивало?

В основе нашего DWH лежит Anchor Model (якорная модель хранения данных). Это мощная и гибкая архитектура, но без хорошего инструмента разобраться в ней сложно. Чтобы построить нужную витрину, инженерам данных и BI-разработчикам приходилось:

  • Искать нужные «якоря» и их атрибуты вручную — по памяти или по названию, что не всегда быстро и удобно;

  • Разбираться в связях между объектами — иногда это превращалось в настоящий детектив;

  • Ручками писать SQL-запросы для получения промежуточных и итоговых данных;

  • Запускать пайплайны для обновления данных после внесения изменений или по запросу пользователей.

На это тратилось слишком много времени. Плюс часто возникали вопросы: «Что это за имя таблицы?» и «Где человекочитаемое описание колонок?».

BI-разработчик разбирается в связях объектов
BI-разработчик разбирается в связях объектов

Что мы использовали для решения?

Бэкенд сервиса реализовали на Java, фронтенд — на React. В качестве СУБД используется служебная схема внутри корпоративного DWH на PostgreSQL. Работа с якорной моделью осуществляется с помощью специальных таблиц и скриптов на Python, работающих с служебными таблицами PostgreSQL и извлекаемыми данными из DDL при работе anchor_model.py. Есть интеграция с Apache Airflow для запуска DAG-ов.

Как BI Tools решает проблему?

Мы разработали веб-сервис, который автоматизирует рутинные задачи:

  • Поиск и просмотр «якорей» в хранилище — сервис сразу показывает, какие атрибуты есть у объекта и как он связан с другими сущностями;

  • Генерация SQL-запросов — сервис сформирует корректный SQL-запрос для извлечения данных и отобразит результат (первые N строк);

  • Автоматическое формирование документации — работа модуля anchor_model.py, про который мы рассказывали в предыдущей статье, устроена так, что без обязательного указания описания инженер не может создать объект, а BI Tools собирает и отображает всю эту информацию в удобном виде;

  • Запуск ансамбля DAG-ов нажатием одной кнопки — если в отчете устарели данные и нет времени ждать обновления по расписанию или нужно проверить отображение после внесения изменений, можно инициировать обновление прямо через интерфейс сервиса.

Теперь инженеры данных и BI-разработчики не тратят часы на поиски данных и написание шаблонных SQL-запросов — эта часть работы полностью автоматизирована. Дополнительно мы реализовали дашборд, в котором отображаются связи систем-источников, сущностей якорной модели и отчетов.

Важно: Не все источники данных поддерживают динамическое обновление данных по запросу, но в большинстве случаев это работает без проблем.

Интересный факт:

Часть функционала BI Tools стала возможной только благодаря жестким правилам именования объектов якорной модели и их строгой типизации. Так как это заложено в скрипты, которые создают сущности якорной модели, правила соблюдаются автоматически. Правильные ограничения — это не только дисциплина, но и огромный плюс.

Источник: https://habr.com/ru/companies/sminex_developer/articles/888920/


Интересные статьи

Интересные статьи

В обзоре изменений за октябрь 2024 года рассмотрим следующие темы: критическая информационная инфраструктура, персональные данные, безопасность финансовых организаций, деятельность ФСТЭК России и друг...
И рассказываем, чтобы сэкономить Ваше времяЧтобы перелезть через этот высоченный забор понимания, как же все-таки работает сейчас КЭДО в Битрикс24 мы...• Просмотрели 384 минуты видеоуроков и рол...
Представьте 2 колонии байбаков. Обычно это миролюбивые животные, которые живут дружными семьями, но только не в тех ситуациях, когда встает вопрос о занимаемой территории. Подобное может произойти меж...
При загрузке данных в Highload-блоки возможна ситуация, когда объем загружаемых данных очень велик.Тем не менее, самый распространенный путь для добавления данных - их перебор в цикле, и последующее д...
В современном мире сложно представить развитие продукта без A/B-тестирования. Чтобы успешно запустить продукт или новую функциональность — надо грамотно спроектировать A/B, рассчитать и интерпрет...