просто
о сложном
день 03
Сегодня мы поговорим:
о том, с какими болями сталкиваются в BI и как их победить
о DAX-вычислениях и первых простых функциях
как создать свои вычисления на языке DAX
Присоединяйтесь к эфиру, чтобы обсудить тему дня и задать вопросы
15:00 МСК //
Присоединяйтесь к чату марафона, чтобы получить поддержку и общаться с экспертами
Две большие боли в BI
/ Задуматься
руководитель BI, Luxoft,
советник по разработке дата-стратегии и аналитике, дашбордолог, автор воркшопов по фасилитации Data & Analytics стратегии и разработке программы Data Governance
Александр Бараков
За 15 лет внедрения BI-систем второго поколения (Qlik, Tableau, Power BI) российские и зарубежные компании накопили огромный опыт не только побед, но также сложностей и ошибок.
За 15 лет внедрения BI-систем второго поколения (Qlik, Tableau, Power BI) российские и зарубежные компании накопили огромный опыт не только побед, но также сложностей и ошибок.
Топ проблем при внедрении BI-систем:
  • 1
    Нехватка системности в процессах, разрывы в эффективности – последствия недостроенных процессов управления данными, владения данными, согласованных справочников и так далее;
  • 2
    Отсутствие универсальных решений в части вовлечения бизнеса, сложность выстраивания гибридных ролевых моделей на стыке Self-service и централизованной фабрики отчетов;
  • 3
    Хаотичное и неконтролируемое управление контентом, отсутствие поддержки сертифицированного слоя и его обеспечение качеством.
При этом лидер по внедрению BI-системы часто поддерживает иллюзию о ценности проекта для компании, не имея смелости критически оценить реальную прибыль от нового инструмента в текущем ландшафте компании. Менеджмент лишь поддерживает иллюзию потребности в BI, массово скрывая, что и сам не пользуется отчетами или что они не приносят ощутимой пользы, так как думает, что у других компаний ситуация иная.
Для успешного внедрения BI, команде нужно рискнуть взять на себя больше, чем просто поставка и поддержка системы вместе с пользователями. Перевнедрение — отличная возможность учесть прошлые ошибки.
Рассмотрим первые две боли.
Боль 1. Нехватка планирования и стратегии
Самая большая боль, которую называют директора отделов аналитики, — нехватка Data governance, процессов управления данными. Это сложный и кросс-функциональный раздел корпоративной работы с данными, которым можно заниматься очень долго (бесконечно!). Уровень Data governance будет расти по мере роста зрелости вашего проекта. Здесь можно говорить об условной «BI-стратегии», но не как о сложносочиненном документе для руководства, а как о наборе решений для команды по основным подходам в области процессов, ролей, инструментов, операционной эффективности, а также конкретных инициатив и проектов развития.
Разрабатывая BI-стратегию, цинично ответьте себе на вопросы: что и для кого вы делаете, как получить максимальный эффект от проекта внедрения? Составьте черновик стратегии — это общая картина и целевая (и, главное, реалистичная для вашего контекста) зрелость BI-компонентов; а также выработайте тактики — инициативы на 6−12 ближайших месяцев.
Изучите гайд по BI-стратегии на MIRO
Ваша BI-стратегия — это адекватный для вашего уровня зрелости набор инициатив и изменений.
Боль 2. Баланс между Self-service и визуализацией
Self-service BI — бизнес-аналитику в формате самообслуживания — часто внедряют и позиционируют как решение нового уровня по отношению к централизованному BI. Но это неверно.

Важно разделять два понятия: вовлечение бизнеса в интерактивное пользование отчетностью и создание среды, в которой аналитики и аналитические команды создают и самостоятельно управляют своими отчетами. Первое на английском правильнее назвать guided analytics, то есть «направляемая аналитика», а второе — уже истинный Self-service BI. Бизнес-пользователю не нужно продавать Self-service. Бизнес не будет делать отчеты, а если даже и будет, — то не сможет ими управлять.
Централизованная модель и Self-service имеют свои плюсы и минусы. Self-service становится реально нужен с определенного уровня разнообразия данных и аналитики при их высокой критичности для бизнеса.
Для остальных случаев так называемая «фабрика отчетов» с сервисной, продуктовой моделью будет показывать большую эффективность за счет более простого управления ресурсом и контентом.
Противопоставлять self service и управляемую «фабрику отчетов» не нужно. Самым эффективным способом работы с BI всегда будет гибридная модель, в которой веса этих двух компонент распределяются в зависимости от уровня зрелости вашей компании, имеющихся ресурсов, процессов управления данными и аналитической культуры.
DAX для новичков: просто о сложном
/ Теория
Представьте, что у вас есть огромная книга (или электронная таблица) с данными о вашем бизнесе: продажи, клиенты, товары и так далее. Вы хотите ответить на важные вопросы, например «Какой был общий доход за прошлый месяц?» или «Какой продукт продавался лучше всего в каждом регионе?» Вместо того чтобы вручную считать и анализировать строки, вы можете использовать DAX.
DAX — это магический переводчик, который превращает вопросы в инструкции для программы. Вы пишете формулы на языке DAX, как письмо волшебнику, который знает, как обращаться с числами, а в ответ получаете нужные ответы.
Например, если надо узнать общий доход, вы напишете формулу DAX, которая скажет программе: «Пожалуйста, сложите все числа продаж за прошлый месяц и дайте мне итог». DAX можно использовать для создания сложной формулы, которая будет фильтровать, сравнивать и считать продажи по каждому продукту в каждом регионе.

Самое крутое в DAX — то, что он умеет учитывать контекст. Если вы смотрите на продажи в одном конкретном магазине, DAX автоматически сосредоточится на данных только для этого магазина. DAX – это мощный инструмент, который позволяет задавать сложные вопросы и получать на них точные ответы.
По мере прохождения урока вспомните вопросы из первого домашнего задания и попробуйте подобрать подходящие функции.
Основные концепции DAX:
  • 1
    Контексты вычислений. В DAX есть два контекста: строковый и фильтрованный. Строковый контекст определяет значения в конкретной строке данных, в то время как фильтрованный фильтрует данные по определенным критериям. Он применяется при вычислениях агрегатных функций, таких как SUM или AVERAGE.
  • 2
    Функции. DAX включает в себя множество функций, часть из которых аналогична функциям в Excel. Эти функции позволяют выполнять математические, статистические, логические и многие другие операции.
  • 3
    Таблицы и отношения. DAX эффективно работает с данными в табличной форме и может использовать отношения между таблицами для выполнения сложных вычислений и анализа данных.
Преимущества использования DAX:
  • 1
    Мощные вычисления. DAX может выполнять сложные вычисления, которые трудно или невозможно выполнить с помощью стандартных формул в Excel.
  • 2
    Повышение производительности. Формулы DAX оптимизированы для работы с большими объемами данных и могут быстро обрабатывать запросы, что существенно экономит время
  • 3
    Гибкость. С помощью DAX можно создавать пользовательские метрики и вычисления, которые точно соответствуют уникальным требованиям вашего бизнес-анализа.
Простые функции DAX
DAX включает в себя множество встроенных функций: статистические, даты и времени, фильтрации, логические и другие.

Вы можете комбинировать функции и операторы для создания выражений и формул, которые выполняют расчеты на основе данных. Выражения могут быть простыми, например SUM (Table[Column]), или более сложными, содержащими несколько функций и операторов.

Пример формулы DAX:

MeasureTotalSales :=
CALCULATE (
    SUM ( Sales[Amount] ),
    FILTER ( All ( Sales[Date] ), Sales[Date] >= DATE ( 2020, 1, 1 ) )
)

В этом примере создается мера `MeasureTotalSales`, которая рассчитывает сумму продаж с 1 января 2020 года. Функция `CALCULATE` изменяет фильтровый контекст таблицы `Sales` так, чтобы учитывать только продажи после указанной даты.

Обратите внимание, что набор функций DAX в Visiology несколько меньше, чем в Power BI. С актуальным списком функций вы можете ознакомиться в документации здесь. Вы можете подробнее изучить описание основных функций в DAX, таких как SUM, AVERAGE, MIN, MAX, в нашем справочнике здесь.

Функции работают по общему принципу. Например, если у вас есть таблица с данными, сколько вы потратили каждый день на кофе, и вы хотите узнать общую сумму за месяц, вы просто сложите все эти числа вместе. На языке DAX вы бы написали это так: ОбщийРасходНаКофе = SUM(Расходы[Кофе]), или, если вы захотите вспомнить, когда же вы купили самый дорогой кофе, вы бы сделали то же самое, но искали самую большую сумму. В DAX команда для этого будет такой: СамыйДорогойКофе = MAX(Расходы[Кофе])
Погружение в Х-функции DAX
X-функции в DAX — это особый тип функций агрегации, которые позволяют делать расчеты с условием или через определенный набор данных. Они работают, как обычные агрегационные функции, но добавляют больше контроля над тем, как именно вы суммируете, находите среднее, минимум или максимум.
Рассмотрим это на примере функции SUMX. Обычная функция SUM просто суммирует все числа в столбце. SUMX позволяет сделать что-то более сложное: например, сначала умножить числа в двух разных столбцах, а затем сложить результаты.

Пример. Допустим, у вас есть магазин, и вы хотите узнать общий заработок. У вас есть столбец с количеством проданных товаров и столбец с ценой товара. Чтобы вычислить заработок, вам нужно для каждой строки таблицы умножить количество на цену, а затем сложить все это вместе. Вот как можно использовать SUMX:

ОбщийЗаработок = SUMX(Продажи, Продажи[Количество] * Продажи[Цена])
X-функции особенно полезны, когда вы работаете с данными, которые нужно преобразовать или вычислить индивидуально для каждой строки, прежде чем получить одно общее значение.
Создаем свои вычисления
/ Практика
Вспомните список вопросов, который вы готовили в качестве первого домашнего задания. Это должны быть очень простые запросы, ответить на которые мы сможем, используя функции DAX.

Посмотрим на примерах.

Пример 1. Электроавто.

Первый вопрос, на который я хотел бы ответить, звучит так: «Какова загрузка зарядных станций?»
Для этого мне необходимо обратиться к таблице «Учет зарядных сессий автомобилей» и посчитать количество зарядных сессий. В качестве столбца я могу использовать столбец VIN, так как он отвечает за уникальный id конкретного автомобиля. В этом случае формула может выглядеть так:


Количество зарядных сессий = COUNT(‘Учет зарядных сессий автомобилей’[VIN])
Впоследствии мы сможем разбить данную меру по любому подходящему контексту, например во времени или по зарядным станциям.

Пример 2. Онлайн-кинотеатр.

Во втором примере вопрос может быть таким: «Какова маржинальность показа фильма?» Это можно посчитать, зная стоимость показа и стоимость отчисления правообладателю. Для этого нужно обратиться к таблице «Статистика онлайн-кинотеатра» и вычесть с каждого показа 30%. Здесь важно провести операцию в рамках каждой отдельной строки, так как в случае простой агрегации мы вычтем значение из общей суммы, а не из каждой записи в таблице. Поэтому будем использовать функцию SUMХ:

Прибыльность показа фильма = SUMX('Статистика онлайн-кинотеатра','Статистика онлайн-кинотеатра'[Стоимость просмотра]-'Статистика онлайн-кинотеатра'[Стоимость просмотра]*0.3)
Вам необходимо создать 2−3 простых меры и попробовать их визуализировать. Вы можете добавлять различный контекст. Главное, помните и ориентируйтесь на свой список вопросов.

Результаты выполнения домашнего задания присылайте нам в Telegram-чат в виде скриншота, не забывая поставить хэштег #практика03. Для вашего и нашего удобства, помимо визуализации, укажите саму формулу меры и вопрос, на который отвечает данная мера. Удачи в выполнении домашнего задания! В следующем прямом эфире мы разберем самые интересные из них.
Присоединяйтесь к эфиру, чтобы посмотреть, как именно создать свои вычисления в Visiology
15:00 МСК //
Полезные ссылки
Переведенная на русский язык книга-справочник и пособие по работе с DAX
Статья с Хабра
Задать все вопросы по DAX можно нашему боту в Telegram