11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Power BI] Tabular Editor だけでPower BI Serviceにデータモデルを構築する。大規模BI運用のための覚え書き。

Last updated at Posted at 2022-02-09
1 / 37

はじめに

夜のPower BI 勉強会 での発表スライドです。


BIを構築し始め、徐々に規模が大きくなっていったとき、どうしたらいいのかを考えてみた。
(実際にその局面になっているわけではないので、あくまでも想像)


具体的には データセットが次第に大きくなってきて、Power BI Desktopでインポートに時間がかかるようになってきたどうするのかなぁ:rolling_eyes:

巨大なデータをローカルで扱わなくてもいい方法はないのか・・と考えてみた。


やってみたこと

Power BI Desktopを使用せずに、Tabular Editor だけでPower BI Service上にデータセットを構築する。


前提条件

Power BI Premium ワークスペースが作成できること


Premium per CapacityPremium per user ライセンスが必要です。

image.png


XMLAエンドポイントのRead/Writeが許可されていること

Power BI 管理者 のロールが必要です。


XMLAエンドポイントの設定方法

  1. Power BI Serviceの設定から管理ポータルに進みます。

image.png

  1. 容量の設定→容量の名前をクリック

image.png

  1. ワークロードを展開して、XMLAエンドポイントを読み取り、書き込みに変更する。

image.png


(ほぼ)空っぽのレポートをPower BI Serviceにアップ

プレミアム容量のワークスペースであることを確認。

image.png


ワークスペースの設定画面から、URL形式の接続文字列をコピー。

image.png


Tabular Editorを開いて接続する


File -> Open -> Model from DB クリック。

image.png


URL形式の接続文字列を貼り付け

image.png


無事、読込完了

Power BI Service上のデータセットに接続できました。
最初に作成したテーブルが読み込まれています。


image.png


テーブルをインポートする。

Model -> Import tables

image.png


  • Provider (aka. Legacy): Analysis Servicesのすべてのバージョン、すべての互換性レベルで利用できます。限られた範囲のソースをサポートしており、主にOLE DB/ODBCライバによるリレーショナルデータをサポートしています。パーティションは通常、ソースに対してネイティブに実行されるSQLステートメントを使用して定義されます。認証情報は、Tabular Object ModelのProvider Data Sourceオブジェクトで管理され、サーバー側で保存および暗号化されます。
  • Structured (aka. Power Query): SQL Server 2017(互換性レベル1400+)から利用可能。レガシープロバイダーよりも広範囲のデータソースをサポートします。パーティションは通常、M(Power Query)式を使って定義します。認証情報はTabular Object ModelのStructured Data Sourceオブジェクトで管理され、Analysis Servicesへの展開時に毎回指定する必要があります。
  • Implicit data sources: Power BIデータセットでのみ使用されます。モデル内に明示的なデータソースオブジェクトは作成されません。代わりに、M(Power Query)式でデータソースを暗黙的に定義します。認証情報はTabular Object Modelには保存されず、Power BI DesktopまたはPower BI Serviceによって管理されます。

任意のデータソースを選択

image.png

あとはダイアログ通り進めていくと、テーブルの選択画面にすすみます。
ここでテーブル選択をして、必要に応じて、取り込むカラムも選択します。


image.png


取り込み完了

テストデータとして、商品情報(一部)と担当販売部名を取り込んでみました。

image.png


CTRL + S で保存 -> Refresh するとPower BI Service上でも確認できます。

Power BI Serviceで確認します。UPされています。Tabular Editorのテーブル情報とも一致します。
ただこのままでは、それぞれのテーブル間でリレーションが構成されていないため、ビジュアルを作成することはできません。

image.png


リレーションの構築

New Dialog を選択。

image.png


テーブル名をドラッグアンドドロップし、リレーションを構築したいカラムをマウスでつなげてあげると、視覚的にリレーションを作成することが出来ます。

image.png


リレーションシップが完成

TOM ExplorerRelationshipsフォルダにリレーションを示すオブジェクトができたことを確認できます。ダイアログツールを使用せずに、ここで直接リレーションを作成することも可能ですが、複雑になってくると管理もできなくなりますので、こういったビジュアルツールが有るのは助かりますね。

image.png


ビジュアルの作成

リレーションも正しく設定できているので、Power BI Serviceで複数テーブルからデータをもってきてビジュアルを作成することができています。

image.png


Power Query で 書いてみる。

今度はテーブルの作成時に、Power Queryを使用してみます。まだintellisenseは使えるようになっていないので、ここでゴリゴリPower Queryでの開発は(私は)難しい。


テーブルを新規で作成し、

image.png


Expression Editor で Power Query を記述。

image.png


Schema Update を実行

image.png


image.png


データプレビューも可能

image.png


Power BI Serviceにも連携されていることを確認

image.png


Power Query のサポートはロードマップに掲載されているので、実装されるのを楽しみに待ちたいと思います。

image.png


完成

Power BI Desktopを経由せずにデータセットを作成、リレーションシップの設定、Power BI Service上でビジュアルの構築ができました。Tabular Editor を利用すれば、大規模データセットの運用も怖くない!:upside_down:
大規模BIの運用・開発には配置パイプラインを使用して開発環境を作成する運用も検討できますね。


要注意

一度でもXMLAエンドポイント経由でデータセットを触ったら、そのPBIXファイルはPower BI Service上にしか存在できなくなります。ご利用は計画的に:stuck_out_tongue_closed_eyes:

image.png

image.png


公式Document

11
7
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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?