20 сентября / 23

Архитектура BI-платформы

Анатомия BI-системы

Классическая аналитическая платформа включает в себя несколько основных компонентов:

  • ETL - система управления данными;

  • DWH - хранилище данных;

  • BI - обеспечивает вывод, визуализацию данных и создание отчетов.

По формату клиентской части BI разделяется на три типа:

  • Клиент - аналитическая система устанавливается на компьютер пользователя;

  • Web-портал - аналитическая система выводится на сайт. Modus BI относится именно к этому типу;

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

Рисунок1.png

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

Дальше расскажем подробно про все процессы.

ETL

Для того чтобы BI-система могла работать с данными, они должны быть нормализованы и подготовлены.

В этом помогают ETL-инструменты, которые переносят данные в слои обработки, где они очищаются, структурируются и приводятся в нормализованный вид.

Подготовленные данные перемещаются в слой отчетности Data marts, где они могут быть использованы для анализа, при этом, часто используются OLAP-системы.

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

Источники данных

BI-система может собирать данные из разных источников: DWH (например, PostgreSQL, Microsoft Sqlserver, ClickHouse, Vertica и другие), OLAP-систем через протокол XMLA и файлов (например, Excel).

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

В Modus BI также интегрированы различные драйверы для ускорения взаимодействия и получения данных из СУБД.

Если у пользователя нет возможности работать через DWH, то портал может загрузить информацию из файла .xlsx. Пользователь выбирает файл, определяет настройки для колонок, строк и типов данных, после чего автоматически создается таблица. Данные загружаются в неё и формируется набор данных.

Интерфейс загрузки из Excel.pngИнтерфейс загрузки из Excel

У нас есть self-service инструмент, с помощью которого пользователь может вносить данные в аналитический портал. Для этого необходимо описать набор данных, создать форму и разместить на ней элементы. Аналитики или администраторы могут настроить свободные формы ввода данных без программирования, а информация будет отображаться в отчетах. Можно также установить ограничения на доступ к формам и данным.

Пример дашборда Modus BI.png
Пример дашборда Modus BI

Устройство Аналитического портала

Из DWH данные попадают в аналитический портал.

Мы используем SPA web-приложение, которое состоит из раздела для администрирования, блока с фильтрами и непосредственно дашбордов с визуализациями.

Портал, как и обычный сайт, состоит из frontend’а (пользовательский интерфейс и сопровождающие компоненты) и backend’а (та часть, которая отвечает за логику, т.е. всё, что находится на сервере: CMS, API систем сайта, админки и личные кабинеты, и т.п.).

У нас в Modus BI в качестве backend – служба, написанная на Go, а frontend представлен приложением на React. Для визуализаций используются различные библиотеки для построения чартов – GoJS, AMCharts, на более низком уровне - D3.

Frontend и backend между собой обмениваются данными, обычно, по http-протоколу, зачастую используется подход AJAX. Наш backend предоставляет API, через который front получает все необходимые данных в json.

Скорость работы зависит не от мощности портала, а от скорости выдачи данных DWH. Поэтому мы применяем различные СУБД. Для маленьких объемов до нескольких миллионов записей мы можем взять любую из современных, например, PostgreSQL.

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

Процессы в аналитическом портале

Кроме вывода данных в виде визуализаций аналитический портал содержит множество других функций. Рассмотрим некоторые из них подробнее.

• Аутентификация пользователя

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

В Modus BI, например, есть собственная система аутентификации – мы можем заводить пользователей на самом портале. Это самый простой «коробочный» вариант.

Еще есть интеграции с SSO-системами. Можно использовать протоколы SAML (самый популярный) и OAuth 2. 

Редактирование конфигурации.png

• Настройка ролей, доступов и RLS

BI-системах все пользователи делятся на 3 роли, под которыми можно выполнять различные функции:

- пользователи – только просмотр дашбордов;

- аналитики – могут создавать и просматривать отчеты, разрешенные их профилями доступа;

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

Настройка ролей, доступов и RLS.png

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

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

При использовании внешних сервисов аутентификации очень важна связь данных пользователя из внешней системы с ролями и настройками в BI-системе. Протоколы SAML и OAuth 2 передают данные, связанные с настройками учетной записи. В Modus BI гибкая модель доступа к данным: мы можем настраивать взаимосвязь между передаваемыми настройками и настройками доступа на портале.

• Хранение настроек и метаданных

Для хранения метаинформации BI система должна иметь внутреннюю базу данных. Это могут быть как классические реляционные СУБД, так и NoSQL базы данных.

Мы используем базу метаданных на PostgreSQL. В ней хранятся списки пользователей, настройки, отчеты и т.п.

• Кэширование данных

Для ускорения работы BI система может использовать кэширующий слой. В качестве него могут использоваться как собственные наработки, так и open-source решения.

У нас в Modus BI тоже есть слой кэширования. Он сохраняет историю и в следующий раз вернет данные на аналогичный запрос в несколько раз быстрее. Если данных в кэше нет, то они запрашиваются из источника и сохраняются в кэше.

Это очень ускоряет работу. Например, получение данных из ClickHouse может занимать 500 миллисекунд-10 секунд, а из кэша - 1-100 миллисекунд.

• Корректировка данных «на лету»

В Modus BI можно править данные напрямую в дашборде. Это позволяет сократить время и не проделывать длинный путь: корректировка в источнике — обновление слоя сырых данных — слой ядра хранилища — витрины.

К примеру, в таблице есть цифра, которую нужно заменить. Пользователь заходит в дашборд, выбирает нужную запись и редактирует ее. Изменение сразу же влияет на связанные с ним панели.

• Общий доступ к дашбордам и iframe

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

Также можно встроить дашборды через iframe на сторонние сайты и сервисы, чтобы все пользователи видели графики и диаграммы, например, на сайте компании.

• Конструктор (настройка) дашбордов

Конструктор дашбордов – это инструмент self-service, с помощью которого можно настраивать отдельные визуализации и непосредственно дашборды.

Режимы drill-down, сквозная подсветка курсора (когда мы хотим посмотреть один и тот же показатель на разных диаграммах), настройки дизайна, оформление и т.п. пользователь настраивает в режиме no-code при помощи полей настройки в интерфейсе.

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

Конструктор ДБ.png

• Настройка верстки

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

Настройка верстки.png

• Фильтрация

При просмотре дашбордов пользователю обычно интересен не весь массив данных, а только его часть.

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

• Экспорт дашборда и отчетов

Пользователь может экспортировать один визуальный элемент или весь дашборд целиком. Одну визуализацию можно сохранить в виде иллюстрации или в шаблон Excel-файла.

Дашборда экспортируется в виде изображения или презентации pptx. Это очень удобно, например, для показа на планерках.

 

Итоги:

  • BI-система включает в себя ETL-процессы, DWH и непосредственно саму аналитическую платформу, которая может быть представлена в виде десктоп-клиента или web-портала.

  • Данные для BI должны быть подготовлены: нормализованы и очищены, иначе вы получите кривую аналитику. Для этого удобно использовать ETL-инструменты. 

  • Как источники данных для аналитической платформы используются хранилища данных (DWH) и OLAP-системы. В качестве исключения могут использоваться неструктурированные данные, в том числе Excel-файлы.

  • Скорость работы BI зависит не от портала, а от выбранной СУБД (DWH) и ее архитектуры. Чем больше данных в системе, тем более производительная должна быть СУБД.

  • Кроме визуализации данных у BI-систем есть широкий список функций: настройка ролей доступа пользователей, в том числе и на уровне строк данных (RLS), встраивание в другие сервисы, хранение и редактирование данных, фильтрация, экспорт дашбордов и т.п.

BI-системы – это удобный инструмент аналитики для компаний с большим количеством данных или их источников. Это направление сейчас активно развивается в сторону self-service и low(no)-code, поэтому занимает меньше времени по сравнению с классическими методами аналитики в Excel.

Кроме того, системы постоянно развиваются и «обрастают» дополнительным функционалом. Например, мы в этом году планируем выпустить функционал, с помощью которого можно разрабатывать и подгружать в портал свои визуальные компоненты.