
Хабр, привет!
Меня зовут Александр Ларин, я руководитель центра технической поддержки и обучения в GlowByte и лидер самого большого в России сообщества FineBI.
В данной статье я хотел бы показать новичкам основы работы в FineBI: как подключиться к источнику данных, создать на его основе датасет, провести обработку данных, собрать свой первый дашборд – и всё это сделать буквально за 30 минут. А тех, кому этого будет недостаточно, приглашаю на наши курсы.
Прежде чем приступим, небольшой офтоп. Приглашаю на онлайн-конференцию Fine Day.
Fine Day online: Истории цифровизаторов - уникальное мероприятие для цифровых инноваторов! Присоединяйтесь к нам, чтобы узнать истории успеха от ведущих цифровизаторов, включая представителей АвтоВАЗа, Министра здравоохранения Калининградской области, эксперта в области построения BI и компании ПИК.
Дашборд – это интерактивный инструмент для визуализации данных, предназначенный для представления ключевой информации о бизнес-процессах или метриках в удобной форме.
Дашборды обладают функциональностью интерактивного взаимодействия. Пользователи могут взаимодействовать с графиками, фильтрами и другими элементами управления, чтобы получать детальную информацию, а отображение нескольких графиков на одной странице, позволяет быстро получать обзорную информацию о различных аспектах бизнеса или процесса.

Сегодня мы научимся строить дашборд, который позволит анализировать продажи небольшого розничного магазина масштабных моделей классических автомобилей.
1. Подключение источника данных
В FineBI существует несколько способов получения данных. Рассмотрим один из основных – подключение к базе данных. Если возможности создать подключение к базе данных нет, то можно загрузить данные из Excel-файла.
Воспользуемся готовой БД classicmodels, которую можно скачать по данной ссылке. Она содержит типичные бизнес-данные, включая информацию о клиентах, товарах, заказах на продажу, позициях заказа на продажу и т. д. Скачанный файл можно открыть в любой СУБД, например MySQL Workbench.

Для создания нового подключения перейдем на вкладку Data Connection Management и нажмем New Data Connection. FineBI из коробки предоставляет готовые коннекторы к популярным СУБД. Выбираем подходящий. Остается только ввести необходимые данные для подключения.

2. Создание датасетов
Переходим во вкладку Public Data, где хранятся датасеты. В FineBI доступно 2 режима подключения к источнику данных: Spider (сохранение данных в кэш) и Direct Data (прямое/лайв соединение к источнику). Нажав на шестеренку рядом с Public Data, можно выбрать подходящий режим. В нашем случае можно выбрать любой режим, в реальных задачах выбор режима зависит от объема запрашиваемых данных, частоты обновления источника и других аспектов.
Нажмем на плюс рядом с нужной папкой, выберем Database Table, далее – нужные таблицы из подключения. Выберем таблицы customers, orderdetails, orders, products, payments.

Нажмем на кнопку Edit. Перед нами откроется интерфейс с такими инструментами предварительной обработки данных из БД, как выбор нужных полей, смена типа данных для полей, преобразование строки в колонку, колонка с рекурсией. Для поля orderNumber (таблицы orders и orderdetails) поменяем тип c расчетного на текстовый. Это позволит нам в будущем удобно фильтровать данные по номеру заказа.

3. Подготовка данных
На вкладке My Analysis хранятся дашборды пользователя. Это своего рода песочница, в которой можно создавать новые объекты анализа. Создание дашборда включает в себя несколько этапов:
обработку данных,
создание отдельных визуализаций (компонентов),
размещение компонентов на дашборде.
Весь процесс хранится в объекте Analysis Subject.

Создадим новый Analysis Subject. Далее откроется новая страница, предлагающая выбрать источник данных для дашборда. Выбираем созданные ранее датасеты и жмем ОК.

На вкладке Data происходит подготовка данных для анализа. FineBI предлагает много инструментов для обработки данных: объединение, пересечение, фильтры, добавление новых столбцов и др.
Обработанные датасеты называются Self-Service Dataset (SSDS), их можно опубликовать на платформе для других пользователей для совместной работы.

На вкладке Model View настроим связи между таблицами, перетащив их друг на друга. FineBI автоматически определит поле для ключа и тип связи: 1:1, 1:N или N:1. Это позволит строить визуализации, используя данные из нескольких таблиц.

4. Создание визуализации
Приступим к созданию визуализаций. В форме подготовки данных нажмем Add Component и создадим новый компонент визуализации. Откроется форма создания нового компонента – слева представлена форма со списком полей нашего датасета, в центральной части – форма настройки компонента, а справа – форма предварительного просмотра.

FineBI предлагает заготовки для многих типов визуализаций. Они представлены в секции Chart Type. Выбрав Custom Chart, можно комбинировать основные типы визуализаций (например, столбчатая диаграмма + линейный тренд).
Все столбцы делятся на индикаторы (Indicator) c типом значения и измерения (Dimension), с типом текст или дата. Для измерений можно настроить сортировку, группировку, фильтр и пр. Для индикаторов можно настроить сортировку, тип агрегации (сумма, среднее и т. д.), быстрое вычисление (чтобы не создавать множество дополнительных расчетных индикаторов) и пр. В FineBI есть возможность конвертировать расчетное поле в измерение и наоборот.

Создадим расчетный индикатор TotalSum, который позволит нам определить стоимость заказа, т. к. данный показатель отсутствует в нашем датасете.

Для расчета нужно перемножить поля quantityOrdered и priceEach из таблицы orderdetails. В поле ввода формулы введем формулу
${quantityOrdered}*${priceEach}
Для выполнения более сложных вычислений можем использовать функции, которые представлены в меню слева.

Теперь создадим первую визуализацию с типом Group Table, которая позволит просматривать суммарные продажи для каждой категории. Поле с категорией можно развернуть и посмотреть продажи по отдельным товарам. В свою очередь, поле с товарами можно развернуть, чтобы посмотреть конкретные заказы и заказчиков. В нашей таблице измерения это название категории, название товара, номер заказа и имя клиента; индикатор – сумма сделки и процент от общей суммы продаж.


Перейдем ко второй визуализации – линейному графику, который позволит анализировать продажи во времени. Для этого в меню Chart Type выберем Custom Chart. Далее выберем тип графика Line в Graphic Property. Расположим индикатор TotalSum на вертикальной оси. Горизонтальной осью графика будет дата заказа, то есть поле orderDate в таблице orders.

В меню Graphic Property можем настроить свойства графика, такие как цвет, толщина и стиль линии, отображение маркеров, подпись точек графика и др.

В Component Style можем настроить общие свойства визуализации, такие как стиль и отображение осей, легенды графика, задний фон и др.

5. Сборка дашборда
Итак, перейдем к сборке дашборда. Справа внизу нажмем на фиолетовый значок Add Dashboard. Перейдем на вкладку Dashboard. Перед нами откроется пустая форма, на которую мы перетащим компонент-таблицу и компонент-график.

Добавим фильтры, чтобы был удобный поиск по названию продукта, имени покупателя и номеру заказа. Для этого выберем сверху Filter Component. В открывшемся меню найдем Text List Filter Component. Чтобы добавить фильтр по имени заказчика, выберем слева в интерфейсе фильтра таблицу customers и перетащим customerName в поле Field. Аналогично сделаем фильтры по названию продукта и номеру заказа.

После того как мы разместили все фильтры и компоненты на дашборде, можем приступать к визуальному оформлению дашборда.
Поменяем стиль нашего дашборда, чтобы он выглядел интереснее. FineBI предлагает несколько готовых стилей в меню Preset. Также можно настроить собственную форму в меню Custom.

Посмотрим на финальный результат:

Заключение
Итак, в данной статье мы собрали несложный дашборд с линейным графиком, вложенной таблицей и фильтрами, который позволяет быстро найти нужные заказы и посмотреть доход магазина. Получившийся дашборд можно сделать общедоступным по публичной ссылке, опубликовать на платформе, экспортировать в Excel и PDF.
Надеемся, что вам было интересно и полезно! Не забывайте, что в GlowByte мы предлагаем обучение по работе с FineBI и техподдержку для этого инструмента! Если у вас возникнут вопросы или понадобится помощь, наша команда сертифицированных специалистов всегда готова помочь.
И не забудьте присоединиться к нашему сообществу в Telegram! Там вы сможете обмениваться опытом с другими пользователями FineBI, задавать вопросы и оперативно узнавать об обновлениях.