前回はDAX Query View(DQV)の設定、画面、および基本的な操作を通じて、DAXクエリを出力する方法をご紹介しました。今回は、DQVについてもう少し詳しく掘り下げてみたいと思います。
DQVの特徴・メリット
DQVはDAX Studioの開発者であり、Fabric CAT*1チームの一員であるDarren Gosbell氏のアドバイス等を得て開発されたPower BI Desktopネイティブの機能です。
DAX Studioは、Power BIのパフォーマンス測定やDAXクエリのデバッグ、データをExcelやCSVにエクスポートしたり、SQLデータベースにロードするなど、様々な場面で活用される外部ツールです。DQVはそのうちの一部の機能を継承しており、今後のアップデートで更に機能が拡充される予定です。
DQVの特徴と使用メリットは以下の通りです。
-
新しいビューの登場
Power BI Desktopのナビゲーションパネル(左側にある縦に並んだアイコン)に、初めて新しいビューとしてDQVが追加されました。これは🔰向けではありませんが、DAXに詳しい人や中上級者の開発者向けの機能が追加され、Power BI Desktopの大型アップデートの1つとなっています。 -
操作がサクサク
QDVはバージョン1として登場していますが、操作感が非常にスムーズです。実行結果は左下にミリ秒(ms)で表示され、この数字が小さいほどパフォーマンスが良いことを示しています。実行結果は、1つのクエリあたり100万の値(行×列のセルが100万の値)に達した時点で終了します。
-
DAXクエリの学習促進
DAXを学びたい人は今後、Power BI Desktopから様々なクエリを生成し、DAXクエリを学習することができます。同時に、DAXを教える側は実行結果をテーブルグリッドで表示させることができるため、DAX Studioを使用する手間が省けます。DAX Studioにはある便利な機能がいくつか不足していますが、バージョン1としては非常に良い出来だと考えています。 -
DAXのメジャーの簡単作成
本来、DAXメジャーを生成するにはDAX数式バーを使用する必要がありました。DQVを使用することで、今後は複数の類似したメジャーを迅速に生成できます。以下の図は、[# VisitingCustomer]というメジャーを素早く3つ複製し、それぞれの名前と式を変更したものです。これを数式バーを使用して行う場合、非常に時間がかかり、モデルが複雑な場合、DAXメジャーを記述する際に発生する待ち時間(オーバーヘッド)が問題として発生しやすくなります。
-
メタデータ情報の取得
DQVに標準搭載されている機能の1つとして、モデルのメタデータ情報を手軽に取得できる機能があります。DQVの右側にあるテーブルを右クリックし、「クイック クエリ」 > 「Show column statistics」を選択することで、これを実現できます。実行後、以下のように、テーブル名、列名、行数(Count)、列のユニークなレコード数(Distinct Values)などが表示されます。これにより、データモデルの初期診断に役立つ情報が多く含まれています。
モデル全体をスキャンして結果を返すため、データ量がかなり多い場合、例えば下図のように、結果が返されるまでに数十秒から数分かかることもあります。DAX Studioの「Advanced」タブの「View Metrics」には、似たような機能があります。ただし、こちらは全体スキャンが省略されているためか、瞬時に結果を返してくれます(現在確認中です)。
-
サードパーティツールとの使い分け
Power BI Desktopはサードパーティのツールを利用することができます。通常、これらは「外部ツール」として登録されますが、例えば、DAX StudioやTabular Editorなどがあります。Tabular Editorで取得したDAXスクリプトをDQVに持ち込み、別のpbixファイルで定義を再利用することもできます。また、外部ツールの使用が許可されていない企業の場合でも、DQVで取得したDAXクエリを共有したり、Tabular Editorを使用可能な環境で取得したDAXスクリプトを再利用するといったユースケースが考えられます。
※TE2とTE3の違い -
フォーマット機能(クエリの形式設定)
Power BI Desktopでは、DAXに関するフォーマット機能が不足していましたが、DQVに搭載されている「クエリの形式設定」を使用することで、DAXを簡単にフォーマットできるようになりました。この機能はオフラインでも利用可能であり、オンラインになったり、DAX Formatterを開く手間が省けます。ただし、フォーマットされた結果が複数行になる傾向があるため、DAX Formatterほど洗練されているとは言えませんが、この機能については今後の改善が約束されています。
-
Copilotとの融合
今後、DQVにもCopilotが登場するため、自然言語でDAXメジャーを簡単に構築できるようになるでしょう。
Power BIで利用するCopilotにはいくつか種類があり、今後更に増えていく可能性もあります。- DQVで使用するCopilot
- Power BIサービスでレポートを作成するCopilot
- Power Queryで使用するCopilot
- DQVで使用するCopilot
DQVの難点
これまでDQVの利点について様々な点を見てきましたが、バージョン1ということもあり、まだまだ課題(機能だけでなく、使用方法に関する部分も含む)が存在します。以下にそれらをまとめます。
- DAXを書かない人にとって高度な機能となってしまう
これは議論の余地がありますが、DAXをほとんど使用しない場合、DQVを活用する機会が限られるかもしれません。DAXを避けてPower BIの採用を見送る企業も存在しますが、他のBIツールでもビジネスロジック(=指標構築)を構築する必要がありますので、DAX以外の言語を使用してプログラミングする必要が出てきます。"BI(Business Intelligence)"という言葉が示す通り、ビジネスにおいてロジックを定義することが重要ですので、DAXの理解は依然として必要とされます。ただし、モデリングとの組み合わせが重要であり、これを理解している場合、DAXの学習はよりシンプルになる可能性が高いでしょう。 - DAX Studioで利用できる機能の一部が欠如している
DQVの登場により、DAX Studioで利用される機能との重複が増えており、一部重要な機能が欠けていると言えます。例えば、DQVにはDAX Studioに標準搭載されている以下の機能が含まれていません:(a) 上級者向けの機能であるServer Timingsや、(b) DAXが苦手な人向けにUIベースで簡単にDAXクエリを生成できるQuery Builderなどです。前者は上級者向けの機能であり、後者はDAXに不慣れな人向けにUIで簡単にDAXクエリを作成できる機能です。今後、これらの機能がDQVに組み込まれることが期待されます。 - DAXクエリの一部が定義できない
今後搭載予定ですが、下記重要な機能が現時点使用できないので、今後のアップデートに期待したいところです(以下全ては対応予定)。- DEFINE TABLE
- DEFINE COLUMN
- DAXクエリから計算テーブルの作成
- DMVの対応(対応済: 2023年12月版のPower BI Desktopより)
Power BI DesktopのDQVにINFO DAX関数が搭載され、DMVを操作できるようになりました。
- 機能に対する改善ポイント
- DAXのオートコンプリート機能(IntelliSense)がアグレッシブすぎる
- 結果数値の桁区切り表示(今後、改善予定)
DQVの結果には桁区切りが反映されず、数字の書式設定が表示されるとベストです。さらに、「メジャーツール」というタブがDQVには表示されないため、選択されたメジャーの書式を確認する手段がありません。データビューと同じように、「メジャーツール」をリボンで表示することが重要だと言えます。 - DAXメジャーを一括反映できない
この機能は今後追加される予定ですが、現時点(2023年11月時点)では、モデルに対する変更が検知された場合にDAXメジャーを新たに作成または更新する際に、1つずつクリックする必要があります。将来的には、一括で適用できるようになることが分かっています。 - Tabular Editorのように、DAXメジャーを定義する際、書式まで設定できない
一括で書式を定義できる場合、作業効率が大幅に上昇するため、今後のアップデートに期待したいところです。 - RANKX関数をフォーマットするとエラーになる場合がある
以下はクエリを「実行」した結果のフォーマットですが、ご覧の通り、モデル内の全てのDAXメジャーの結果が何事もなく返されていることが分かります。
しかし、一度フォーマットを適用すると、カンマの位置が誤って設定されたためエラーが発生することがあります。
このエラーは私が発見したもので報告済ですが、今後修正されるでしょう。
- DAXのオートコンプリート機能(IntelliSense)がアグレッシブすぎる
まとめ
DQVは今後、Power BI Desktopを使ってDAXを学ぶ人にとってゲームチェンジングな機能と言えるでしょう。昨年(2022年)のPower BIで登場した新機能の中で、私にとって最もインパクトの大きかったものはフィールド パラメーターでしたが、今年(2023年)は間違いなくDQVになるでしょう。
提供されるべき機能がすべて搭載され、これらを使いこなすには少し時間がかかるかもしれませんが、DAXを学ぶ上で有用な機能が追加されました。ぜひこの機能に慣れることをお勧めします。
次回はDQVに関する基本的なTipsについて紹介していきたいと思います。