テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

Power BIデータセットをドキュメントする

Power BIはモデルが大きくなってくると、どのようなメジャーが使用され、計算列、メジャーの数式、リレーションシップ等を把握するため、それらを可視化したくなるニーズが出てきます。今回はそれを可能にする方法について紹介したいと思います。説明を読むのが面倒な方は「前提条件」を読んで頂き、一番下からpbitファイル(Power BI Template)をダウンロードしてパラメーター(「ワークスペースパス」と「データセット名」)を指定すれば完了です(※ XMLA エンドポイントを使用するため、PPU、もしくはプレミアム容量が必要)。

サンプル結果

🔸拡大版

※注意
「データセット」は別名「セマンティックモデル」に変更となっています。
Datasets renamed to semantic models | Microsoft Power BI Blog | Microsoft Power BI

前提条件

可視化の結果は上記Power BIレポートで確認できます。説明に入る前に、レポートを作るためには以下の前提条件を把握しておくことが必要となります。

  • PPU、プレミアム容量(Power BI Premium or Fabric容量)のワークスペースを用意する必要あり
  • モデルはPower BI Desktop❌ではなく、Power BIサービスにあるデータセット✅が対象となる
  • アクセス権限はビルド(Build)が必要で、データセットのアクセス許可から確認できます。アクセス許可の管理はこちらより。
  • Power BI Desktopのローカルモデルを可視化することも可能であるが、localhost及びデータベース名(GUID = Tabular ModelにおけるCatalogNameのValue)が毎回pbixを開くたびに変るため、非常に面倒(今回は説明を割愛)
  • カスタムチャートを使用しており、pbitをうまく起動できたら、下記カスタムビジュアルを有効にしてください

これらの条件を満たすことで、今回のレポートをご自身の環境に適用し、使用することができるだけでなく、必要に応じてカスタマイズも行うことが可能です。

なお、今回の可視化対象情報はDAX Studioからも取得できますが、Power BI レポートとして共有するためには今回のやり方がお勧めですので、ぜひ最後までお読みください。

コンセプト

Power BI Desktop で作成したデータモデルは、資格情報や Power Query クエリ、Power BI レポートなどを含めてPower BI サービスに発行され、共有データセットとなってチームや関係者と共有されます。ローカル環境では一般的に「データモデル」と呼ばれるものですが、Power BI サービス上では、Power Query とデータセットが一体化した状態となります(下図)。

このデータセットには、モデルに関する多くのメタデータ情報(リレーションシップ、メジャー、計算列、列サイズなど)が含まれています。その中でも特に重要と考えられるのは、メジャーの計算(DAX 式)やテーブル名、リレーションシップに関する情報です。今回のテーマは、これらの要素を可視化することを試みることです。

使用するのはAnalysisServices.DatabaseというPower Queryコネクタで、例えば以下のようなM式になります。

//Table
let
    Tables = AnalysisServices.Database(
        PremiumWorkspace, Dataset, [Query = "select * from $SYSTEM.TMSCHEMA_TABLES", Implementation = "2.0"]
    )
in
    Tables

必要なものは

  • テーブル情報
    select * from $SYSTEM.TMSCHEMA_TABLES
  • リレーションシップ情報
    select * from $SYSTEM.TMSCHEMA_RELATIONSHIPS
  • メジャーと計算列情報
    select * from $SYSTEM.TMSCHEMA_MEASURES
    select * from $SYSTEM.TMSCHEMA_COLUMNS

等であり、上記select文はSQLのようですが、DMV *1をクエリするための構文となります。

使用方法

  1. pbitをダウンロード
  2. (モニタリングしたい)データセット名をメモ

    現在、Fabricが無料トライアル期間となっているため、Power BI Proライセンスしか持っていない人でもFabric及び今回のことを試すことが可能であり、お勧めです
  3. Power BIサービスのワークスペースパスを控える
  4. pbitを開き、ワークスペースパスとデータセット名を入力
  5. ネイティブクエリの実行承認

    初めて対象データセットに接続する際、アクセス情報が記憶されていないため、上記の画面が複数回出現します。そのまま全て「実行」をクリック。
  6. 無事完了すると、以下のようなPower BIレポートが自動生成されます

ひとまずこれで様々な情報を含むモニタリング用レポートが出来上がりましたが、「自動の日付/時刻」がONとなっているデータセットに対しては、アラートが出るようにしています(上図)。正しいモデリングを行うためには、自動生成されるLocalDateTableは余計であり、「自動の日付/時刻」をOFFにしておく必要があります。

今回はサクッと読める内容となりましたが、実際にはpbitの中身が結構面白いと思います。例えばワークスペースパスとデータセット名をパラメーター化しておけば、以下のように複数のデータセットを切り替えて特性を把握することもできるようになります。

  • パラメーターで複数の値を設定

  • 新しいパラメーターの選択
  • 変更の適用

最終的には以下のようなレポートが新しく生成されます。

これにて説明は終了となりますが、pbitは以下よりダウンロードしてください。

>>ダウンロード

次回はローカルモデルからメタ情報を取得するやり方について解説していきます。

*1:DMV(Dynamic Management View)は、Microsoft SQL Server Analysis Services(SSAS)などのデータベース管理システムで使用される特殊なビューです。DMVは、データベースの内部状態や動作に関する情報を提供し、パフォーマンスの監視、トラブルシューティング、クエリ最適化などの目的で使用されます。