День 3. Строим первый дашборд. Загружаем данные из базы
Всем привет! Сегодня мы создадим первый дашборд в Visiology.
Как известно, для создания дашборда необходимо:
1
2
3
Загрузить данные из источника в BI
Настроить связи между данными (создать модель)
Визуализировать данные в конструкторе дашбордов
Давайте начинать!
Загрузка данных в ViQube
В боковой панели слева вы увидите список доступных баз данных ViQube. Напомним, что с точки зрения структуры аналитики каждая база - это отдельная модель данных. Т.е. набор таблиц со своими связями, на основе которого строятся диаграммы визуализации данных.
✅Раскройте базу с меткой Sprint 2023 в названии. Здесь мы и будем работать.
Сейчас эта база пуста, в ней нет данных. Чтобы они там появились, нужно добавить загрузчики. Загрузчики позволяют загрузить в ViQube данные из другой СУБД, файлов Excel или CSV.
✅Перейдите в раздел загрузчиков.
✅Добавьте новый загрузчик.
Начнем с таблицы, содержащей факты продаж. ✅Назовем загрузчик Leads.
✅В качестве источника данных выберите уже настроенное подключение Postgress. Для удобства администрирования марафона, мы пропускаем настройку подключения к самой базе, но вы можете ознакомиться с ней в инструкции. Там ничего сложного, стандартная процедура - указать имя тип базы и реквизиты подключения.
При импорте из БД, данные получаются за счет выполнения SQL-запроса. В нашем случае запрос будет такой:
SELECT
"Leads".*
FROM
"Leads"
Он означает: “загрузи все поля (*) из таблицы Leads”. Конечно, здесь могут быть и более сложные запросы.
✅Сохраните настройки.
✅Зайдите в редактирование структуры данных.
Вам откроется предпросмотр данных. Какова структура таблицы, с которой мы работаем?
Таблица Leads - это лог событий по сделкам. Для каждой сделки (поле Sales_ID) может быть 2 события: создание сделки и закрытие сделки, каждое событие со своей датой. Единое поле дат в этой таблицы - Date, а тип события определяется в поле Date_type.
Также, в лог событий присоединены данные по каждой конкретной сделке: поле Revenue, как сумма сделки, поле Status, как текущее состояние сделки (Открыта, Успешно закрыта, Неуспешно закрыта), дата создания, дата закрытия, и ряд ключевых полей для связи с другими таблицами.
Таким образом, по одной сделке в этой таблице может быть до 2-х записей, и общая структура данных в таблице такая:
Чтобы мы могли оперировать данными на визуализации, нужно разметить в таблице Показатели и Измерения.
Разметка показателей и измерений
✅Кликните по перечеркнутому кружку рядом с полем Revenue. Перечеркнутый кружок значит, что полю не присвоена никакая роль.
✅Выберите роль Показатель ✅Выберите вид агрегации SUM
Первым делом, система попросит вас ввести наименование группы показателей. Группа показателей - это наименование раздела, в который будут помещены показатели на основе данных из этой таблицы.
✅Назовем нашу группу “Сделки”. После сохранения, группа показателей данной таблицы отобразится над полями. Мы также можем отредактировать название поля, которое будет выводиться в списке показателей. Давайте назовем его “Сумма сделки”.
✅Также, давайте добавим показатель в виде суммы по полю Amount.
Как видите, вводить название группы показателей от нас не больше просят. ✅Переименуем Amount в Количество.
Однако, одними показателями сыт не будешь. Нужно разметить также измерения, чтобы отображать показатели в их разрезе.
Начнем с поля Delivery_city. ✅Щелкаем по перечеркнутому кружку, выбираем Измерение> Создать новое.
Назовем наше измерение “Сделки”. На самом деле, измерение - это не свойство отдельно взятого поля, а группа полей, которые используются как аналитические разрезы.
Создавая измерение “Сделки”, мы создаем группу, в которой могут находиться поля, отображающие показатели в разрезе полей из таблицы Leads, добавленных в измерения Сделки.
✅Переименуем поле в Delivery_city в “Город доставки”
В таблице сделок есть еще одно поле, которое интересует нас как разрез свойств сделок. Это поле Status. Ему тоже надо назначить измерение. Но теперь мы не будем создавать новое, а ✅выберем существующее, т.е. измерение Сделки. ✅Само поле переименуем в Статус.
Вот результат
✅Также, добавим в измерение Сделки поле Date_type. Можно назвать его “Тип события”.
✅Сохраняем результат нашей работы.
Возможно, вы работали раньше в BI-системах, где понятие “Измерение” всегда относилось к какому-то одному полю. И в терминах этих систем у нас тут должно быть 3 измерения: Город доставки, Статус сделки, Тип события. Из-за этого сейчас картина не очень понятная: почему мы добавили 3 разных поля в одно измерение, да еще и назвали его “Сделки”? Не беспокойтесь, ситуация прояснится на этапе сборки дашборда ;)
Евгений Стучалкин
Методолог системных подходов в разработке бизнес-аналитики
✅Чтобы сохранить внесенные в структуру изменения, нужно нажать на кнопку Загрузить данные.
После загрузки, данные сохраняются в ViQube, и мы можем начать строить первый дашборд.
Однако, мы чуть не забыли про важную деталь!
Календарь! Поэтому, давайте для дополним модель справочной таблицей-календарем.
✅Для этого создадим еще один загрузчик, назовем его Календарь. Загрузка будет идти из той же базы, что и для Leads.
Запрос для загрузки данных:
SELECT
"Calendar".*
FROM
"Calendar"
✅Зайдем в настройки структуры. Первым делом, изменим тип данных на просто Дата, для поля Date. Это важно для корректной связи данных.
✅Для поля Date создайте новое измерение Календарь. Поместите в это измерение все поля данной таблицы. ✅Переименуйте поле Date в Дата. Сохраните изменения и загрузите данные.
Теперь, нам нужно связать данные календаря, и таблицы сделок. ✅Для этого донастроим загрузчик Leads. Полю Date в таблице Leads выставьте тип данных Дата.
А теперь, зададим полю Date измерение. Но на этот раз мы будем не создавать новое, а выбирать существующее:
✅В открывшемся окошке выбираем измерение Календарь, раскрываем список входящих в него полей. Выбираем поле Дата, как ключевое поле для связи разрезов измерения Календарь и таблицы Leads.
(Набор полей в вашей базе данных может отличаться)
✅Сохраняем изменения и загружаем данные заново.
Именно так в Visiology 2 устанавливаются связи между данными. Позже мы рассмотрим эту механику более детально.
Построение базового дашборда
✅Запустите дизайнер дашбордов, нажмите на кнопку “Создать”, и задайте название дашборда с вашими фамилией и инициалами.
Убедитесь, что у вас выбрана правильная база данных для работы. Дашборд может строиться только на основе одной базы ViQube.
✅Перейдите в раздел “Вставка”, и выберите визуализацию График.
✅Выделите график. Вывод данных осуществляется с помощью раздела Привязка данных в панели справа.
Прежде всего нужно выбрать, откуда в визуализацию будут поступать данные. Помимо ViQube, есть возможность использования языков программирования Python и C#. А также заполнить данные от руки в таблицу.
Однако нам нужен именно ViQube.
Чтобы данные появились, нужно добавить в визуализацию запрос, и настроить его соответствующим образом. ✅Добавьте запрос, и кликните по выбору группы показателей.
Вам будет доступна только одна группа - Сделки. Выбираем ее.
Теперь нам нужно выбрать показатель. ✅Выберите Сумму продаж.
Отлично, у нас есть картинка! Однако, без аналитического разреза (измерения), она не несет в себе большого смысла.
В Visiology добавлять измерения можно двумя способами.
Измерение в группе показателей (синяя стрелка) будет нарезать показатель по оси Y. Измерение в строках (красная стрелка) будет тиражировать значения по оси X.
✅Добавьте в качестве измерения в строках поле Date_YM.
И вот у нас выводится симпатичный график.
Давайте настроим для графика фильтрацию. ✅Для этого добавим над ним элемент Фильтр.
Для фильтра также нужно настроить запрос. Выбираем источник ViQube, вариант “без группы показателей”.
✅В качестве измерения установим поле Date_Y из календаря.
✅Тут же, в привязке данных, отмечаем, на какие визуализации должен влиять фильтр.
Теперь при выборе на фильтре года мы увидим отфильтрованный график.
Вот и все основы построения визуализаций в Visiology. Возможно, вы спросите: “Постойте, мы просто вывели задвоенную сумму сделок, смешав успешные, открытые и проигранные сделки, сразу на дату закрытия и создания сделок. Что вообще можно понять по такому графику?” И будете совершенно правы. Но с этим мы будем разбираться в следующем занятии.
✅Сохраните ваш дашборд, чтобы не потерять результаты работы.
заключение
1
Чтобы анализировать данные в Visiology 2, нужно загрузить их в базу ViQube;
2
Для каждой таблицы создается группа показателей, в которой прописываются способы агрегации полей, по которым будут рассчитываться показатели. Группы показателей используются как каталог при построении дашбордов
3
Для аналитических разрезов нужно создавать Измерения. Измерение - это каталог полей, содержащий разрезы одной сущности. Также, с помощью Измерений настраиваются связи между таблицами.
4
Каждый дашборд может работать только с одной базой ViQube
5
Визуализации создаются в основном как настраиваемый запрос в ViQube