知る人ぞ知るBPA(Best Practice Analyzer)のBest Practice Rulesが日本語に対応しました。Best Practice RulesはPower BIデータモデルに関するベストプラクティスをTabular Editor 2やTabular Editor 3を使って特定するもので、開発はPower BI CATのMichaelによるものとなります。Michaelは私と同じPower BI製品チームの一員で、チーム内ではスペシャリスト扱い、主にDAX / Data Modelに特化した非常に優秀な方です。
※TE2とTE3の違い
Guy in a Cubeのパトリックも2021年に紹介していますので、ビデオを見たい方は以下から確認してみてださい。
簡単な概念や解説ビデオを見て頂ければ分かりますが、今回は日本語版対応ということで、念の為、本ブログで導入方法を紹介しておきます。なお、少し古いですが、多言語対応前にMichaelが執筆したブログを見たい方は下記より確認することもできます。
BPAとは
BPAはBest Practice Analyzerの略で、データモデル(Tabular Model)の最適性を診断し、ベストプラクティスに沿っていないデータモデルに関するルールをその場で修正してくれたり、各種ルールのベストプラクティスへに対するアドバイスを一挙に施してくれる機能となります。
自分が作ったデータモデル(データセット)が最適かどうか、この機能を使用すればそれらを特定できる
ことが、BPAの最大の特徴です。
ある程度Power BIを使っている人向けの機能ですが、最後までブログを読んで頂ければその有能性についてお分かりになるでしょう。
導入方法
導入詳細は下記英語ページをご参照ください(日本語しか難しい方は翻訳機能をお使いください)。
日本語が良いという方向けに、簡単にこちらでもまとめておきます。
- Tabular Editorをインストール
無料版: Tabular Editor 2
有償版: Tabular Editor 3
2つありますが、今回はTabular Editor 2(無料版)をベースに解説していきます
※TE2とTE3の違い - Version Historyより最新版をインストール
https://github.com/TabularEditor/TabularEditor#version-history - BPAのセットアップ
やり方は2種類ありますが、この記事では初心者でも分かるようにコードを必要としないやり方を紹介します(コード付のやり方が良い方はこちら)。-
下記URLを開く
https://github.com/microsoft/Analysis-Services/tree/master/BestPracticeRules/Japanese - Rawを右クリック > 名前を付けてリンク先を保存
これでBPARules.jsonがローカルフォルダに保存される
- エクスプローラーに%localappdata%を記入し、Enter
- TabularEditorフォルダを探し出す
- 上記保存したBPARules.jsonを当該フォルダの直下に保存
- これで日本語版BPAルールの設定が完了
-
BPAをテスト
Power BI Desktopから簡単に試せるやり方でやってみます。
- 空のPower BI Desktopを立ち上げる
- 「サンプルデータセットを試す」をクリック
- サンプルデータの読み込み
- financialsを選択し、読み込み
- 外部ツール > Tabular Editor
-
Tabular Editorを開くと下図の通り、41 BP issuesが出現
-
そのまま赤枠内をクリック
これでモデリング、メジャー等一切行っていない状態のデータモデルに対する日本語ベースでの留意点(修正点)が表示される
あとは、表記の通り、1つずつ見ていくことになりますが、長くなるので下記2つの例を見てみます。
- 浮動小数点を修正
このルールは、数値列では可能な限り、浮動小数点(10進数)で書式設定を行わないことがベストプラクティスの1つ、なぜなら、小数点によってユニークなレコード(行)が増えてしまう場合、データモデルのサイズ肥大化に繋がってしまうことを指摘したものとなります。
このサンプルデータではUnits Sold列やDiscounts列等のユニーク値はそれほど多くないが、実務においてPower Queryで割り算をして算出した列の場合、1つの列に多くのユニーク値が含まれる可能性があります。
小数点を含む列の場合、全て整数にしていくことが望ましいですが、合計値が一致しなくなる可能性が高まるため、このBPルールでは固定小数点(小数点下四桁で固定)として書式設定されています。今回は単純にこのルールの適用を紹介するため、下記①~⑦の順番でクリックしていきます。
Tabular Editorに戻り、C# Scripts(④)ウィンドウにコピーされたスクリプトを張り付け(⑤)、スクリプト(⑥)を走らせる。
左上にあるセーブボタン(⑦)をクリックし、C#スクリプトを走らせた結果をPower BI側のデータモデルに保存しなおす。Power BI Desktopのデータビューを見ると、先程まで10進数となっていた書式が下図の通り、固定小数点として設定されていることが分かります。
-
日付テーブル
1番目のルールを適用後、当初41個残っていた問題点が35まで減少し、一番上にあった[パフォーマンス]浮動小数点データ型を使用しないという表示が消えているのが分かります。代わりに
[パフォーマンス]データモデルには日付テーブルが必要
というメッセージが一番上に来ており、サンプルデータとして読み込まれたデータモデルに日付テーブルが存在していないことが原因となっています。ここでdCalendarという日付テーブルを作ってみると、なぜか今度は逆に35項目から61項目に増えてしまいました。
一方で、先程の日付テーブルに関するメッセージが消えているのが分かります。これらのことから分かる通り、
BPAにおけるBPルールは常にダイナミックに増減する
ということになります。
これら全てのルールに関する詳細は下図の通り、Tabular Editor > Tools > Manage BPA Rules > Rules for the local userの順番で確認することができます。
なお、上図一番右にあるSeverityは重要度を意味し、3が最も深刻、1が最も軽いと覚えておいてください。2~3である項目は必ず確認しておく良いでしょう。
今回はBPAの簡単な実装方法について紹介しましたが、これで最適なデータモデルを構築できているかどうかの確認を行うことができるようになりました。BPAの中に記載されているルールを知ることは最適なデータモデルを構築するための近道となりますので、ぜひ有効活用してみてください。