Домой / Группы / Как работать с Microsoft Power BI — подробное руководство. Энциклопедия маркетинга

Как работать с Microsoft Power BI — подробное руководство. Энциклопедия маркетинга

  • Визуализация данных
    • Tutorial

    UPD: Обновил публикации в связи с выходом Power BI Desktop из стадии Preview 24 июля.

    Сегодня хочу рассказать про построение простого дашборда с план-фактным анализом доходов и расходов в Power BI Desktop и Power BI . В первой части рассмотрим работу с запросами, научимся объединять данные из нескольких источников и выполнять их очистку.

    Исходные данные: несколько файлов Excel в которых хранится информация о показателях доходов и расходов компании за некоторое время. Поскольку форма отчетов и статьи учета несколько раз менялись, то листы с информацией имеют похожую, но не совсем одинаковую структуру. На выходе требуется получить нечто, что позволит руководителям получить представление о том, что происходит с финансами компании
    Давайте посмотрим, как Power BI Desktop позволит объединить данные и их визуализировать.

    Рисунок 1. Стартовое окно Power BI Desktop


    При запуске Power BI Desktop просит указать источник данных или выбрать один из недавних источников. Кстати, по поводу источников – возможно подключение к большому их количеству, включая онлайн и локальные источники. Например, Google Analytics. В нашем случае все отчеты хранятся в одной папке, поэтому выберем в качестве источника «Папка». Такой выбор позволит в дальнейшем добавлять новые отчеты в эту папку и подгружать их данные для анализа нажатием кнопки «Обновить».


    Рисунок 2. Выбор источника данных

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


    Рисунок 3. Предварительный просмотр результатов запроса

    После нажатия кнопки «Изменить» автоматически открывается окно «Редактор запросов», в котором можно и нужно выполнить очистку и подготовку данных.


    Рисунок 4. Окно редактора запросов

    Как видно на снимке экрана, Power BI Desktop подгрузил файлы из папки и основную метаинформацию. Удалим все столбцы, кроме «Content», «Name» и «Extension». Поскольку имя файла показывает, к какому году относится соответствующий отчёт, мы его для этого и используем.
    Если нажать на любую строку в столбце «Content», Power BI Desktop откроет содержимое соответствующей книги. Обратите внимание, что в разделе «Параметры запроса» все выполненные шаги записываются и их можно изменять или удалять. Если же открыть окно «Расширенный редактор», то откроется окно, в котором будет виден программный код для всех выполненных действий. Да в Power BI Desktop есть свой язык программирования “M” и это очень круто.


    Рисунок 5. Расширенный редактор запросов

    Поскольку для формирование отчета требуется содержимое всех файлов Excel в папке, а не только одного, то я удалю два последних шага и использую некоторые функции языка “M” для парсинга содержимого книг Excel из папки.
    Перед дальнейшей обработкой данных также нужно учесть то, что в папку могут быть подгружены не только файлы Excel. Поэтому нужно применить фильтр к столбцу «Extension», что позволит исключить ненужные типы файлов.


    Рисунок 6. Применение фильтра

    Теперь нужно выполнить «извлечение» содержимого книг Excel. Для этого я добавлю новый столбец, используя функцию Excel.Workbook, которая позволяет «извлекать» содержимое книг Excel. Новый столбец содержит в себе значения типа «Таблица», что позволяет «развернуть» его содержимое на несколько других столбцов. При «развертывании» можно выбирать, какие столбцы будут отображены. В данном случае смысловую нагрузку несут столбцы «Data» и «Item»


    Рисунок 7. Добавление пользовательского столбца

    Столбец «Data» содержит в себе данные листов Excel, а «Name» и «Item» я в дальнейшем использую для временных отметок.
    Поскольку столбец «Name» содержит данные вида yyyy.xlsx, где yyyy это год отчета, то выполним простую операцию разделения данных в столбце. Разделение можно выполнять как по количеству символов, так и по разделителю. В данному случае столбец нужно делить по разделителю.


    Рисунок 8. Разделение столбца


    После разделения столбца нужно будет его переименовать.


    Рисунок 9. Окно настройки параметров разделения столбца


    Рисунок 10. Подготовленный к «развертыванию» запрос

    Затем я «развертываю» столбец Data и вижу содержимое всех файлов и листов Excel, при этом в виде, который непригоден для построения итоговой отчетности. Но я могу использовать возможности Power BI Desktop для очистки данных.


    Рисунок 11. Запрос после «развертывания» содержимого файлов

    1. Использую верхние строки как заголовки и затем переименую столбцы. Удалю столбцы «Фактическое отклонение» и «Отклонение в %». В дальнейшем их пересчитаем.
    2. Удалю строки, которые содержат пустые значения и значение «Показатель» в столбце «Показатель», применив фильтрацию. Таким же образом удалю строки, в которых содержатся суммарные значения, например «Итого ЧОД», «Итого» и т.д.


    Рисунок 12. Меню фильтрации данных

    3. Используя функцию «Замена значений» выполню замену синонимов, например «Доход» и «Доходы».


    Рисунок 13. Замена значений

    4. Еще немного изучив содержимое столбца «Показатель» обнаруживаю, что все доходы у меня относятся к показателю «Доход» или «Доходы». Всё остальное относится к расходам, что сильно облегчает задачу. Для удобства дальнейшей обработки и фильтрации создам столбец «Категория», который будет содержать значение «Доход», если в столбце «Показатель» присутствует слово «Доход», а во всех остальных случаях примет значение «Расход».


    Рисунок 14. Добавление столбца «Категория»

    5. Дальше, мне нужно указать, что тип значений в столбцах «План» и «Факт» - десятичное число. Но перед этим мне нужно удалить из содержимого этих столбцов пробелы.
    6. После выполнения операции проверяю столбцы на наличие ошибок и отрицательных значений. Поскольку в нашем случае наличие отрицательного значения означает ошибку ввода, то используя функцию преобразования значений выделяю абсолютное значение в столбцах «План» и «Факт». На этом базовая очистка данных закончена.
    7. Для того, чтобы отображать показатели с привязкой по времени требуется указать дату для каждой записи. В таблице содержится месяц в текстовом виде и год. Для удобства примем, что данные отображаются на конец каждого месяца. Здесь нас подстерегает проблема – язык «М» не позволяет на текущий момент конвертировать названия месяцев в даты. Поэтому потребуется сделать несколько промежуточных шагов.
    8. Создадим новый запрос, который будет содержать названия месяцев и их номера. Для этого создаем пустой запрос, открываем расширенный редактор и вставляем следующий код:
    let
    Source = {"январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Added Index" = Table.AddIndexColumn(#"Converted to Table", "Index", 0, 1),
    #"Added to Column" = Table.TransformColumns(#"Added Index", {{"Index", each List.Sum({_, 1})}}),
    #"Renamed Columns" = Table.RenameColumns(#"Added to Column",{{"Column1", "Месяц"}})
    in
    #"Renamed Columns"


    Рисунок 15. Добавление пустого запроса

    9. Перехожу в запрос «План-Факт» и объединяю запросы, выбрав нужный тип объединения.


    Рисунок 16. Объединение запросов

    10. Данные из запроса «Месяцы» добавились как новый столбец. Раскрываю его и теперь у нас есть все данные для формирования даты. Создаю новый столбец с названием «Дата», используя формулу: =Date.EndOfMonth(#date([Год],,1)) Столбец добавлен и он содержит последнее число каждого месяца. Для того, чтобы Power BI Desktop мог группировать даты по месяцам и годам, нужно будет явно задать тип «Date»


    Рисунок 17. Добавление столбца «Дата»

    11. Удалим столбцы Index, Год и Месяц. Они нам больше не нужны. Затем нужно нажать на кнопку «Закрыть и загрузить», чтобы перейти к моделированию и визуализации данных.

    На этом базовая часть обработки данных закончена и можно перейти к визуализации. Возможности визуализации данных в Power BI Desktop рассмотрим в

    Потребность в аналитике больших объемов данных, с целью аудита, выявления проблем и генерации новых знаний, высока в любой связанной с ИТ области.

    Направление информационной безопасности не исключение. Для сбора и корреляции разнокачественных источников данных принято использовать системы класса SIEM (Security information and event management). При этом для оперативного решения задач, встающих перед службой информационной безопасности, хорошо подходят и системы бизнес аналитики (Business Intelligence).

    Power Pivot / Power View

    Надстройки позволяют обрабатывать и визуализировать большие объемы данных из нескольких источников. В общих чертах работа с надстройками сводится к следующим этапам:

    1. Исходя из задачи определить источники информации
    2. Загрузить данные в Power Pivot
    3. Провести дополнительную обработку данных и связать таблицы между собой (создать модель данных)
    4. Вывести на PowerView интересующие графики и отчеты

    Пример: Аудит web сервиса

    В компании есть web сервис, с помощью которого внешние пользователи регистрируются на прием и подают заявления. Количество ресурсов (время приема) ограниченно, кто не успел - ждет следующей недели, значит - возможны злоупотребления. Межсетевые экраны фиксируют атаки на сервис, больше всего в момент открытия регистрации на прием.

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

    Исходные данные: логи web сервера, БД web приложения, БД web aplication firewall

    Объединяя исходные данные на одном листе PowerView получаем удобный инструмент аналитики. Ответы на перечисленные вопросы становятся буквально "видны". Кроме того, становятся доступны новые знания, например были выявлены взаимосвязи пользователей между собой (по почте, IP адресам) что позволило лучше понять происходящие процессы и пресечь злоупотребления.

    Power BI

    С 2016 у Microsoft появился отдельный продукт, позиционирующийся как сервис бизнес аналитики. Power BI базируется на тех же компонентах и логике что и Power Pivot, но является отдельным приложением, а не надстройкой к Excel. Возможностей по аналитике значительно больше, есть дополнительные плагины, в том числе для визуализации связей . Так же доступен хороший учебный курс .

    Пример: Аудит подключений пользователей

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


    Исходные данные: Windows event logs с серверов, каталоги Active Directory, таблицы Microsoft security events description.

    Помимо общей статистики, о том какие пользователи и организации работают больше всего или в какое время на сервера идет наибольшая нагрузка по результатам аудита были выявлены такие инциденты:

    1. Использование учетных записей пользователей с нескольких узлов, в том числе одновременно, что означало компрометацию учетной записи;
    2. Активности в нерабочее время, когда пользователь не мог быть на своем рабочем месте;
    3. Брутфорс пароля. На сервере фиксировались события неправильного ввода пароля пользователем, но блокировки учетной записи не происходило, т.к. между попытками ввода пароля проходило достаточно много времени чтобы сбрасывался счетчик неудачных попыток авторизации. Учитывая, что в день таких событий по одному пользователю было более 30 предположение о том, что это человеческий фактор, было исключено.

    Резюме

    Если Power Pivot стал для меня скорее вынужденным инструментом для решения конкретных задач то Power BI это настоящее открытие, дающее весьма широкие возможности для оперативного анализа всего и вся. Недостатком Power BI является то, что он не SIEM и не умеет осуществлять сложных корреляций и слать оповещения. Но как инструмент для получения новых знаний и проведения периодических аудитов Power BI подходит отлично.

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

    А какие инструменты для анализа данных используете вы? Какие нестандартные источники данных при визуальном анализе дают полезные службе ИБ результаты?

    Продолжаем нашу эпопею с мобильным миром. И сегодня я хочу поговорить о вот таком вот продукте Microsoft Power BI .

    Что есть такое Microsoft Power BI ?

    А это служба бизнес-аналитики для совместного доступа, управления и использования запросов данных и книг Excel, которые содержат запросы данных, модели данных и отчеты.

    Естественно, что раз есть место, где мы отчеты пишем, значит, должно быть место, где мы их смотрим. И таких мест несколько:

    • 1. Сама среда, где мы их пишем. Ну это логично, но полезно только нам;
    • 2. Веб-интерфейс;
    • 3. iOS устройства;
    • 4. Windows устройства, могут установить в стиле метро. Те, у кого Win 8/8.1. Смотрится реально футуристично, особенно на больших мониторах.
    • 5. Android устройства. « Android app is on the way ». Ждем.

    Логика работы

    Давайте сначала объясню логику работы, чтобы потом было понятней - почему делаем так, а не иначе. Всю разработку можно разбить на несколько этапов:

    • 1. Регистрацию аккаунта. можно посмотреть цены, но есть и бесплатная версия, так что тестировать можно. Конечно, для запада цена в 10$ с пользователя в месяц - это мелочь, а вот для наших стран - это-таки немало. Хотя опять же, даже если взять фирму в 500 человек, скольким сотрудникам понадобится такой функционал?
    • При регистрации учтите один момент - она выполняется слева внизу, где указываете почту. Если зайти в Sign in - там только авторизация.
    • 2. Необходимо запустить конфигуратор Power BI Designer, тот, который вы скачали ранее.
    • 3. В конфигураторе мы делаем все, что мы хотим, формируем внешний вид и т.д., потом сохраняем файл проекта.
    • 4. Теперь файл проекта нам надо подтянуть в нашу учетку, чтобы изменения сохранились там.
    • 5. Авторизуясь под своим аккаунтом на мобильном устройстве или в клиенте для Windows - подхватываются ваши настройки.
    • 6. Получить удовольствие.

    Работа с конфигуратором

    Теперь давайте разберемся с тем, как все-таки строить отчеты и как получать данные?

    Получение данных

    При первом открытии вас встретит помощник. Закрываем его. И удаляем все лишнее. У нас должно остаться только вот такое вот окошко:

    Пока не будем вдаваться в подробности о назначении всех кнопочек. А попробуем ответить на вопрос - как нам получить данные?

    В погоне за ответом мы должны нажать кнопку «Get Data », - та, что слева вверху, нас встретит вот такой диалог:

    Как видите - список потенциальных источников просто огромен. Однако, мы возьмем вариант получения данных при помощи OData , видь он есть у нас в 1С, а мы его обычно не используем. Давайте вот его и применим. Более детально про него можно почитать тут:

    • 1. ИТС

    Первое, что нам надо сделать - это, конечно же, найти донора, т.е. базу, из которой мы будем все эти данные тащить.

    Есть несколько вариантов:

    • 1. Поднять свой веб-сервер, и данные тащить оттуда. Но такой вариант неудобен для обучения, так как я свой сервер не дам в публичный доступ.
    • 2. Пойти на сайт 1С , где есть демо-конфигурации, и попытать счастья там, в надежде, что хоть в одной из них открыт OData . Убедиться, что это не так, и закрыть сайт.
    • 3. Пойти на англоязычный сайт 1С , присмотреть там какую-то базу, у которой открыт доступ через OData . И найти такую.

    Итак, останавливаемся на УНФ, проверить, что OData доступен, можно вот таким путем:

    Если вы там видите список метаданных, то все ок.

    Теперь давайте проверим справочник, например, справочник товаров:

    Как видите, мы к первому адресу просто прибавили имя справочника и обозначение, что это справочник, в русскоязычных конфигураторах он бы выглядел вот так:

    Когда мы перейдем по этому URL , мы должны увидеть xml , который будет описывать каждый элемент справочника, однако, все зависит от браузера, FireFox выводит эти данные в виде RSS ленты. Но сути это не меняет.

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

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

    Итак, первым делом - нам надо понять, где хранятся продажи. Они точно хранятся в регистре накоплений, а этот регистр обозначается в OData , как AccumulationRegister. Вот их и ищем. Нам в этом помогут элементарные знания инглиша. А вот и наш регистр AccumulationRegister_Sales. Проверяем:

    Если видим xml , то все ок.

    Теперь идем в наш BI конфигуратор, выбираем в нем строку с OData , ту, что я выделил желтым на скрине выше и жмем Connect , далее заполняем все, что надо:

    Теперь нас встретит следующее окно:

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

    Указываем логин без пароля и жмем connect . Должна начаться загрузка данных. После нее - у вас появятся слева поля:

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

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

    Слева вверху - страницы с отчетами, т.е. на одной странице (а-ля макет 1С) может быть много разных данных.

    Теперь надо разобраться, почему это у нас всего два поля, видь измерений, реквизитов, ресурсов у нас явно больше. Давайте перейдем в запросы:

    Это окно работы с запросами. Слева вверху будут доступны все запросы, которые вы добавите.

    По центру сверху - строка подключения. По сути - это текст запроса, тут указываются и отборы, и пути и т.д.

    Справа у нас идет название запроса и последовательность шагов.

    Вот на последовательности мы немного поговорим. Суть ее сводится к тому, что мы описываем в ней пошагово правила, которые хотим применить к нашим данным. Т.е. если вы хотите удалить колонку, то надо указать в каком времени - это будет шаг номер 2, или номер 10. Дальше станет понятней.

    Итак, у нас есть всего три колонки. С чем это связано? Давайте внимательно посмотрим на xml , который нам отдает 1С и найдем то место, где начинается список, т.е. в случае OData нам возвращается не построчное представление регистра, как мы привыкли, а выводится сначала информация о регистраторе, а потом уже вложены в него его движения.

    Ну а нас интересуют именно эти строки. Давайте теперь выделим любой элемент в средней колонке и внизу увидим вот такое сообщение:

    А должны были бы увидеть зачения, но не увидим. Для того чтобы увидеть - нам надо развернуть массив в строки. Для этого нажимаем кнопочку, которая справа вверху в заголовке средней колонки, я ее на скрине выделил желтым, и запомните - у нас сейчас 18 строк, нажимаем:

    Теперь у нас 50 строк. Т.е. мы развернули все построчно, а ранее было сгруппировано по регистратору, если говорить словами 1С.

    Но нас это не устраивает, нам мало колонок, я думаю, вы догадались, что надо сделать - жмем еще раз на ту кнопку в заголовке:

    А вот теперь мы выбираем - что мы хотим добавить, т.е. по аналогии с запросом в 1С - выбираем поля, которыми мы потом хотим оперировать:

    И жмем ОК:

    Обратите внимание - у нас справа заполнился список действий, т.е. в нашем случае действия такие:

    • 1. Получить данные;
    • 2. Развернуть данные;
    • 3. Развернуть данные.

    И сразу обратите внимание на формулу вверху.

    Теперь нам надо решить проблему, потому что нас совсем не устраивает наименование товара в виде UID . Я сомневаюсь, что такой вид будет информативен.

    Значит, нам надо теперь вывести информацию по товару, давайте мы это сделаем объединением таблиц товара и продаж.

    Для этого - добавляем новый запрос, но уже к справочнику товаров http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Nomenclature , точно так же, как и продаж, и переименуем эти таблицы, чтобы не путаться:

    Обратите внимание - я сразу применил несколько шагов к данным о товаре, а именно:

    • 1. Получил данные:
    • = OData.Feed("http://apps.1c-dn.com/sb/odata/standard.odata/Catalog_Nomenclature")
    • 2. Удалил лишние колонки:
    • = Table.RemoveColumns(Source ,{"SKU", "ChangeDate", "WriteOffMethod", "DescriptionFull", "BusinessActivity_Key", "Vendor_Key", "Cell_Key", "Comment", "OrderCompletionTerm", "TimeNorm", "FixedCost", "CountryOfOrigin_Key", "PictureFile_Key", "Parent_Key", "DataVersion"})
    • 3. Отфильтровал записи, убрал все группы:
    • = Table.SelectRows(#"Removed Columns" , each ( = false))

    Выше - это запросы, которые можно вставить в верхнюю строку и таким образом не делать руками это все. Обратите внимание на структуру этого всего - на первом шаге мы просто получаем данные. На втором шаге - мы указываем, что мы делаем с данными, которые мы получили в первом шаге. На третьем - мы указываем опять имя шага, к которому мы применим правило для фильтрации.

    Т.е. мы всегда должны указывать, к какому шагу мы применяем то или иное правило.

    • 1. Просто взять и сделать объединения по типу связей в 1С, когда мы объединяем две таблицы.
    • 2. Добавить в одну из таблиц нужные нам данные из другой.

    Мы их разберем оба. Итак. Сначала мы просто делаем объединение. Для этого идем на вкладку Отчеты (слева внизу) и нажимаем кнопку Manage :

    И настраиваем связи:

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

    А теперь идем уже строить отчеты:

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

    Теперь давайте попробуем еще добавить сюда номенклатурные группы товара. По идее, надо было бы добавить еще один запрос с номенклатурными группами и связать их с полем NomenclatureGroup_Key в запросе номенклатур. Однако нам это не понадобится. Идем в самый конец, смотрим на последние колонки в запросе Номенклатура.

    И вас встретит ошибка, и это, скорее всего, баг платформы, на которой опубликована эта база, так как на последних платформах - все ок. Поэтому тестируйте у себя. Но суть в том, что тут появятся названия номенклатурных групп.

    Перенос данных на свою учетку

    После всего этого - сохраняем полученный нами отчет. Он, кстати, прикреплен к статье. Так что можете его скачать из прикрепленных файлов к этой статье.

    Нажимаем Get Data , выбираем пункт Power BI Designer File и жмем Connect , далее выбираем файл и еще раз жмем Connect .

    А теперь давайте зайдем в приложение iOS и посмотрим, как оно выглядит там:

    Вот и все.

    Итог

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

    Если хорошо знать OData , то сделать такого рода отчет можно за несколько минут. И кроме этого - для простоты работы и меньшей нагрузки на БД можно просто создать отдельный регистр сведений, куда скидывать сразу всю нужную информацию, а этим решением забирать ее и выводить.

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

    Все, что надо для того, чтобы приступить к работе - установить веб-сервер, обновить платформу до 8.3.6 (может и с 8.3.5 будет работать, я не тестил, главное, чтобы там не было багов в платформе), вытянуть данные и скомпоновать их.

    Т.е. для программиста это займет от силы несколько часов. А результат - отличный.

    P.S. Не забудьте про безопасность данных!

    В социальных сетях активно обсуждается новый технический документ Microsoft, опубликованный на сайте TechNet, по теме гибридной бизнес-аналитики с Power BI (http://social.technet.microsoft.com/wiki/contents/articles/13146.white-paper-gallery-for-sql-server.aspx#UsingPowerBIinaHybridEnvironment). В документе представлен превосходный технический обзор, который стоит прочитать всем, кто стремится изучить Power BI и найти оптимальные способы реализации приложения при наличии бизнес-аналитики, размещенной локально или в инфраструктуре как услуге (IaaS) Azure. Рассматриваются следующие темы:

    • архитектурные варианты гибридной BI;
    • шлюз управления данных;
    • рекомендуемые подходы для:

    Интеграции мер безопасности;

    Управления удостоверениями;

    Сетевых подключений;

    Помимо малых предприятий, которым доступны лишь размещенные в «облаке» решения, сегодня многие компании располагают сочетанием «облачных» и локальных источников данных. Только представьте, как много групп использует Salesforce.com, Google Analytics, Constant Contact и другие «облачные» приложения для подразделений. Как правило, эти группы используют API-интерфейсы или коннекторы, чтобы перемещать «облачные» данные в локальное хранилище данных для создания отчетов. В Microsoft Azure и Power BI эта концепция получила дальнейшее развитие.

    В последние годы растет популярность концепции виртуализации данных. Чаще всего приходится обеспечивать прозрачное взаимодействие с Microsoft BI в Office 365 и существующих локальных порталах SharePoint или источниках данных.

    Понимание того, как следует строить гибридную бизнес-аналитику, становится важным условием для овладения профессией. Однако до появления нового технического документа находить ответы и рекомендации было нелегко.

    Безопасность в гибридном мире

    После краткого знакомства с новым документом я заметил, что большое внимание уделяется сетевым подключениям и управлению удостоверениями. Освоить управление удостоверениями и безопасность Microsoft BI всегда было непросто, а в мире гибридной бизнес-аналитики эти вопросы даже более трудны.

    Нельзя не признать, что установка и настройка BI-фермы SharePoint 2013 может быть сложнейшей задачей даже для талантливых администраторов. Обычно я советую тем, кто впервые собирается выполнить установку BI-фермы SharePoint 2013, сначала прочесть технический документ (technet.microsoft.com/en-us/library/dn186184.aspx) Кея Ульриха, чтобы лучше понять концепции безопасности SharePoint, безопасности Microsoft BI и делегирования Kerberos.

    Управление безопасностью пользователей в Office 365 имеет много общего с управлением локальной безопасностью SharePoint. Существуют варианты федерации Active Directory (AD) с Office 365 и использования единого входа (SSO). Есть и другие альтернативы многофакторной проверке подлинности в случаях, когда требуются дополнительные уровни безопасности.

    В сценариях бизнес-аналитики с размещением служб Analysis Services или Reporting Services на виртуальных машинах Microsoft, возможно, потребуется также настроить Azure AD, AD Federation Services (ADFS) и средства Azure Active Directory Sync для синхронизации паролей, пользователей и групп между локальным AD и Azure AD, поддерживающим экземпляр Office 365. В новом техническом документе Hybrid Business Intelligence with Power BI (social.technet.microsoft.com/wiki/contents/articles/13146.white-paper-gallery-for-sql-server.aspx#UsingPowerBIinaHybridEnvironment) подробно рассказывается об этих концепциях и приводятся ссылки на многие полезные ресурсы.

    Шлюз управления данными для Power BI

    Сегодня шлюз управления данными, похоже, является ключом к гибридной бизнес-аналитике с Office 365 Power BI. Шлюз управления данными - это клиентское приложение-агент, установленный на локальном сервере. Он копирует данные из внутренних источников данных в «облачный» формат источника данных Power BI.

    Источники данных Power BI Office 365 - своего рода «облачный» остров данных, но со временем он будет развиваться. Функциональность Power BI Data Refresh, в сущности, обеспечивают рабочие книги Excel, которые развернуты на сайте Power BI и могут обновляться по единому расписанию из следующих источников данных:

    • локальный SQL Server (2005 и более новые версии);
    • локальный Oracle (10g и более новые версии);
    • база данных SQL Azure;
    • канал OData;
    • виртуальная машина Azure, работающая с SQL Server.

    Теперь, если имеется подключение VPN и виртуальная сеть Azure, открывается гораздо больше потенциальных источников данных для Power BI. В этом случае доступ к источникам данных через соединения Power BI и выполняемые по расписанию обновления аналогичен соответствующим действиям с локальным инструментом Power Pivot. Единственное различие - похоже, по-прежнему требуется шлюз управления данными для доставки этих данных в Power BI. В разделе Power BI Data Refresh описываемого технического документа перечисляются поддерживаемые источники данных, расписания обновления данных и местоположения данных.

    Отправляем отзыв в Microsoft

    Мы только начинаем знакомиться с применением Microsoft BI и Power BI в «облачной» и гибридной среде. Пока лишь немногие группы используют Power BI и гибридную бизнес-аналитику. Я наблюдаю многочисленные изменения, которые непрерывно вносятся в Azure, и одновременно полное непонимание, особенно в вопросах «облачной» бизнес-аналитики Azure и Power BI с локальными источниками данных.

    Если у вас есть технические вопросы к специалистам Microsoft, можно направить отзыв группам, которые проектируют эти ресурсы. Не надейтесь, что кто-то уже сформулировал эти требования. Если никто не задает вопросов и не жалуется, инженеры в Редмонде могут полностью упустить проблему из вида.

    Алексей Селезнёв Head of Analytics Dept. , Netpeak™

    Для пользователей Microsoft Windows 10 есть отдельная версия Power BI Desktop, которую вы можете найти, перейдя по этой ссылке.

    Откуда можно загружать данные?

    Power BI имеет множество встроенных коннекторов к различным сервисам и базам данных, с помощь которых вы в считанные минуты можете загрузить в программу нужный набор данных из различных источников, связать их между собой и построить консолидированные отчеты и диаграммы. На момент написания статьи все доступные коннекторы распределены на четыре группы: 1. Группа «Файл»:

    Как видите, в Power BI можно импортировать данные из наиболее известных баз данных и сервисов, используя различные форматы файлов. После загрузки информации из доступных источников в Power BI, перед вами открываются большие возможности по очистке и преобразованию данных, в связи с тем, что в платформе присутствует достаточно мощный ETL функционал. Загружаемые таблицы можно редактировать, а на основе их столбцов создавать расчетные столбцы и меры - таким образом вы можете преобразовать массивы информации в наборы данных со структурой, необходимой для построения визуализации.

    Какие визуализации можно построить?

    Сформировав набор данных, загруженных из различных источников, вам станут доступны множество встроенных элементов визуализации:

    • линейчатая диаграмма с накопление;
    • гистограмма с накоплением;
    • линейчатая диаграмма с группировкой;
    • гистограмма с группировкой;
    • нормированная линейчатая диаграмма;
    • нормированная гистограмма;
    • график;
    • диаграмма с областями;
    • диаграмма с областями с накоплением;
    • линейная гистограмма и гистограмма с накоплением;
    • линейная гистограмма и гистограмма с группировкой;
    • каскадная диаграмма;
    • точечная диаграмма;
    • круговая диаграмма;
    • диаграмма дерева;
    • карта;
    • таблица;
    • матрица;
    • заполненная карта;
    • воронка;
    • датчик;
    • многострочная карточка;
    • карточка;
    • ключевой показатель эффективности;
    • срез;
    • кольцевой график;
    • визуальный элемент r-script (на данный момент включается в параметрах программы).

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

    Как загрузить данные в Power BI Desktop?

    1. Установите связь с Google Analytics

    1.1. Приступим непосредственно к загрузке информации из представления Google Analytics. На вкладке «Главная» в группе «Внешние данные» жмем на кнопку «Получить данные».

    После чего в диалоговом окне «Получить данные» в группе «Другое» выбираем сервис «Google Analytics» и жмем «Подключить».

    1.3. Последний шаг - предоставить разрешение на просмотр данных в нужном представлении Google Analytics.

    1.4. После клика по кнопке «Разрешить» мы автоматически возвращаемся в окно «Учетная запись Google», где будет оповещение, что вы вошли в систему. Жмем на кнопку «Подключение».

    В открывшимся окне «Навигатор» вы увидите список всех доступных аккаунтов, ресурсов и представлений Google Analytics.

    В каждом представлении присутствует одинаковый набор параметров и показателей, распределенных на 28 групп:

    • Ad Exchange - информация об эффективности рекламы в Ad Exchange;
    • AdSense - информация об эффективности показов рекламы AdSense;
    • AdWords - информация об эффективности рекламных кампаний в AdWords;
    • App traking - информация о взаимодействии с мобильным приложением;
    • Audience - демографическая информация о посетителях сайта;
    • Channel grouping - группы каналов трафика;
    • Content Experiments - информация о проводимых экспериментах;
    • Contetn Grouping - классификация контента сайта по группам;
    • Custom variables or colunms - пользовательские параметры и показатели;
    • DoubleClick Campaign Manager - информация о эффективности рекламы в DoubleClick;
    • Ecommerce - данные электронной торговли;
    • Event tracking - информация о событиях;
    • Exceptions - исключения;
    • Geo network - геоданные посетителей;
    • Goal conversion - данные о достижении целей;
    • Internal Search - информация об использовании поиска на сайте;
    • Page Tracking - информация о страницах, которые просмотрели пользователи;
    • Platform or device - операционные системы и устройства пользователей;
    • Related product - связанные сервисы;
    • Session - информация о сеансах;
    • Site speed - скорость загрузки страниц;
    • Social activities - показатели активности в социальных сетях;
    • Social interaction - показатели взаимодействия трафика из социальных сетей;
    • System - информация о системных показателях посетителей;
    • Time - информация о времени совершения событий;
    • Traffic source - информация об источниках трафика;
    • User - информация о пользователях;
    • User timings - длительность сеанса.

    В качестве примера давайте выберем следующие параметры: Channel grouping -> Default channel grouping; User -> User Type; Time -> Month of year. В качестве показателей возьмем: Session -> Sessions; Session -> Bounces; Session -> Session duration. Хочу заметить, что в Power BI, как и при любом API запросе в Google Analytics, существует ограничение на максимальное количество запрашиваемых параметров (не более семи) и показателей (не более десяти).

    1.5. Для того, чтобы загрузить выбранные данные в модель данных Power BI, жмем кнопку «Загрузить», которая располагается в нижнем правом углу окна «Навигатор».

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

    2. Как загрузить данные из MySQL?

    Чтобы показать функциональность Power BI, я сгенерировал и загрузил в MySQL данные о продажах. Следуя описанным ниже инструкциям, можно подключать любые доступные базы данных и после соединять всю загруженную информацию в одну таблицу или график.

    2.1. Для загрузки данных о продажах из MySQL, как в описанном примере, необходимо воспользоваться командой «Получить данные», которая находится на вкладке «Главная».

    2.2. В диалоговом окне «Получить данные» в группе «База данных» выбираем пункт «База данных MySQL».

    2.3. После клика по кнопке «Подключить» в окне «База данных MySQL» вводим IP сервера, имя базы данных и текст SQL запроса. Если вы не знакомы с SQL и хотите просто выбрать некоторые таблицы из базы данных целиком, то вводить SQL запрос не следует, на следующем шаге у вас будет возможность выбора таблицы. Поскольку я загрузил тестовые данные с локального ПК, то в поле «Сервер» вместо IP я укажу «localhost».

    2.5. На этом этапе подключение к MySQL серверу установлено. В случае, если вы ранее прописали SQL скрипт, то результат его работы будет загружен в модель данных. Поскольку мы не указывали запрос, в левой части диалогового окна «Навигатор» появится список доступных таблиц из указанной ранее базы данных. В моем случае доступна всего одна одна таблица «sales», все остальные - системные, в связи с чем ставим галочку напротив названия таблицы продаж и жмем «Загрузить».

    Теперь в модель данных Power BI загружены данные из двух источников: Google Analytics и MySQL.

    3. Как упорядочить данные?

    После того, как все необходимые данные загружены, необходимо привести их к нужному виду. Наиболее удобный способ редактирования данных - перейти в режим «Данные», с помощью одноименной команды, расположенной на левой панели рабочего окна Power BI.

    В режиме данных вы можете изменить тип данных, хранящихся в любом столбце, создавать новые столбцы и меры, используя возможности языка формул DAX, заменять значения хранящиеся в столбцах - в общем делать с данными все, что считаете нужным. В нашем случае следует изменить формат вывода поля «Sale» на денежный. В меню «Поля», которое в режиме «Данных» находится в правой части окна, выбираем нужный набор данных (в нашем случае «Данные из MySQL»), после чего кликаем на название столбца «Sales» и меняем формат данных, перейдя на вкладке «Моделирование» в группу «Форматирование».

    4. Как установить связи между таблицами

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

    • многие к одному;
    • один к одному;
    • один ко многим.

    Единственный подходящий для загруженных таблиц тип связи - многие ко многим. Он создается через промежуточные таблицы (справочники) и средствами создания двух связей типа многие к одному и один ко многим. В нашем наборе данных существует три параметра, по которым необходимо настроить связи между таблицами «Default Channel Group», «YearMonth», «UserType». Соответственно необходимо создать три одноименных справочника, которые будут содержать список всех уникальных элементов каждой из перечисленных категорий. В качестве примера мы загрузим список уникальных элементов по каждому полю из CSV файлов.

    • channelGroup;
    • yearMonth;
    • userType.

    4.1. Процесс загрузки CSV файлов в Power BI так же прост, как и описанные раннее подключения к Google Analytics и MySQL: жмем кнопку «Получить данные», в группе «Файл» выбираем «CSV» и по очереди загружаем в модель данных три скачанных CSV файла.

    4.2. При загрузке таблиц «channelGroup» и «userType» необходимо указать, что первая строка является заголовком столбца. Для этого перейдите в режим редактирования запроса, на вкладке «Преобразование» в выпадающем меню «Таблица» используйте команду «Использовать первую строку в качестве заголовка»:

    Если на этом этапе вы все сделали правильно, модель данных будет состоять из пяти таблиц. Чтобы в этом убедиться, можно посмотреть в область полей либо перейти в режим визуального интерфейса просмотра модели данных (для этого кликните по иконке с изображением связей между таблицами на левой панели Power BI).

    Power BI самостоятельно определил некоторые связи, поэтому модель данных выглядит следующим образом.

    4.3. Для дальнейшего создания всех связей нам необходимо изменить тип текущих связей на однонаправленные, в противном случае связи, которые мы планируем создать, будут неоднозначны и при их определении Power BI выдаст ошибку. Чтобы изменить тип связей необходимо дважды кликнуть по связи левой кнопкой мыши и в диалоговом окне «Изменение связи» поменять направление кроссфильтрации на однонаправленную.

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

    4.4. В Power BI существует два способа определения связей между таблицами: в визуальном режиме и с помощью диалогового окна «Управление связями». Чтобы создать связь в режиме визуализации модели данных, нужно перетащить с помощью мыши поле из одной таблицы в ту, с которой хотим создать связь. Давайте таким образом активируем связь по полю «Default channel group» в таблице «Данные из GA» с полем «Channel» в таблице «channel».

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

    4.5. Оставшиеся связи мы будем создавать с помощью диалогового окна «Управление связями», для этого кликните на кнопку «Управление связями» на вкладке «Главная».

    Диалоговое окно «Управление связями» содержит все созданные ранее связи, для создания новых связей следует нажать на кнопку «Создать».

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

    4.6. Для создания связи между таблицей «данные из GA» и «yearMonth» необходимо в окне создания связи установить следующие параметры.

    Таким же образом нам надо связать таблицу «данные из MySQL» и «yearMonth».

    Модель данных теперь выглядит следующим образом.

    Как видите, таблицы «Данные из GA» и «Данные из MySQL» теперь связаны между собой через справочники и имеют друг к другу кратность связи многие ко многим.

    5. Как построить визуализацию?

    5.1. Чтобы создать визуализацию, вернемся в режим «Отчет», воспользовавшись одноименной кнопкой в меню, расположенном в левой части окна Power BI.

    5.2.1. В качестве элемента визуализации будем использовать вид «Линейная гистограмма и гистограмма с накоплением».

    5.2.2. Перетягиваем поле «month» из таблицы «yearMonth» в область «Общая ось».

    5.2.3 Перетягиваем поле «Session» из таблицы «Данные из GA» в область «Значения столбцов».

    5.2.4. Перетягиваем поле «sales» из таблицы «Данные из MySQL» в область «Значения строк».

    В результате этих манипуляций в области отчетов будет построена диаграмма следующего вида.

    Как видите, диаграмма сочетает в себе информацию о сеансах и продажах из двух разных источников.

    5.3. Дополнительно можно воспользоваться опциями форматирования объектов визуализации, кликнув по иконке с кисточкой.

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

    6. Как настроить фильтры данных?

    Для более удобной работы с фильтрами данных следует добавить на рабочий лист три среза. 6.1. Перетащите с помощью мыши в пустое место области отчетов следующие поля:


    6.2. После чего по очереди выделите мышкой каждый из этих объектов и переключите в режим «Срез».

    В результате у нас получится лист с возможностью фильтрации данных по типу пользователя, источнику / каналу и месяцу года.

    6.3. Если вам понадобится сменить аккаунт Google, к которому привязаны определенные представления Google Analytics, воспользуйтесь меню «Файл» -> «Параметры и настройки» -> «Настройки источника данных».

    6.4. Поэкспериментируйте с элементами визуализации и выберите наиболее подходящие, (более подробно о правилах выбора диаграммы можно узнать из публикации «Как построить диаграмму и не облажаться»), после чего все диаграммы и таблицы обновляйте нажатием одной кнопки.

    1. Как установить связь Power BI Service с Google Analitycs?

    Чтобы открыть рабочую область, нажмите на кнопку с изображением меню. С помощью кнопки «Получение данных» начинаем процесс подключения к Google Analytics.

    В списке доступных служб находим и выбираем Google Analytics.

    Жмем кнопку «Подключится».

    Для Google Analytics на данный момент существует только один способ проверки подлинности «oAuth», поэтому в диалоговом окне проверки подлинности ничего не изменяем и жмем «Войти».

    1.2. Выбираем нужный нам Google аккаунт.

    Подтверждаем разрешение Power BI Service на просмотр данных Google Analytics.

    1.3. Следующий шаг - выбор аккаунта, ресурса и представления Google Analytics.

    После того, как вы нажмете «Импорт», в рабочей области автоматически будет сформирован набор данных, отчет и информационная панель.

    2. Как работать с отчетами?

    Также вы можете посмотреть все сформированные автоматически отчеты, для этого кликните в основном меню в области отчетов по пункту «Google Analytics».

    2.1. Отчеты сгруппированы по страницам:

    • Site trafic;
    • System usage;
    • Total users;
    • Page performance;
    • Top pages.

    2.1.1. Соответственно страница Site traffic содержит информацию о сеансах и хитах, а также о поведенческих показателях пользователей.

    2.1.2. Страница System usage содержит информацию о геолокации, операционной системе и типе устройства пользователей.

    2.1.3. На странице Total User вы найдете информацию о количестве посетителей.

    2.1.4. На странице Page Performance содержится информация о скорости загрузки страниц.

    2.1.5. Последняя страница Top Pages отображает информацию о количестве уникальных просмотров, а также о количестве входов и выходов с сайта в разрезе страниц.

    2.2 Можно изменить любой элемент отчета либо добавить новую страницу, для этого достаточно кликнуть по кнопке «Изменить отчет».

    В нижней части экрана отобразится кнопка добавления новых страниц в отчет.

    2.3. Как вы могли заметить, в онлайн версии Power BI нет возможности выбора параметров и показателей при загрузке данных из Google Analytics, в связи с чем вы можете работать только со стандартным набором полей, который в свою очередь состоит из пяти таблиц:

    2.3.1. Calculaions :

    • Avg.daily new users - среднедневное количество новых пользователей;
    • Avg. daily new users (weekday) - среднедневное количество пользователей в разрезе дней недели;
    • Avg. daily users - среднедневное количество пользователей;
    • Avg.daily users weekday - среднедневное количество пользователей в разрезе дней недели;
    • Avg. session duration (sec) - средняя длительность сеанса в секундах;
    • Bounces MoM - прирост количества отказов за последние 30 дней;
    • Hits MoM - прирост количества хитов за последние 30 дней;
    • New users MoM - прирост новых пользователей за последние 30 дней;
    • Session MoM - прирост объема сеансов за последние 30 дней.

    2.3.2. Overwiev :

    • Avg. session duration - средняя длительность сеанса;
    • Bounces - количество отказов;
    • Browser - браузер пользователя;
    • Country - страна пользователя;
    • Date - дата сеанса;
    • DayOfMonth - день месяца, когда был совершен сеанс;
    • DayOfWeek - день недели, когда был совершен сеанс;
    • Device category - тип устройства;
    • Hits - количество хитов;
    • MonthName - название месяца;
    • MonthYear - месяц года;
    • Operating system - операционная система пользователя;
    • Page / sessions - среднее количество просмотренных страниц на сеанс;
    • Pageviws - общее количество просмотренных страниц;
    • Sessions - количество сеансов;
    • Year - год.

    2.3.3. Page performance :

    • Date - дата;
    • DayOfMonth - день месяца;
    • DayOfWeek - день недели;
    • DomainLookupTime - время поиска домена;
    • MonthName - название месяца;
    • MonthYear - месяц года;
    • PageLoadTime - время загрузки страницы;
    • RedirectionTime - время редиректа;
    • Year - год.

    2.3.4. Pages :

    • Date - дата;
    • DayOfMonth - день месяца;
    • DayOfWeek - день недели;
    • Entrances - количество заходов;
    • Exits - количество выходов;
    • MonthName - название месяца;
    • MonthYear - месяц года;
    • Page - url страницы;
    • PageTitle - название страницы;
    • Pageviews - количество просмотров страницы;
    • TimeOnPage(sec) - общее время, проведенное на странице в секундах;
    • Unique pageviews - количество уникальных просмотров страниц;
    • Year - год.

    2.3.5. User :

    • Date - дата;
    • DayOfMonth - день месяца;
    • DayOfWeek - день недели;
    • DaysFromToday - количество дней с сегодняшнего дня;
    • MonthName - название месяца;
    • MonthYear - месяц года;
    • New users - количество новых пользователей;
    • Users - количество пользователей;
    • Year - год.

    Эти пять таблиц, загруженные из Google Analytics, не связаны между собой, так как в онлайн версии Power BI у вас нет возможности создавать связи. Но в Power BI Service можно публиковать файлы, разработанные в Power BI Desktop файлов.

    3. Как опубликовать информацию с Power BI Desktop?

    Для этого достаточно быть зарегистрированным пользователем данной службы и нажать кнопку «Опубликовать».

    После чего начинается процесс публикации файла в службе Power BI.

    Если вы все сделали правильно, то получите сообщение, что файл был успешно опубликован, и вы можете запустить автоматический анализ данных. Power BI Service выведет на экран найденные в данных закономерности.

    4. Как создавать информационные панели?

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

    Заключение

    Сегодня я рассказал:

    1. Как загрузить в программу нужный набор данных (я показал как это делать на примере интеграции с Google Analytics или загрузки данных из MySQL).
    2. Как упорядочить данные, чтобы привести их к нужному для визуализации виду.
    3. Как построить отчет, где будут отображаться данные из разных источников.
    4. Как настроить фильтры данных, выбрать подходящие элементы визуализации и опубликовать результат для просмотра в онлайн-версии Power BI.

    Power BI - мощный и многофункциональный инструмент, поэтому достаточно тяжело описать весь его функционал в рамках одной статьи. Ответы на базовые вопросы по работе с Power BI можно узнать из официального мануала, который вы можете найти по этой ссылке. На остальные - с радостью отвечу в комментариях.