Архитектура BI-платформы
Анатомия BI-системы
Классическая аналитическая платформа включает в себя несколько основных компонентов:
-
ETL - система управления данными;
-
DWH - хранилище данных;
-
BI - обеспечивает вывод, визуализацию данных и создание отчетов.
По формату клиентской части BI разделяется на три типа:
-
Клиент - аналитическая система устанавливается на компьютер пользователя;
-
Web-портал - аналитическая система выводится на сайт. Modus BI относится именно к этому типу;
-
Мобильное приложение - обычно используется для оперативной работы с аналитической системой на мобильном устройстве.
Данные из 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
У нас есть self-service инструмент, с помощью которого пользователь может вносить данные в аналитический портал. Для этого необходимо описать набор данных, создать форму и разместить на ней элементы. Аналитики или администраторы могут настроить свободные формы ввода данных без программирования, а информация будет отображаться в отчетах. Можно также установить ограничения на доступ к формам и данным.
Пример дашборда 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.
• Настройка ролей, доступов и RLS
BI-системах все пользователи делятся на 3 роли, под которыми можно выполнять различные функции:
- пользователи – только просмотр дашбордов;
- аналитики – могут создавать и просматривать отчеты, разрешенные их профилями доступа;
- администраторы – управляют всем порталом в целом: регистрируют пользователей, управляют доступами, настраивают подключения к базам данных и т.п.
Методика 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 при помощи полей настройки в интерфейсе.
Каждый раздел настройки выведен в отдельный блок. Когда пользователь выбрал источник данных, настроил показатели, которые он хотел бы видеть, он может, изменяя режим представления, посмотреть, как дашборд будет выглядеть в итоге.
• Настройка верстки
Для того, чтобы дашборды было легко читать с разных устройств, пользователь настраивает расположение элементов отдельно для каждого разрешения: горизонтальный и вертикальный варианты для планшетов и смартфонов, масштаб для обычных и широкоформатных мониторов.
• Фильтрация
При просмотре дашбордов пользователю обычно интересен не весь массив данных, а только его часть.
Поэтому существуют локальные и глобальные фильтры. Комбинацию значений можно сохранять в наборы фильтров, которые могут применять и другие пользователи. При включении различных фильтров дашборд автоматически перестраивается.
• Экспорт дашборда и отчетов
Пользователь может экспортировать один визуальный элемент или весь дашборд целиком. Одну визуализацию можно сохранить в виде иллюстрации или в шаблон Excel-файла.
Дашборда экспортируется в виде изображения или презентации pptx. Это очень удобно, например, для показа на планерках.
Итоги:
-
BI-система включает в себя ETL-процессы, DWH и непосредственно саму аналитическую платформу, которая может быть представлена в виде десктоп-клиента или web-портала.
-
Данные для BI должны быть подготовлены: нормализованы и очищены, иначе вы получите кривую аналитику. Для этого удобно использовать ETL-инструменты.
-
Как источники данных для аналитической платформы используются хранилища данных (DWH) и OLAP-системы. В качестве исключения могут использоваться неструктурированные данные, в том числе Excel-файлы.
-
Скорость работы BI зависит не от портала, а от выбранной СУБД (DWH) и ее архитектуры. Чем больше данных в системе, тем более производительная должна быть СУБД.
-
Кроме визуализации данных у BI-систем есть широкий список функций: настройка ролей доступа пользователей, в том числе и на уровне строк данных (RLS), встраивание в другие сервисы, хранение и редактирование данных, фильтрация, экспорт дашбордов и т.п.
BI-системы – это удобный инструмент аналитики для компаний с большим количеством данных или их источников. Это направление сейчас активно развивается в сторону self-service и low(no)-code, поэтому занимает меньше времени по сравнению с классическими методами аналитики в Excel.
Кроме того, системы постоянно развиваются и «обрастают» дополнительным функционалом. Например, мы в этом году планируем выпустить функционал, с помощью которого можно разрабатывать и подгружать в портал свои визуальные компоненты.