Записки охотника

Работа с потоками данных Power BI

Тематические статьи
Рвав-рвав, сегодня я — собака-потокосоздавака!

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

Условия использования

Потоки данных создаются и управляются только в службе Power BI Service, соответственно, для работы с ними, вам необходимо иметь 2 вещи:
  • Зарегистрированный тенант.
  • Наличие лицензии, причем, в зависимости от модели лицензирования, функционал работы с потоками данных отличается.
В материалах данной статьи мы будем использовать функционал самой простой лицензии — Power BI Pro.

Демонстрационный пример

Допустим, у нас есть файл MS Excel, содержащий 2 листа:
  • Лист 1 «Компания 1».
  • Лист 2 «Компания 2».
На каждом листе присутствует некая таблица с данными следующего вида:
Файл MS Excel, лист 1 "Компания 1"
Файл MS Excel, лист 2 "Компания 2"

Задача

Необходимо создать поток данных Power BI (Power BI Dataflow), объединив указанные данные в одну таблицу, для целей дальнейшего использования полученной таблицы в качестве источника данных Power BI.
Для выполнения поставленной задачи нам необходимо реализовать 2 этапа:
  • Собственно, создать поток.
  • Использовать его в качестве источника.

Создание потока данных Power BI

Как уже упоминалось выше, поток данных Power BI (Power BI Dataflow), создается только в службе Power BI Service (облако).
Последовательность действий следующая:
  • Запускаем браузер и открываем сайт портала Power BI.
  • Нажимаем кнопку «Вход» и проходим процедуру авторизации.
  • После входа на портал необходимо выбрать ту рабочую область, в которой у вас будет находиться ваш будущий поток данных, при этом дефолтную рабочую область, имеющуюся у каждого пользователя портала по умолчанию, использовать нельзя:
Рабочая область"Draft_Reports"
Рвав-рвав, вот вам и 1-я особенность работы с потоками данных!
И да, название текущей рабочей области обозначено нашим любимым вендором аж в 3-х местах, так что точно не пропустите :-)
  • Дальше необходимо нажать кнопку «Создать», и выбрать соответствующий пункт в выпадающем списке:
Пункт меню для создания потока данных
  • Затем необходимо выбрать действие, которое будет применено при создании потока данных, в нашем случае это первый вариант, а именно «Определение новых таблиц»:
Действие, выполняемое при создании потока данных
  • Нажать кнопку «Добавить новые таблицы», и немного подождать.
  • В результате предыдущего действия откроется окно выбора источника данных:
Окно выбора источника данных для создаваемого потока данных
В представленном рисунке приведена только часть существующих источников данных, для удобства пользователей есть функционал поиска, а также соответствующие разделы со вкладками.
Поскольку мы рассматриваем один из простых случаев работы с потоками данных, то будем использовать источник «Пустая таблица», и просто скопируем данные из нашего файла Excel, не осуществляя его физическое подключение.
  • После выбора источника данных, в службе Power BI Service будет доступен функционал загрузки и обработки данных, аналогичный, или даже местами превосходящий то, что мы используем в программе Power BI Desktop на уровне Power Query:
Функционал загрузки и обработки данных
  • Затем, для реализации нашего примера, надо произвести ввод или копирование данных, согласно представленному файлу Excel:
Окно ввода данных для таблицы, создаваемой вручную
  • Нажать кнопку «Далее», расположенную в правом нижнем углу (она не представлена на рисунке), при этом, после данного действия, откроется окно трансформации данных, вид которого привычен по работе с программой Power BI Desktop:
Окно трансформации данных
Рвав-рвав, а вот и 2-я особенность работы с потоками данных: в отличии от программы Power BI Desktop, запросы, создаваемые в потоках данных, не работают с не типизированными столбцами, то есть важно следить за тем, чтобы тип данных в столбцах был отличен от «общего».
А ваш любимы собакен вообще предпочитает задавать подобные штуки явным образом, не надеясь на автоматический функционал).
  • Поскольку в потоке данных у нас появился, как минимум, один запрос, а также привычный функционал работы с запросами Power Query, вторую часть нашего набора данных мы можем сформировать уже при помощи кнопки «Введите данные», расположенной на закладке «Главная»:
Кнопка ввода данных
  • После формирования второй части набора данных, а также приведения его в надлежащий вид, мы получим 2 запроса, с именами «Table1» и «Table2»:
Список запросов, содержащих исходные данные
  • Так как нам нужно получить один общий набор данных, по обеим компаниям, далее мы должны объединить указанные запросы при помощи кнопки «Добавить запросы», расположенной на закладке «Главная»:
Кнопка добавления запросов
  • При формировании общего набора данных мы получим предупреждение следующего вида, а также значок молнии на самой иконке запроса:
Формирование итогового запроса
Рвав-рвав, а вот и 3-я особенность работы с потоками данных, о которой, впрочем, я упоминал в начале материала: функционал работы зависит от того, какой тип лицензирования используется пользователем. Лицензия Power BI Pro позволяет иметь «на выход» только один запрос, в отличии, например, от лицензии Power BI Premium.
  • Учитывая тип используемой лицензии, следующим шагом необходимо отключить запросы, содержащие данные по отдельным компаниям, данное действие производится через пункт контекстного меню «Включить загрузку»:
Отключение базовых запросов: "Table_1" и "Table_2"
  • Дальше можно переименовать итоговый запрос, например, в «PivotTable».
Рвав-рвав, вообще, чем больше я работаю, тем больше стараюсь делать так, чтобы стороннему человеку было максимально понятно, а что, собственно, происходит.
Например: форматирую код в запросах Power Query и в DAX, стараюсь со смыслом называть таблицы и меры, оставляю комментарии в коде, внятно называю цепочку преобразований.
Этот долго и муторно, но в больших проектах очень помогает, особенно, в консалтинге.
  • Поскольку, в результате предыдущих действий, у нас остался только один запрос, мы можем смело нажать кнопку кнопку «Сохранить и закрыть», расположенную в правом нижнем углу.
  • После данного действия в появившемся окне потребуется ввести имя создаваемого потока данных:
Окно ввода имени для создаваемого потока данных
  • Последним шагом процесса по созданию потока данных является, собственно, ввод имени, и нажатие кнопки «Сохранить»:
Кнопка сохранения потока данных
  • Сохраненный поток данных можно увидеть в той рабочей области, где вы, собственно, его начали создавать:
Расположение потока данных
  • После создания потока данных его необходимо обновить, процедура обновления потока данных производится аналогично обновлению набора данных, например, по указанной кнопке:
Кнопка обновления потока данных

Использование потока данных Power BI

Основным применением потока данных (по крайней мере, из моей практики), является его использование в качестве источника данных.
Этот процесс выглядит следующим образом:
  • Открываем программу Power BI Desktop.
  • Переходим на уровень загрузки и обработки данных (Power Query).
  • Нажимаем кнопку «Создать источник», используя пункт контекстного меню «Дополнительно»:
Кнопка создания источника данных
  • В открывшемся окне доступных источников данных ввести в строку поиска ключевое слово (например, «Потоки»):
Окно доступных источников данных
С потоками данных работают 2 источника, но как говорится, «во избежание» нам нужен поток, который без всяких пометок.
Рвав-рвав, на самом деле «продвинутый» пес может честно признаться, что между указанными источниками есть некоторые отличия, но это вам будет повод или заглянуть в документацию самостоятельно, или использовать другие способы получения информации :-)
  • Выбрать источник под названием «Потоки данных», и затем нажать кнопку «Подключить», расположенную в нижней части окна.
  • Далее, необходимо авторизоваться в тенанте:
Окно авторизации
  • После прохождения процедуры авторизации станет доступно окно навигатора:
Окно навигатора тенанта
  • В данном окне необходимо отыскать созданный нами поток («DataFlow_PivotTable»:
Окно навигатора, поиск потока данных
  • Далее, для получения данных в Power BI Desktop, необходимо отметить флагом нужную таблицу, и нажать кнопку «ОК», расположенную в нижней части окна:
Окно навигатора, получение данных
  • После нажатия кнопки «ОК» вы получите набор данных, источником которого является поток данных:
Результат подключения потока данных в качестве источника данных
Рвав-рвав, на этом все!
Дальше вы можете либо модифицировать данные, полученные из потока данных, в программе Power BI Desktop, либо сохранить его в оригинальном виде.

Действия с потоком данных Power BI

Кроме использования потока данных в качестве источника данных, с ним можно творить еще множество разных вещей.
Примерный список может выглядеть следующим образом:
  • Обновление потока данных как вручную, так и по расписанию.
  • Экспорт и импорт потока данных (формирование json-файла).
  • Редактирование свойств потока данных (изменение названия, описания и пр.).
  • Модификация, удаление или перенос потока данных.
А еще, перенос запросов в поток данных существенно ускоряет работу отчетов Power BI, особенно в случае наличия «тяжелых» расчетов, отсутствия оптимизации кода, и прочих вещей, над которыми нужно работать отдельно.
Рвав-рвав, в общем, все в ваших лапах!

Ваш Смайл