テクテク日記

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

DAX Query View (DQV)のいろいろ②

前回DAX Query View(DQV)の設定、画面、および基本的な操作を通じて、DAXクエリを出力する方法をご紹介しました。今回は、DQVについてもう少し詳しく掘り下げてみたいと思います。

learn.microsoft.com

DQVの特徴・メリット

DQVはDAX Studioの開発者であり、Fabric CAT*1チームの一員であるDarren Gosbell氏のアドバイス等を得て開発されたPower BI Desktopネイティブの機能です。

DAX Studioは、Power BIのパフォーマンス測定やDAXクエリのデバッグ、データをExcelCSVにエクスポートしたり、SQLデータベースにロードするなど、様々な場面で活用される外部ツールです。DQVはそのうちの一部の機能を継承しており、今後のアップデートで更に機能が拡充される予定です。

DQVの特徴と使用メリットは以下の通りです。

  1. 新しいビューの登場
    Power BI Desktopのナビゲーションパネル(左側にある縦に並んだアイコン)に、初めて新しいビューとしてDQVが追加されました。これは🔰向けではありませんが、DAXに詳しい人や中上級者の開発者向けの機能が追加され、Power BI Desktopの大型アップデートの1つとなっています。

  2. 操作がサクサク

    QDVはバージョン1として登場していますが、操作感が非常にスムーズです。実行結果は左下にミリ秒(ms)で表示され、この数字が小さいほどパフォーマンスが良いことを示しています。実行結果は、1つのクエリあたり100万の値(行×列のセルが100万の値)に達した時点で終了します。

  3. DAXクエリの学習促進
    DAXを学びたい人は今後、Power BI Desktopから様々なクエリを生成し、DAXクエリを学習することができます。同時に、DAXを教える側は実行結果をテーブルグリッドで表示させることができるため、DAX Studioを使用する手間が省けます。DAX Studioにはある便利な機能がいくつか不足していますが、バージョン1としては非常に良い出来だと考えています。

  4. DAXのメジャーの簡単作成
    本来、DAXメジャーを生成するにはDAX数式バーを使用する必要がありました。

    DQVを使用することで、今後は複数の類似したメジャーを迅速に生成できます。以下の図は、[# VisitingCustomer]というメジャーを素早く3つ複製し、それぞれの名前と式を変更したものです。これを数式バーを使用して行う場合、非常に時間がかかり、モデルが複雑な場合、DAXメジャーを記述する際に発生する待ち時間(オーバーヘッド)が問題として発生しやすくなります。

  5. メタデータ情報の取得
    DQVに標準搭載されている機能の1つとして、モデルのメタデータ情報を手軽に取得できる機能があります。DQVの右側にあるテーブルを右クリックし、「クイック クエリ」 > 「Show column statistics」を選択することで、これを実現できます。

    実行後、以下のように、テーブル名、列名、行数(Count)、列のユニークなレコード数(Distinct Values)などが表示されます。これにより、データモデルの初期診断に役立つ情報が多く含まれています。

    モデル全体をスキャンして結果を返すため、データ量がかなり多い場合、例えば下図のように、結果が返されるまでに数十秒から数分かかることもあります。

    DAX Studioの「Advanced」タブの「View Metrics」には、似たような機能があります。ただし、こちらは全体スキャンが省略されているためか、瞬時に結果を返してくれます(現在確認中です)。

  6. サードパーティツールとの使い分け
    Power BI Desktopはサードパーティのツールを利用することができます。通常、これらは「外部ツール」として登録されますが、例えば、DAX StudioやTabular Editorなどがあります。Tabular Editorで取得したDAXスクリプトをDQVに持ち込み、別のpbixファイルで定義を再利用することもできます。また、外部ツールの使用が許可されていない企業の場合でも、DQVで取得したDAXクエリを共有したり、Tabular Editorを使用可能な環境で取得したDAXスクリプトを再利用するといったユースケースが考えられます。
    TE2とTE3の違い

  7. フォーマット機能(クエリの形式設定)

    Power BI Desktopでは、DAXに関するフォーマット機能が不足していましたが、DQVに搭載されている「クエリの形式設定」を使用することで、DAXを簡単にフォーマットできるようになりました。この機能はオフラインでも利用可能であり、オンラインになったり、DAX Formatterを開く手間が省けます。ただし、フォーマットされた結果が複数行になる傾向があるため、DAX Formatterほど洗練されているとは言えませんが、この機能については今後の改善が約束されています。

  8. Copilotとの融合
    今後、DQVにもCopilotが登場するため、自然言語DAXメジャーを簡単に構築できるようになるでしょう。

    Power BIで利用するCopilotにはいくつか種類があり、今後更に増えていく可能性もあります。

DQVの難点

これまでDQVの利点について様々な点を見てきましたが、バージョン1ということもあり、まだまだ課題(機能だけでなく、使用方法に関する部分も含む)が存在します。以下にそれらをまとめます。

  1. DAXを書かない人にとって高度な機能となってしまう
    これは議論の余地がありますが、DAXをほとんど使用しない場合、DQVを活用する機会が限られるかもしれません。DAXを避けてPower BIの採用を見送る企業も存在しますが、他のBIツールでもビジネスロジック(=指標構築)を構築する必要がありますので、DAX以外の言語を使用してプログラミングする必要が出てきます。"BI(Business Intelligence)"という言葉が示す通り、ビジネスにおいてロジックを定義することが重要ですので、DAXの理解は依然として必要とされます。ただし、モデリングとの組み合わせが重要であり、これを理解している場合、DAXの学習はよりシンプルになる可能性が高いでしょう。
  2. DAX Studioで利用できる機能の一部が欠如している
    DQVの登場により、DAX Studioで利用される機能との重複が増えており、一部重要な機能が欠けていると言えます。例えば、DQVにはDAX Studioに標準搭載されている以下の機能が含まれていません:(a) 上級者向けの機能であるServer Timingsや、(b) DAXが苦手な人向けにUIベースで簡単にDAXクエリを生成できるQuery Builderなどです。前者は上級者向けの機能であり、後者はDAXに不慣れな人向けにUIで簡単にDAXクエリを作成できる機能です。今後、これらの機能がDQVに組み込まれることが期待されます。
  3. DAXクエリの一部が定義できない
    今後搭載予定ですが、下記重要な機能が現時点使用できないので、今後のアップデートに期待したいところです(以下全ては対応予定)。
  4. 機能に対する改善ポイント
    • DAXのオートコンプリート機能(IntelliSense)がアグレッシブすぎる
    • 結果数値の桁区切り表示(今後、改善予定)
      DQVの結果には桁区切りが反映されず、数字の書式設定が表示されるとベストです。さらに、「メジャーツール」というタブがDQVには表示されないため、選択されたメジャーの書式を確認する手段がありません。データビューと同じように、「メジャーツール」をリボンで表示することが重要だと言えます。
    • DAXメジャーを一括反映できない
      この機能は今後追加される予定ですが、現時点(2023年11月時点)では、モデルに対する変更が検知された場合にDAXメジャーを新たに作成または更新する際に、1つずつクリックする必要があります。将来的には、一括で適用できるようになることが分かっています。
    • Tabular Editorのように、DAXメジャーを定義する際、書式まで設定できない
      一括で書式を定義できる場合、作業効率が大幅に上昇するため、今後のアップデートに期待したいところです。
    • RANKX関数をフォーマットするとエラーになる場合がある
      以下はクエリを「実行」した結果のフォーマットですが、ご覧の通り、モデル内の全てのDAXメジャーの結果が何事もなく返されていることが分かります。

      しかし、一度フォーマットを適用すると、カンマの位置が誤って設定されたためエラーが発生することがあります。

      このエラーは私が発見したもので報告済ですが、今後修正されるでしょう。

まとめ

DQVは今後、Power BI Desktopを使ってDAXを学ぶ人にとってゲームチェンジングな機能と言えるでしょう。昨年(2022年)のPower BIで登場した新機能の中で、私にとって最もインパクトの大きかったものはフィールド パラメーターでしたが、今年(2023年)は間違いなくDQVになるでしょう。

提供されるべき機能がすべて搭載され、これらを使いこなすには少し時間がかかるかもしれませんが、DAXを学ぶ上で有用な機能が追加されました。ぜひこの機能に慣れることをお勧めします。

次回はDQVに関する基本的なTipsについて紹介していきたいと思います。

*1:グローバル規模でMicrosoft Fabricに関する製品アドバイザリー、テクニカルアドバイザリーを行う専門集団。CAT = Customer Advisory Team、元々はPower BI CATであったが、Microsoft Fabricの登場により当該名称へリネーム