Меня зовут Сергей Усов. В Газпромбанке я в составе небольшой команды занимаюсь развитием и сопровождением корпоративной BI-системы на базе решения Sigla Vision (российский форк FineBI).
Мы хотим поделиться практическими наработками с сообществом пользователей Sigla Vision / FineBI — сделать работу с системой удобнее и облегчить жизнь администраторам. При этом часть наших подходов может пригодиться и тем ИТ-специалистам (разработчикам, дата-инженерам, аналитикам), которые сопровождают работу технических систем, имеющих в своем составе БД с репозиториями метаданных. Описанные решения являются общеинженерными и могут быть применены не только к корпоративным аналитическим системам.
Это первая статья из цикла, посвященного нашему опыту администрирования Sigla Vision.
Идея и цели цикла статей
Администрирование Sigla Vision / FineBI в целом похоже на администрирование любой другой BI-системы — со своими особенностями. Штатное администрирование во многом обеспечивается встроенными инструментами «из коробки». Но для нетиповых задач по сопровождению часто приходится создавать кастомные решения — чтобы получать нужную информацию проще и быстрее. Этот процесс адаптации системы к более удобному администрированию и дал название статье.
Мы убеждены: открыто поделиться наработками полезнее, чем держать их только внутри команды. Да, мы потратили немало сил на создание и отладку решения. Но взамен рассчитываем получить конкретные вещи:
от пользователей Sigla Vision / FineBI, которые возьмут наши разработки себе:
результаты тестирования в других условиях (другие версии ПО, другие сценарии использования) — чтобы найти ошибки, которые мы не заметили у себя;
идеи по оптимизации и улучшению кода;
предложения по расширению функционала для объектов, с которыми мы пока не работали;
от вендоров Sigla Vision / FineBI:
чтобы наша разработка стала практическим примером того, что реально нужно при администрировании BI-системы в крупной компании,.и чтобы даже вендор рассмотрел возможность включить подобный функционал — частично или полностью — в базовую поставку.
В итоге мы рассчитываем повысить надежность, точность и функциональность наших инструментов — и при этом снизить собственные трудозатраты на их сопровождение.
Личный опыт и первые версии наработок
С системой FineBI я впервые столкнулся в мае 2023 года: тогда это была версия FineBI 5, а я работал в другой компании — сначала как разработчик, потом как администратор.
Подробнее про тот этап — выбор BI-системы на замену Tableau, миграцию отчетности и первые наработки по объектной модели FineBI — можно прочитать в этой статье.
Тогда мы проделали большой путь по изучению устройства FineDB и LogDB: разобрали основные сущности системы, установили связи между объектами, разработали прикладные отчеты о работе системы.
В конце 2024 года я перешел в Газпромбанк и продолжил развивать наработки по объектной модели — уже на базе Sigla Vision 1.0.20 (соответствует FineBI 6.0.20).
Я также активный участник группы FineBIChat в Telegram — там можно найти часть моих изысканий по извлечению метаданных из FineDB.
Этот опыт и лег в основу того, о чем пойдет речь дальше.
Почему недостаточно функционала администрирования «из коробки»
Ограничения интерфейса и API
Когда мы говорим об использовании BI-решения, есть три ключевых составляющих:
Пользователь — как субъект всего процесса работы с BI.
Дашборд — как инструмент взаимодействия с данными.
Датасет — данные для работы дашбордов.
Если представить это как простую последовательность, получится базовая схема взаимодействия пользователя с контентом. Здесь сознательно не конкретизирован способ входа на дашборд (публикация на портале, рассылка), а также не раскрыты детали происхождения датасетов от других таблиц.

Но для полноценного управления системой этого понимания и встроенных интерфейсов администрирования недостаточно: многие важные особенности работы системы не учтены, а нужную информацию не всегда легко получить.
Если бы у администратора «из коробки» была вся необходимая информация о состоянии Sigla Vision / FineBI, вопрос кастомных доработок вообще бы не возник.
Однако данных в интерфейсе (UI) обо всех объектах системы часто не хватает, или они не собраны в одном месте. В UI информация о системе фрагментирована по разделам, и автоматически собрать все нужное через интерфейс нельзя.
В Sigla Vision / FineBI есть методы API, которые позволяют получить информацию о дашбордах, коллекции или датасетах. Но даже когда подходящий метод существует, данные приходят не в самом удобном виде (данных со свойствами объектов может быть меньше, чем фактически содержится в других источниках, например в БД системы FineDB, — их приходится дополнительно преобразовывать с помощью дополнительного ПО или плагинов).
Ключевые сущности и метрики, скрытые от администратора
Чтобы понимать состояние системы и особенности ее работы, важно как минимум знать:
количество основных сущностей: опубликованные дашборды, их компоненты, источники, подключения, обновления, рассылки;
распределение во времени и динамику изменений этих сущностей, а также связанных процессов — просмотры контента, его редактирование, экспорт отчетов, загрузки данных при обновлениях.
Это нужно, чтобы при работе системы в штатном режиме определить количественные значения и вовремя выявить аномалии — например, проблемы с производительностью или стабильностью.
Еще одна причина: статистику по просмотрам контента запрашивают и бизнес-подразделения.
Отсутствие данных об изменениях
В FineDB, как правило, хранится только последнее (актуальное) состояние объектов. Для полноценного сопровождения системы этого мало, потому что регулярно нужно:
получать данные о состоянии системы на определенный момент в прошлом;
понимать, сколько изменений выполнили пользователи за период.
Теоретически часть этой информации можно вытащить из LogDB, но это сложно и далеко не все нужное там есть.
Предлагаемое решение
Мы предлагаем подход к администрированию Sigla Vision / FineBI, который позволяет получать гораздо больше информации о различных объектах системы — с учетом их взаимосвязей и истории изменений.
Объектная модель системы
Основная идея — на базе данных из FineDB и LogDB создать отдельные таблицы для всех основных сущностей системы со всеми их свойствами, установить связи между ними, а также разобрать логи ключевых процессов (обновления датасетов, рассылки дашбордов и т. д.).
Для дальнейшего изложения приведем сопоставление некоторых терминов в Sigla Vision (русский) и FineBI (английский). В таблице не отражены случаи однозначного соответствия (например, «Пользователи» и «Users»).
Sigla Vision |
FineBI |
Коллекция |
Directory |
Песочница |
My Analysis |
Источники |
Public Data |
Рабочая книга |
Analysis Subject |
Читать схему проще в обратном порядке — от источников данных к блокам «Пользователь» и «Разработчик», которые работают с дашбордами.

Перечислим основные функциональные особенности Sigla Vision / FineBI, которые влияют на построение объектной модели:
Бизнес-пользователи (Viewers) в основном просматривают готовые отчеты — назовем это «Дашборд как публикация». Дополнительный сценарий — получение файлов рассылок («Дашборд как рассылка»).
Разработчики (Designers) создают дашборды Sigla Vision / FineBI и отчеты FineReport, публикуя их в «Коллекции». Их взаимодействие с контентом — «Дашборд как шаблон» в «Песочнице» разработчика.
У каждого разработчика своя область «Песочницы». В ней он работает с «Рабочей книгой», которая содержит шаблоны дашбордов, компоненты, датасеты уровня рабочей книги (SSDS), вычисляемые меры (измерения и индикаторы) и параметры.
Датасеты можно объединять с другими датасетами. При этом растет число зависимых датасетов и усложняется иерархия связей.
В разделах «Коллекция», «Песочница», «Источники» есть своя иерархия каталогов и размещенных в них объектов.
Действует ролевая система разграничения прав, в том числе через роли с учетом иерархий объектов.
Для датасетов можно настроить различные обновления.
Для дашбордов можно настроить различные рассылки.
Основные действия с контентом, а также изменения настроек пользователей и разработчиков логируются.
Отчеты FineReport не имеют подробного описания контента в FineDB, но могут использовать подключения Sigla Vision для получения данных. Они интегрируются в «Коллекцию».
В системе активно используются группы различных сущностей — дашбордов, компонентов, датасетов, подключений и т. д.
Объекты бывают самостоятельными сущностями (дашборд, датасет с набором индивидуальных свойств) и составными, объединяющими другие сущности по признакам. Например: «Коллекция» (совокупность точек публикации дашбордов на портале с иерархией), «Корзина» (место удаленных объектов) или «Песочница» разработчика (совокупность его «Рабочих книг»).
Функциональная модель Sigla Vision / FineBI с ее сущностями и объектами устроена достаточно сложно. В следующих статьях мы приведем понятные примеры использования данных объектной модели в разных сценариях сопровождения.
Сущности, включенные в объектную модель:
пользователи,
роли,
разрешения на объекты,
рабочие книги,
дашборды,
компоненты дашбордов,
датасеты,
подключения,
связи дашбордов, компонентов, датасетов, подключений,
расписания обновлений,
расписания рассылок,
логи рассылок,
логи обновлений,
логи действий в системе,
пространства «Коллекция», «Песочница», «Источники», «Корзина».
Версионирование таблиц FineDB
Чтобы решить проблему с отсутствием истории изменений, мы используем функциональные триггеры в FineDB. Для всех ключевых таблиц настраиваются триггеры, которые при изменении данных копируют состояние записи в отдельные таблице. Так на любой момент времени можно точно восстановить состояние состояние исходной таблицы по записям из таблицы изменений.
Дополнительный функционал
Извлечение данных из нужных таблиц FineDB — простое и эффективное решение, которое минимально влияет на штатный функционал Sigla Vision / FineBI. Все происходит в пределах одного сервера БД: для работы с дополнительными данными мы создали удобные витрины, обновляемые через одноименные расчетные функции.
На базе этих таблиц и представлений мы также сделали ряд «системных дашбордов» — и для прикладных администраторов, и для некоторых пользовательских ролей.
Для отдельных задач мы дополнительно задействовали триггеры, которые позволяют влиять на пользовательский интерфейс — например, добавлять проверки вводимых значений или запрещать определенные действия.
Практическая ценность и применение
Чтобы показать реальную пользу объектной модели, рассмотрим два типичных примера.
Пример № 1. Выявление причин повышенной нагрузки на сервер
Утилизация процессора подскочила с 30% до 80% в определенные часы. Нужно понять, почему.
Обычный ход анализа примерно такой:
Это вызвано Sigla Vision или другим софтом?
Штатная работа ПО или сбой?
Если штатная — что изменялось в последнее время?
Ищем по логам контент, который повлиял на производительность.
Анализируем сценарий взаимодействия с контентом.
Проверяем гипотезы и устраняем проблемы.
Это рабочий вариант — найти по логам проблемные места и разобраться постфактум.
Но есть и другой путь — более оперативный и даже превентивный. Если отслеживать важные метрики и группы объектов, можно сравнивать их между собой и искать аномалии. Можно получить усредненную статистику работы системы по группам объектов.
Обнаружить причину аномальной работы гораздо проще, когда вы заранее понимаете закономерности и знаете, как система функционирует на уровне объектов.
В нашем случае мы выявили ситуацию: общее число дашбордов за наблюдаемый период выросло всего на 5%, но в новых отчетах количество компонентов оказалось на 50% выше среднестатистического. Именно это и вызвало скачок утилизации процессора. Дополнительно обнаружились частые обращения разных пользователей к этому контенту с многократным использованием DEF-функций. Так мы быстро нашли причины роста потребления ресурсов.
Без автоматизированного учета сущностей разобраться «в моменте» невозможно: непонятно, связаны ли проблемы с количественными изменениями (усложнение вычислений, одновременный доступ больших групп пользователей) или это качественные проблемы, которые нужно решать на уровне оптимизации — силами администраторов или представителей вендора.
Пример № 2. Планирование бюджета на сопровождение BI-системы
При планировании бюджета на следующий год нужно спрогнозировать рост нагрузки. Для этого необходимо точно знать текущее состояние системы и динамику основных метрик:
Как росло количество дашбордов?
Как часто пользователи с ними работают?
Какие подразделения потребляют основную долю вычислительных мощностей?
Конечно, зная количество дашбордов и пользователей год назад, можно построить линейную статистику. Но она будет неточной: часть изменений нелинейна и не всегда напрямую коррелирует с числом пользователей или разработчиков.
С готовой объектной моделью аналитика для прогнозирования занимает значительно меньше времени и дает более точный результат.
Без нее прогнозирование может стать серьезной проблемой. Все ли данные валидны? Что было вчера, месяц назад, год назад? Отследить динамику объектов через UI невозможно — мониторинг количественных показателей показывает только текущее состояние. Автоматических контрольных срезов на определенные даты в системе нет. Если данные не были зафиксированы ранее, сравнивать текущее состояние просто не с чем. И качество прогнозов страдает.
Вместо заключения
Средствами PostgreSQL мы превратили разрозненные данные из FineDB и LogDB в цельную объектную модель Sigla Vision / FineBI. Теперь администратор видит не отдельные фрагменты информации, разбросанные по интерфейсам, а единую связную картину: каждый объект — дашборд, компонент, датасет, подключение — со всеми свойствами и взаимосвязями в формате «одна строка — один объект». Плюс полная история изменений.
Но наша цель — не просто поделиться идеями. Мы хотим дать сообществу работающий механизм, который можно быстро развернуть у себя и адаптировать его в дальнейшем под свои нужды. Поэтому в следующих статьях подробно разберем ключевые компоненты подхода:
Объектная модель данных Sigla Vision / FineBI — устройство модели и примеры ее применения для администрирования.
Версионирование данных в FineDB — реализация триггеров, которые сохраняют историю изменений и позволяют отразить состояние системы на любую дату.
Системные дашборды — мониторинг системы, процессов, анализ нагрузки, контроль действий пользователей.
Контроль и проверки на уровне БД — как с помощью триггеров внедрять дополнительные правила прямо в интерфейс системы: от валидации данных до ограничения операций.
Аллокация ресурсов и расчет стоимости владения — методика распределения затрат на сопровождение работы системы между подразделениями на основе данных о просмотрах и использовании дашбордов.
Мы не профессиональные разработчики, поэтому SQL-код (для PostgreSQL) публикуем AS IS — как рабочий прототип, открытый для улучшений. Главная ценность наших наработок — не в идеально выверенных скриптах, а в принципах и подходах, которые можно внедрить уже сейчас и доработать под свою специфику.
Все материалы — схемы, описания сущностей, примеры запросов и готовый код — будут сопровождать каждую статью и доступны в репозитории. Уже сейчас там можно найти актуальную схему объектной модели в формате drawio.
Этот цикл статей — приглашение к диалогу. Мы делимся опытом, чтобы вместе с сообществом сделать процесс администрирования Sigla Vision / FineBI более прозрачным и удобным.