Как использовать поток данных для быстрого обновления решения Power BI!
Требуется ли много времени для обновления данных в модели Power BI? Стоит ли ждать часами обновления, потому что за сценой происходят сложные преобразования? Из-за длительного времени обновления вам сложно разработать свое решение? В этой статье мы расскажем, как использовать потоки данных Power BI, чтобы помочь сократить время обновления ваших моделей Power BI. Ранее мы объяснили некоторые преимущества потоков данных, и вот еще один в действии, давайте посмотрим, как это может помочь.
Проблема: медленное время обновления
У вас есть файл Power BI, обновление которого занимает много времени. Длительное время обновления может быть связано с тем, что источник данных работает медленно, или набор используемых шагов преобразования является тяжелым и делает процесс подготовки данных длительным процессом. Долгое время обновления может вызвать журнал проблем, например, вы делаете обновление для разработки некоторых изменений, но из-за длительного времени обновления скорость вашей разработки также снижается, и по многим другим причинам. Например, приведенный ниже отчет Power BI обновляется за 5 минут.
Обратите внимание, что 5 минут для обновления не являются длительным временем обновления и мы создали эту модель для обучения здесь. Мы просто показываем, как сделать это быстрее, даже для обновления, которое занимает 5 минут. Вы можете применить тот же метод обновления процессов, который занимает несколько часов.
Теперь вместо длительного ожидания и получения сообщения, подобному приведенному ниже, мы хотим ускорить его:
Решение: подтолкнуть преобразование к потоку данных
Ранее мы рассказывали о потоке данных Power BI и его случаях использования, а также о том, как создать ваш первый поток данных. Если вы новичок в Dataflow, вот очень краткое объяснение:
Поток данных Power BI представляет собой набор преобразований Power Query, выполняемых в службе Power BI, независимо от набора данных Power BI.
Поток данных Power BI может выполнять преобразования Power Query и загружать выходные данные в хранилище озера данных Azure для будущего использования. Именно так это может помочь сократить время обновления набора данных Power BI.
Если обновление вашего набора данных занимает много времени, потому что вы применили набор тяжелых преобразований данных в Power Query, то вместо этого вы можете поместить этот набор тяжелых преобразований в поток данных. Таким образом, преобразования происходят в другом процессе, он загружает выходные данные в хранилище озера данных Azure службы Power BI, а затем вы можете использовать эти выходные данные в качестве входных данных набора данных Power BI. Следующая диаграмма демонстрирует это:
Вместо того, чтобы выполнять тяжелую работу в Power BI, просто перенесите их все в потоки данных, и ваше время обновления данных в наборе данных Power BI будет очень быстрым! Тем не менее, вам все еще нужно запланировать обновление потока данных в сервисе. Однако, поскольку он может выполняться по другому графику, чем сам набор данных Power BI, вам не нужно ждать окончания обновления, чтобы завершить работу по разработке. Теперь давайте посмотрим на пример такой реализации.
Создайте поток данных из пустого запроса
Мы не будем объяснять, как создать поток данных, потому что для этого необходимо выполнить некоторые предварительные шаги, такие как создание рабочей области версии 2, наличие прав доступа для создания потока данных и так далее. Мы писали статью о том, как создать свой первый поток данных, которую вы можете прочитать здесь. Итак, давайте начнем здесь с момента выбора того, что делать с созданием потока данных, во-первых, это создание потока данных;
Выберите Define new entities.
Выберите источник данных как Blank Query.
Скопируйте запрос из Power BI Desktop в поток данных
Перемещение преобразований Power Query из Power BI Desktop в Dataflow так же просто, как копирование и вставка. Вы можете скопировать скрипт M из расширенного редактора Power BI Desktop, а затем вставить его в расширенный редактор потока данных. Вот как это работает. Мы открываем Power Query в Power BI Desktop, используя Edit Queries, затем выбираем запрос и идем в Advanced Editor.
Скопируйте скрипт M оттуда:
Затем вставьте его в поток данных Power BI (при создании пустого запроса, который мы делали на предыдущем шаге, или с помощью щелчка правой кнопкой мыши и выбора расширенного редактора для существующего запроса).
После вставки вы можете получить сообщение о локальном шлюзе данных (в случае, если вы используете локальный источник данных в своем скрипте);
Вот какое сообщение вы увидите: для подключения требуется локальный шлюз данных.
Затем выберите шлюз:
и нажмите ОК. Если настройка вашего шлюза в порядке, вы сможете перейти к следующему шагу. Шлюз - это еще один компонент, необходимый в наборе инструментов Power BI, если вы подключаетесь из службы Power BI к локальным источникам данных.
В зависимости от того, использовали ли вы этот шаг раньше или нет, вы можете получить сообщение об изменении учетных данных;
Сообщение: Пожалуйста, укажите, как подключиться.
В зависимости от источника данных, который вы используете, установите учетные данные для доступа к нему, а затем подключитесь.
Затем вы должны увидеть данные, загруженные в графический редактор Power Query в потоке данных.
Затем вы можете нажать Close и Save, и Save your dataflow:
Несколько заметок для перемещения ваших запросов
Если вы перемещаете свои запросы из Power Query в Power BI Desktop на Power Query в потоке данных, вам нужно учесть несколько замечаний, давайте поговорим о них здесь:
- Может понадобиться шлюз
- Вам может потребоваться переместить более одного запроса, чтобы переместить процесс преобразования.
- Если у вас есть запросы, исходящие друг от друга, вы можете в итоге создать Computed Entity
Может понадобиться шлюз
В Power BI Desktop, а также в Power Query в Power BI Desktop вам не нужен шлюз для подключения к источникам данных локального домена (или к тому, что мы называем on-premises). Вы просто подключаетесь к нему напрямую. Однако Dataflow - это сервисная функция, и для подключения к локальному источнику данных требуется настройка шлюза. Если вы получаете данные из онлайн-источника данных, такого как Google Analytics или база данных SQL Azure, вам не нужен шлюз. Однако, если вы получаете данные из локального источника данных, вам необходимо настроить шлюз, а затем выбрать его в потоке данных, как мы делали на предыдущем шаге.
Вам может потребоваться переместить более одного запроса, чтобы переместить процесс преобразования
Иногда в Power Query вы комбинируете таблицы друг с другом, используя Merge или Append. В таких сценариях вам необходимо убедиться, что вы также включили все необходимые таблицы в поток данных. Сценарий не может быть запущен, если все относящиеся к нему запросы не находятся в одном и том же процессе.
Если у вас есть запросы, исходящие друг от друга, вы можете в итоге создать Computed Entity
Если у вас есть сценарий, такой как упомянутый выше, с использованием Merge или Append, или любые другие сценарии, использующие выходные данные одного запроса в другом запросе, вы можете в конечном итоге создать вычисляемый объект в потоке данных. Вычисляемые объекты генерируются, когда вы исходите из другого запроса, и сам этот запрос также устанавливается как “Enable Load”. Computed Entity является концепцией только для потока данных и не существует в Power Query в Power BI Desktop.
Создание вычисляемых объектов полезно для повышения производительности, поскольку оно будет выполнять преобразования шаг за шагом, используя результаты предыдущих преобразований, которые загружаются как выходные данные другого запроса в хранилище озера данных Azure. Однако Computed Entity - это функция Power BI Premium только для пользователей, и если у вас нет премиум-лицензии, вам может быть сложно перенести преобразования в поток данных.
Расписание потока данных для обновления
После создания потока данных и его сохранения. Теперь вы можете настроить его обновление с помощью Schedule Refresh:
Получить данные из потока данных с помощью Power BI Desktop
В качестве последнего шага этого примера необходимо получить данные из потока данных с помощью Power BI Desktop. Выполняя этот процесс таким образом, вы получаете данные, которые уже преобразованы и хранятся в хранилище данных Azure потоков данных Power BI. Начните с получения данных из потоков данных Power BI;
После входа в поток данных с использованием учетной записи Power BI вы можете выбрать рабочую область, в которой содержится поток данных, затем в разделе потока данных выбрать нужный объект или объекты и затем загрузить.
Теперь посмотрим, сколько времени потребуется для обновления этого нового файла Power BI. Вот пример длины обновления этого файла;
Сделайте расчеты, чтобы увидеть, насколько быстрее это по сравнению с 5-минутным временем обновления, которое вы видели в начале этого примера. Это показало бы еще большую эффективность, если бы оно применялось в сценариях обновления данных, выполнение которых занимает часы.
Резюме
Из этой статьи вы узнали, что вы можете перемещать преобразования Power Query в потоки данных Power BI, а не сам файл PBIX, чтобы ускорить время обновления. Метод, который вы изучили в этой статье, ускоряет время обновления, но не ускоряет процесс преобразования Power Query! Используя этот метод, мы просто перемещаем тяжелую часть обновления набора данных Power BI, предназначенную для тяжелых преобразований Power Query, в отдельный процесс в службе Power BI, Dataflow. Преобразование Power Query все еще занимает много времени. Однако теперь оно не зависит от вашего набора данных. Вы можете запланировать этот процесс отдельно. Другими словами:
Используя поток данных, вы можете отделить тяжелые преобразования в процессе ETL (извлечение, преобразование, загрузка) от обновления набора данных Power BI
Надеемся, что этот метод поможет вам сократить время обновления набора данных.