Урок 6а. Введение в моделирование данных

Шестой урок из курса Максима Уварова «Power Bi для интернет-маркетинга»

Моделирование данных

Рабочий файл: pbi моделирование данных v2.1d — YM+GA.pbix

Моделирование данных

Моделирование данных — это создание и настройка структуры таблиц и их связей в базе данных. Во время этого процесса мы определяем, какие данные где должны храниться и как между собой эти данные должны быть связаны.

Пожалуй, лучшие из специалистов по DAX Альберто Феррари и Марко Руссо посвятили отдельную книгу вопросам моделирования данных «Analyzing Data with Power BI and Power Pivot for Excel»
Их книга начинается со слов о том, что зачастую проблемы, с которыми обращаются к ним (как к консультантам) клиенты, когда все необходимые данные для конкретных расчетов загружены в базу данных, но формулы для этих расчетов становятся запредельно сложными, вызваны ошибками архитектуры модели данных. Если эти ошибки устранить, то формулы для необходимых вычислений станут проще и понятнее.

Рассмотрим пример. Нам нужно подсчитать разницу (абсолютную и относительную) в показаниях счетчиков Яндекс.Метрики и Google Analytics, установленных на проекте Marketing-Wiki.ru. Изменение этой разницы нам нужно отследить по годам.

При помощи PQYandexMetrica и PQGoogleAnalytics мы выгрузили две похожих таблички.

В Power Query при помощи команды «Merge Queries» («Объединить запросы») эту операцию сходу сделать не получится, т. к. в таблицах есть несколько строчек с одной датой. И даже если бы получилось, то подобная таблица противоречила принципам tidy data — столбец с визитами дублировался бы дважды.

Будет лучше создать третью таблицу календарь-справочник и связать с ней имеющиеся таблицы по полю дата.

Создать таблицу календарь-справочник можно
в Dax при помощи функций:

в Power Query при помощи:

На видео создается таблица при помощи функции CALENDARAUTO.

calendar = CALENDARAUTO()

Функция CALENDARAUTO сначала проверяет все столбцы в загруженных в модель данных таблиц и находит столбцы с форматом «Дата».
Далее для каждого найденного столбца функция ищет значение самой ранней и самой поздней даты.
Далее из всех значений она выбирает самую раннюю и самую позднюю дату. И создает календарь, начиная с 1 января года самой ранней даты до 31 декабря года самой поздней даты.

Если в загруженные таблицы добавятся новые даты, то таблица, созданная при помощи функции CALENDARAUTO обновится автоматически.

Мы можем создать визуализацию «график-линия», перенести в область оси столбец «Date» из таблицы-календаря, а в качестве значений добавить столбцы с визитами из таблиц Яндекс.Метрики и Google Analytics.

Когда мы переносим столбец в область значений, Power BI автоматически создает встроенную меру (implicit measure), в которой для числовых столбцов по умолчанию считает сумму, а для не числовых столбцов считает количество. Использование встроенных мер — это не оптимальная техника.

Лучше создать внешние меры (explicit measures) — меры явно подсчитывающие сумму по столбцу визитов каждой из таблиц.

Далее мы можем создать меры с подсчетом абсолютной и относительной разницы в числе визитов:

_ym-ga sessions = [_ym:sessions] - [_ga:sessions]
_ym/ga sessions = (YM[_ym:sessions] / GA[_ga:sessions])-1
И за весь промежуток времени мы можем видеть следующие показатели.

Преимущество использования таблицы календаря-справочника

Рабочий файл: pbi 5а моделирование данных v2.1b — YM+GA.pbix

Преимущество использования таблицы календаря-справочника

Если мы поставим уровень детализации визуализации «график-линия» до дней, то мы можем увидеть, что счетчик Яндекс.Метрики начал собирать данные позже, чем счетчик Google Analytics.

Для честного сравнения нам нужно выбрать только промежуток времени, когда данные поступали в оба счетчика одновременно.

Для этого мы можем создать «Custom Column» в таблице «Calendar» и этот столбец будет проверять, что в конкретную дату у нас есть данные из обоих счетчиков.

FlagThereIsDataInYMAndGA = AND([_ym:sessions]>0;[_ga:sessions]>0)
Когда TRUE — у нас есть данные из обоих счетчиков

После мы можем добавить на нашу визуализацию Slicer с появившимся столбцом «FlagThereIsDataInYMAndGA» и благодаря этому наши цифры будут пересчитаны.

Шпаргалка курса и ментальная карта, ПДФ, 88 страниц, 13 Мб

Отправить
Поделиться
Твитнуть
Запинить

Поддержать автора курса рублями

Если курс оказался полезным, можно задонатить автору курса — Максиму Уварову.

Все перечисленные средства приходят Максиму Уварову.

❤️ Поддержать донатом Максима Уварова

Считаю метрики, делаю сквозную аналитику и когортный анализ, составляю интерактивные дешборды, моделирую юнит-экономику


Обратиться с задачей