Большой обзор особенностей отчета — второе место Хакатон 2.0

1218
Большой обзор особенностей отчета — второе место Хакатон 2.0

Большой обзор особенностей отчета — второе место Хакатон 2.0Здравствуйте, меня зовут Олег Степанов. Более 15 лет я занимаюсь аналитикой в области продаж и производства. В последние 1,5 года я начал активно использовать в своей работе BI инструменты, в частности MS Power BI. В одном из проектов использовался коннектор MyBI connect, что и познакомило меня с блогом Power BI Russia, а желание совершенствоваться в DAX, PQ и моделях данных заставило поучаствовать во втором Хакатоне.

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

Три месяца на выполнение задания и желание включить в отчет максимальное количество аналитик сделали свое дело: отчет получился объемным —  20 страниц без учета тултипов и подробностей. Для навигации по такому числу страниц я использовал две панели закладок: для перехода между секциями и для переходов внутри выбранной секции.

Большой обзор особенностей отчета — второе место Хакатон 2.0

Благодаря комментарию Андрея Жданова в телеграмм канале, о том, что до кода может не дойти и работа будет оцениваться по внешнему виду, я решил “инвестировать” чуть больше времени и сил на оформление. Цветовая тема выполнена на основе палитры блога, а чтобы визуально разделить секции между собой их оттенки отличаются.  

Я пошел по пути использования встроенных (дефолтных) визуализаций, за исключением фильтра с поиском, который мне показался очень уместным на нескольких страницах. Встроенные «вижуалы» — иногда единственный путь: на предприятии может быть отключено использование сторонних визуализаций и, работая в Десктопе, можно сделать отличный продукт, а при загрузке на сервис получить часть неработающих графиков. Кроме этого, их производительность максимально оптимизирована и обычно они работают быстрее, чем их более симпатичные “коллеги”.

Уже в конце работы над проектом, когда стало ясно, что отчет получается объемным, я реализовал страницу входа: туда я вывел информацию о посещении блога за последний день и ссылки на три секции отчета. Таким образом, просмотрев только одну страницу, можно понять, что происходит в блоге и при желании перейти к основным секциям. 

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

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

В части обработки исходных данных я не применял каких-то нетривиальных подходов, но постарался перенести максимум преобразований в Power Query. При анализе не было необходимости производить сложные вычисления, поэтому DAX не использовался для создания расчетных колонок, все дополнительные колонки, также как и большинство вспомогательных таблиц, справочники календаря и времени, создавались в PQ или использовались предложенные сервисом myBI Connect.

Я не делал панель с фильтрами скрываемой, так как хотел сократить количество кликов при использовании слайсеров и иметь возможность видеть какие фильтры активны в данный момент. Слайсеры представлены в формате drop down, что позволяет оптимизировать производительность отчета, так как в этом случае они не создают запросы при обновлениях визуализаций.

В проекте я использовал распространенный прием — переключение отображаемых показателей на одной визуализации с помощью switch-мер. Очень удобно, но часто возникает проблема некорректного отображения форматов выбираемых мер. Например, когда нужно переключиться между мерой которая выражается целым числом и мерой  выраженной десятичным числом. В моем отчете использовалось переключение формата с помощью групп вычисления (calculation groups). (подход описан здесь):

Большой обзор особенностей отчета — второе место Хакатон 2.0

В Tabular Editor создана группа вычисления с условным форматированием в секции Format String Expression:

Большой обзор особенностей отчета — второе место Хакатон 2.0

В отчете данная группа помещена в поле фильтров:

Большой обзор особенностей отчета — второе место Хакатон 2.0

Другой прием, менее распространенный — переключение осей графиков с помощью слайсеров (день, неделя, месяц год). На мой взгляд, это удобная альтернатива встроенной функции drill down для переключения между уровнями иерархии на графиках.

Большой обзор особенностей отчета — второе место Хакатон 2.0

Для реализации требуется дополнительная (вспомогательная) таблица с несколькими столбцами и настройка связей (подробнее здесь):

Большой обзор особенностей отчета — второе место Хакатон 2.0

Чтобы “разгрузить” некоторые визуализации и упростить их восприятие, я реализовал возможность включать или выключать отображение графиков с помощью слайсеров:

Большой обзор особенностей отчета — второе место Хакатон 2.0

Это также несложно реализуется с использованием групп вычислений (в Tabular Editor) с прописанными мерами time intelligence:

Большой обзор особенностей отчета — второе место Хакатон 2.0

Большой обзор особенностей отчета — второе место Хакатон 2.0

Главным открытием для себя в ходе работы над проектом я считаю использование встроенной визуализации Smart Narrative. По сути это обычный текстовый бокс с возможностью встраивания в текст значений мер. Его удобно использовать для создания интерактивных заголовков с детальным описанием графиков. Отлично подходит для создания тултипов или аналитических записок, текст которых меняется в зависимости от значений фильтров. Известно, что количество визуализаций на странице отрицательно влияет на производительность, Smart Narrative может быть использован для решения проблем с производительностью путем отображения множества мер в одной визуализации. Советую обратить внимание на этот инструмент.

Smart Narrative в качестве аналитической записки:

Большой обзор особенностей отчета — второе место Хакатон 2.0

Или в качестве тултипа —

Большой обзор особенностей отчета — второе место Хакатон 2.0

Еще одно очень важное “знание”, которое я вынес из работы над заданием и при проектировании отчета: нужно стараться (не забывать) через меню Format \ Edit interactions отключать от слайсеров те визуализации, на которые они не воздействуют (думаю, это касается любых взаимодействий, не только слайсеров). Это может кардинальным образом сказаться на производительности отчета. Например, в моем случае на странице Активность/Показатели переключение слайсера с мерами никак не влияет на визуализации с основными метриками и их трендами. Изначально я не отключил взаимодействие слайсера и таблиц с трендами и получил жуткую заторможенность этой страницы. Скорость обновления данных с трендами составила порядка 70 сек. При отключении ненужных взаимодействий скорость обновления сократилась до нескольких секунд без потери функциональности.

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

  1. Страница с распределением посещений блога по дням недели и времени суток (тепловая карта). Использование раздельных справочников календаря и времени суток позволило сделать эту очень показательную визуализацию. Правда, для получения такой графики с помощью только дефолтных визуализаций пришлось прибегнуть к компоновке отдельных элементов:Большой обзор особенностей отчета — второе место Хакатон 2.0
  2. Страница с корреляцией показателей. В Power BI нет встроенного инструмента для анализа корреляций и для реализации данной аналитики я использовал готовый образец формулы (взял здесь):Большой обзор особенностей отчета — второе место Хакатон 2.0
  3. Страница со сравнением статей между собой. Особенностью данной аналитики является то, что на графиках отображаются только выбранные статьи (как это сделать рассказывается здесь):Большой обзор особенностей отчета — второе место Хакатон 2.0Работа над проектом потребовала много времени, но это время не потрачено впустую. Практически все вебинары оказались полезными в той или иной степени. Было интересно поработать с базой, полученной из myBI Connect. Еще раз хотел бы поблагодарить организаторов Хакатона за этот “марафон”, который заставил сделать еще несколько шагов вперед в освоении такого замечательного инструмента, как Power BI.