LoginSignup
1
0

Power BIの参照するデータフローをパラメーターで切り替える

Posted at

Power BI サービス上に複数用意したデータフローをデータセットから参照する際に、テスト用、本番用など参照するデータフローを切り替えたい時があります。データフローIDをパラメータに入れることで、いちいちPower BI デスクトップを使って差し替える必要がなくなります。

データフローを用意する

今回はテストなので、適当なワークスペースで「空のテーブル」から市外局番テーブルのようなものを作りました。ちなみに、市外局番の列は「テキスト型」にしておかないと先頭の0が消えてしまいます。足したり引いたりする必要がない数字は「テキスト型」にしておきましょう。
image.png
三点リーダーから.jsonのエクスポートします。
image.png
もういちど新規>ワークフロー から、今度は「モデルのインポート」を選びます。
image.png
ダイアログからさっきエクスポートした.jsonファイルを選択します。
image.png
ワークスペースに戻ると、同名のデータフローができています。
image.png
紛らわしいので名前を変えます。三点リーダーから「プロパティ」を選択します。
image.png
ここでデータフローの名前を変えられます。ちなみに、名前が変わってもデータフローのIDは変わらず。Power BIはデータソースとしてデータフローを使う場合には、フローの名前ではなくデータフローIDを参照しているので、後で変更しても問題ありません。
image.png
保存して準備完了です。
image.png
2つのデータフローの中身が同じだと面白くないので、テストDataFlow2のほうは、中身のテーブルを修正して、変化がわかりやすくしておきます。

Power BI Desktop からテストDataFlow1へ接続する

image.png
テストDataFlow1のほうのテーブルを選択します。こちらは東京、大阪、名古屋ですね。
image.png
[ホーム]>[パラメーターの管理]>[新しいパラメーター]を開きます。
image.png

クエリを選択した状態で[ホーム]>[詳細エディタ]をクリックします。
image.png
[dataflowId="*******"]となっている部分のID文字列をコピーしておきます。
image.png
[ホーム]>[パラメーターの管理]>[新しいパラメーター]を開きます。
image.png
パラメーターに名前を付けて、テキスト、任意の値を選択します。現在の値には、先ほどコピーしたデータフローIDを張り付けておきます。
image.png
さきほど値を取得した部分をパラメーターに差し替えます。データフローIDを囲っていたダブルクォーテーションは不要です。
{[dataflowId=データフローID]}[Data]
image.png
エラーが出なければ、PowerQueryの画面は閉じて適用します。テーブルの内容を適当に表示させました。ここまで出来たら、保存してワークスペースへ「発行」しましょう。
image.png

Power BI サービスでデータセットの設定を開く

「発行」したら、Power BI Desktopで保存した名前のレポートとデータセットがワークスペース上に表示されます。データセットの三点リーダーから「設定」をクリックします。
image.png
設定画面からパラメーターの項目を確認すると、Power BI Desktopで作成したパラメーター名とその値が表示されています。ということは・・・
image.png

テストDataFlow2のデータフローIDを取得して利用する

もういちどワークスペースに戻って、今度はテストDataFlow2のほうを、名前の部分をクリックして開きます。
image.png
テストDataFlow2を開いた際のURLをよく見ると、groupsの後ろ(緑の部分)と、dataflowsの後ろ(青の部分)にIDらしきものが見えます。緑部分はワークフローIDで、青の部分はデータフローIDです。データフローIDをコピーしておきます。
image.png
ふたたびデータセットの設定画面からパラメーターを開き、先ほどコピーしたデータフローIDに差し替えて「適用」をクリックします。
image.png
パラメーターを差し替えたら、いちどデータセットの「更新」をかけます。そのあとでレポートを開いてみると・・・
先ほどまではテストDataFlow1の内容だったのが、テストDataFlow2の内容に差し変わりました。
image.png

ダイレクトクエリならデータセットの更新も不要

今回はデータセットからデータフローにインポート接続していましたが、データフローの設定で「コンピューティングエンジンの拡張設定を「オン」にした状態でデータフローを更新し、データセットからデータフローにダイレクト接続していた場合には、データセットの更新すら必要ありません。
image.png

本番とテスト用のデータフローなど切り替えに便利

パラメーターを使ってWEB上のデータセットを直接操作できるととても便利です。以前に大きなデータを取り扱う際に一時的に小さなデータだけを読み込んで処理を早くする方法を紹介しましたので、そちらも参考にしていただけると嬉しいです。
https://qiita.com/DaddyDaddy/items/c16228be486772ed18f0

良いPower BIライフを!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0