最近Power BIで「データフロー」を使うという話を聞いたのですが、そもそも「データフロー」とは何ですかな?
Power BIのデータフローとは、クラウド上でデータのETL処理を行い、複数のレポートで再利用可能なデータソースを提供できるものです!
この記事では、Power BIのデータフローとは何かと、データフローの具体的な使い方について解説します!
Power BIのデータフローを使うと、組織で複数のレポートで活用するための、共通のデータを提供することができます。
Power BIデスクトップからの接続方法や、増分更新の設定も解説します。
- Power BIのデータフローとは何か?
- データフローGen1とGen2の違い
- データフローの具体的な使い方と必要なライセンス
YouTube動画で見たいかたは、こちらからどうぞ!
Power BIのデータフローとは?
データフローとは?
Power BIのデータフローとは、クラウド上でデータのETL処理を行い、複数のレポートで再利用可能なデータソースを提供できるものです。

このETL処理は、基本的にPower BIやExcelで使えるPower Queryと同様のUIとなります。
ライセンスと種類
データフローの種類には、データフローGen1と、Gen2の2種類があります。

どちらもETL処理の機能がありますが、データフローGen1は、Power BIのデータソースとなるもので、Gen2はレイクハウスやウェアハウスへ格納する必要があります。
Gen2の方では、データパイプラインとの統合が可能ですが、Gen1はできません。
データフローGen1で、データの「増分更新」設定をしたい場合、Premium容量のワークスペースが必要です。
今回はこの2つの内、データフローGen1の方を紹介していきます。
データフローを使うメリット
データフローGen1 を使うメリットの例として、以下のようなシナリオがあります。

たとえば、SharePoint、SQL Server、PostgreSQL などに組織全体のデータを格納しているとします。
その中には複数の部門で、共通で利用できるデータが含まれる一方、すべてのデータに直接アクセスさせたくないこともあります。
このようなとき、データフローを使うと以下のようなことが実現できます。
- 元データをPower Queryで一度だけ整形すればよい
- Power BIから直接、元データへアクセスすることを制限できる
- 必要なデータだけを公開した「共通データソース」を作成できる
- 複数のレポートで再利用できる「共通データソース」を提供できる
そのためデータフローを使ことで、以下のようなメリットがあります。
- 元のデータベースへの負荷を防げる
- レポート作成者が Power Queryでのデータ変換ステップを削減できる
- 一貫したデータ品質と権限管理を担保できる
- 複数の異なるレポート作成に活用できる
上記のようなことを実現したい場合、データフローの利用を検討した方が良いのですな!
データフローのユースケース
データフローのユースケースとしては、以下の3つのようなケースがあります。
- 複数のレポートで同じ前処理ロジックを使い回したい場合
- Power BIサービス側の増分更新により、負荷を軽減したい場合
- IT部門等が利用してよいデータの品質チェックや、アクセス権限の管理をしたい場合
①複数のレポートで同じ前処理ロジックを使い回したい場合
たとえば営業部の「月次売上集計」「地域別KPI」「商品別トレンド」など、複数のレポートで同じデータ変換処理を毎回 Power Query で定義している場合があります。
このとき、データフローで一度だけデータ変換処理を作成して公開すれば、各レポートはそのデータフローをデータソースとして参照するだけで済み、メンテナンス工数を大幅に削減できます。
②Power BIサービス側の増分更新により、負荷を軽減したい場合
毎日数百万行の売上明細や、ログデータを前日売上分だけまとめて更新したいなど、重い変換を 毎回全データで更新を行うと時間がかかり、メモリを圧迫してしまいます。
データフローで増分更新の設定をすれば、Power BIサービス上で、更新分のデータだけを自動で処理でき、変換処理の負荷と、更新時間を削減できます。
③IT部門等が利用してよいデータの品質チェックや、アクセス権限の管理をしたい場合
元となるSQL ServerやSharePoint等のデータソースへ直接のアクセスは許可せず、IT部門が承認した「共通のデータソース」を用意したい場合があります。
このとき、データフローを公開し、レポート作成者にはその公開したデータフローのみを参照させることで、データ品質とセキュリティを一元管理できます。
上記のようなケースでは、データフローの活用を検討してみましょう!
データフローの具体的な使い方
実際に、データフローGen1の使い方を解説します。
今回は、元となるデータソースとして、SharePointリストの従業員リストがあり、データフローGen1を使い、個人情報となる列を削除する等のデータ変換したものを提供します。

Power BIから、データフローに接続する方法や、データフローの増分更新の設定方法も紹介します。
データフローGen1の作成
まずはデータフローGen1を作成します。
1.データフローを作成するには、Power BIサービスの任意のワークスペースを開きます。
2.「新しい項目」を選択します。

3.「Dataflow Gen1」を選択します。

4.以下のこのようなメッセージが表示されたら「いいえ」を選択します。

5.新しいテーブルの定義で「新しいテーブルの追加」を選択します。

6.ここでデータフローで取得するデータソースを選択できるので、今回は「SharePoint Onlineリスト」を選択します。

ExcelやSharePointフォルダー、SharePointリストの他、データフロー、SQL Server、PosgreSQL等もありますな!
この後はPower BIデスクトップや、Excelで使えるPower Queryと同様の操作になります!
7.URLには、SharePointリストがあるSharePointサイトのURLを設定します。
※SharePointサイトの「ホーム」タブをクリックしたときのURLをコピーします

今回、このような従業員リスト(EmployeeList)と、ダミーデータを用意しました。
8.実装は2.0で、必要に応じて認証の設定をして「次へ」をクリックします。

9.今回取得するリスト「EmployeeList」にチェックを入れて「データの変換」を選択します。

このでのデータ変換の画面は、ほぼPower BIデスクトップで使っているPower Queryと同様です。
例えば、個人情報となる従業員IDや、氏名、メールアドレスは見せたくない場合、列の選択をしたり、入社日からの勤続年数の列を追加しておきたいときは、列を追加したりします。
10.データ変換をしたら「保存して閉じる」を選択します。

11.データフロー名を入力し保存します。

12.「今すぐ更新」をクリックすれば、データフローが更新されます。

これでデータフローの作成は完了ですぞ!
ワークスペースには、以下のようにDataflow Gen1が公開されており、このワークスペースにアクセスできるユーザーが、データフローにアクセスできます。

Power BIからデータフローへの接続
次に、Power BIデスクトップからデータフローに接続してみます。
1.Power BIデスクトップを開き「データを取得」>「データフロー」を選択します。

2.対象のワークスペース、データフローを選択すると、データフローで公開したテーブルが選択できます。
必要なテーブル(今回の場合、EmployeeList)にチェックを入れて「データの変換」を選択します。

Power Queryが開き、取得したデータフローのテーブルに接続できました。
データフローで変換したように、従業員IDや氏名等の個人情報にはアクセスできず、許可されたデータのみにアクセスできる状態ですな!
3.必要であればここでデータ変換をして、「閉じて適用」します。

4.あとは必要なビジュアルを作成し、通常と同じようにPower BIサービスに公開するだけです。

データフローをデータソースにして、Power BIレポートを作成できましたぞ!
データフローの増分更新設定
さいごに、データフローの増分更新設定を解説します。
1.Power BIサービスでデータフローを選択し「増分更新」のアイコンを選択します。

2.デフォルトではオフになっているので「オン」にして、以下の設定をします。
- フィルター処理する日付またはDateTime列:今回は「更新日時」列
⇒増分更新で使うDateTime列を選択します - 過去の次の期間の行を保存:今回は「5年」
⇒DateTime列で保存する期間を設定します - 過去の次の期間の行を更新:今回は「1月」
⇒DateTime列で増分更新する期間を設定します - データ変更の抽出
⇒指定した列のデータで、前回更新時から変更のあったレコードのみが更新の対象となります - 完了期間のみを更新 月
⇒例えば4月分のデータ更新は、5月に実行されるようになります

3.上記のように設定して「保存」した後、「更新スケジュールを設定する」を選択します。

ワークスペースからも設定画面に遷移できます。

4.「最新の情報に更新」を「オン」にして更新のスケジュール設定をします。

これでデータフローの自動更新と増分更新の設定ができました!
ちょっと待ってくだされ!
ワークスペースでデータフローにエラーが出ていますぞ!?
注意点として、データフローの増分更新設定をするには「Premium容量」のワークスペースが必要です。

Premium容量のワークスペース以外で増分更新設定をした場合、以下のようにエラーが出るので、気をつけましょう。

さいごに
この記事では、Power BIのデータフローとは何かと、データフローGen1の具体的な使い方について解説しました。
Power BIのデータフローの種類は、データフローGen1とGen2があり、今回はデータフローGen1について紹介しました。

データフローを使うことで、データの「共通化」、「再利用」、「アクセス権管理」等が実現できます。
複数のレポートで共通で使うテーブルを用意したい場合は、データフローを使ってみてください!