Начало работы с потоком данных в Power BI - часть 2 серии «Поток данных»

Tags: Power BI, PowerBI, dataflow

В предыдущей статье мы рассказали, что такое поток данных, как он может быть полезен, и продемонстрировали некоторые примеры его использования в практической реализации Power BI. В этой статье, являющейся второй частью серии статей о потоке данных, мы хотели бы дать вам практический опыт работы с потоком данных и объяснить, как он работает. Если вы хотите узнать больше о потоке данных и лучше понимать, о чем мы будем говорить в этой статье, прочитайте сначала статью “Каковы варианты использования потока данных для вас в Power BI?”.

Что нужно знать заранее

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

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

 

Как вы можете видеть на скриншоте выше, вкладка Dataflows доступна. Обратите внимание, что на момент написания этого поста Dataflow все еще был функцией предварительного просмотра. На вкладке «Dataflows» вы увидите позже те потоки данных, которые вы создали. Если вы не видите вкладку «Dataflow» даже в рабочей области приложения, то есть еще кое-что, что вы должны рассмотреть; административный контроль над потоком данных.

Административный контроль

Администратор Power BI может отключить или включить создание и использование потока данных для пользователей в клиенте. Поэтому, если вы не видите параметр «Dataflows», возможно, это связано с тем, что администратор Power BI отключил эти функции. Так что обратитесь к администратору, чтобы включить его. На момент написания этого сообщения в блоге этот параметр можно было включить или отключить только для всей организации (как и многие другие параметры в настройке арендатора в первые месяцы их появления), но скорее всего что эта функция будет доступна для выборочной группы людей (как и многие другие варианты в настройках арендатора в будущем).

В административном портале (Admin Portal) службы Power BI в разделе Tenant Settings есть опция конфигурации для потока данных, как показано на этом скриншоте:

 

Создание первого потока данных

Теперь, когда мы готовы, давайте начнем создавать самый первый поток данных. Начните с нажатия на опцию Создать, а затем выберите  Dataflow.

 

 

Каждый поток данных похож на процесс расписания работ. Он содержит одно или несколько преобразований и может быть запланирован. Эти преобразования могут записывать данные в некоторые объекты. Итак, давайте посмотрим, как вы можете создать объект. На скриншоте ниже вы видите, что есть опция  Add new entities. Давайте начнем с этого.

 

Нажмите  Add new entities. Вы можете увидеть список всех поддерживаемых источников данных (в последнее время в обновлении в список добавлено еще много источников данных). Как видно из приведенного ниже списка, интерфейс очень похож на интерфейс получения данных Power BI Desktop.

 

Образец набора данных

В этом примере мы будем использовать источник OData, поскольку он не требует настройки шлюза и не требует дополнительных требований к настройке. Выберите OData в качестве типа источника данных и в части URL введите этот адрес: https://services.odata.org/V3/Northwind/Northwind.svc/

(OData - это набор данных, доступный через API, выходные данные которого могут включать одну или несколько таблиц. Многие инструменты преобразования данных могут считывать данные из Odata. Power Query (или в данном случае; поток данных) также имеет соединение с источником данных OData.

 

После этого шага вы должны увидеть экран, который очень похож на окно навигатора в Power Query. На этом экране вы увидите список всех таблиц и сможете начать их изучение.

 

Для этого примера давайте выберем эти таблицы: Customers, Employees и Orders  а затем нажмите Next.

Power Query Editor онлайн

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

 

В этом примере мы просто выбрали три таблицы без преобразования и нажали «Done». Вы можете увидеть все таблицы в этом потоке данных. В потоке данных мы называем эти объекты.  Для каждого объекта вы можете указать пошаговое обновление (Incremental Refresh), если хотите.

 

Затем вы можете сохранить поток данных.

 

Шлюз

Если ваши данные получены из локального источника, вам потребуется настройка шлюза. В Power BI Desktop, поскольку вы разрабатываете файл локально, вы можете подключиться к локальному источнику данных и начать разработку решения, а затем после публикации в службе вы можете настроить шлюз. Однако в Dataflow, поскольку все происходит в службе, вам необходимо настроить шлюз, если вы подключаетесь к локальному источнику данных, в противном случае вы не сможете пройти самый первый шаг. Если вы подключаетесь к онлайн-источнику данных (например, к базе данных SQL Azure), вам не потребуется шлюз.

 

Blank Query  как источник данных

Один из способов передачи ваших сценариев Power Query в Dataflow - выбрать пустой запрос в качестве источника данных, а затем скопировать и вставить сценарий M из таблиц Power Query в поток данных. Однако следует помнить, что не все преобразования Power Query поддерживаются. Возможно, вам придется внести некоторые изменения.

 

Следующий сценарий создает базовое измерение даты (без фискальных столбцов или государственных праздников, только с календарными столбцами):

let

   StartYear = 2000,

   YearsToGenerate=40,

   Source=List.Dates(#date(StartYear,1,1),40*366,#duration(1,0,0,0)),

   #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

   #"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "Date"}}),

   #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Date", type date}}),

   #"Inserted Year" = Table.AddColumn(#"Changed Type", "Year", each Date.Year([Date]), Int64.Type),

   #"Inserted Month" = Table.AddColumn(#"Inserted Year", "Month", each Date.Month([Date]), Int64.Type),

   #"Inserted Month Name" = Table.AddColumn(#"Inserted Month", "Month Name", each Date.MonthName([Date]), type text),

   #"Inserted Quarter" = Table.AddColumn(#"Inserted Month Name", "Quarter", each Date.QuarterOfYear([Date]), Int64.Type),

   #"Inserted Week of Year" = Table.AddColumn(#"Inserted Quarter", "Week of Year", each Date.WeekOfYear([Date]), Int64.Type),

   #"Inserted Week of Month" = Table.AddColumn(#"Inserted Week of Year", "Week of Month", each Date.WeekOfMonth([Date]), Int64.Type),

   #"Inserted Day" = Table.AddColumn(#"Inserted Week of Month", "Day", each Date.Day([Date]), Int64.Type),

   #"Inserted Day of Week" = Table.AddColumn(#"Inserted Day", "Day of Week", each Date.DayOfWeek([Date]), Int64.Type),

   #"Inserted Day of Year" = Table.AddColumn(#"Inserted Day of Week", "Day of Year", each Date.DayOfYear([Date]), Int64.Type),

   #"Inserted Day Name" = Table.AddColumn(#"Inserted Day of Year", "Day Name", each Date.DayOfWeekName([Date]), type text)

in

   #"Inserted Day Name"

 

Вы можете скопировать и вставить его в пустой запрос в потоке данных;

 

 

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

 

Расписание обновления

Расписание обновления потоков данных может быть настроено на каждом уровне потока данных (не на уровне объекта).

Резюме

Из этой статьи вы узнали, как создать поток данных, а также необходимые шаги для его создания. У потока данных, однако, еще есть много областей, которые нужно раскрыть: расписание обновление, сопоставление выходных данных запроса потока данных со стандартной моделью, общей моделью данных, внешним потоком данных, структурой сохранения потока данных в озере данных Azure. Оставайтесь с нами для следующих частей этой серии блогов, чтобы узнать больше о потоке данных.

No Comments

Add a Comment