13.7K Views
January 31, 24
スライド概要
Power BIやAnalysis ServicesにおけるTabular modelのパフォーマンス測定等に使用されるDAX Studioの解説
DAX Studioの紹介 最終更新: 2024/1/31 Fabric CAT: Eiki Sui
DAX Studioとは Power BIやExcelのAnalysis Serviceインス タンスに接続し、様々なメタデータ情報 を取得・分析できる外部ツール
DAX Studio 開発者 Darren Gosbell SENIOR PROGRAM MANAGER 2022年6月15日MS入社、オーストラリアにおけるPower BI CAT。 2011年からDAX Studioを開発し、現在に至る 2022/7/1時点、DAX Studioは既存バージョンで13.4万回のダウン ロード https://daxstudio.org/ SQLBI Marco Russo & Alberto Ferrari 公式サイト(英語) https://daxstudio.org/doc umentation/ 使い方(日本語 -Qiita) https://bit.ly/3bGtDoK MicrosoftのBIテクノロジーにおける先駆者。 DAX / Data Modelに関する技術ノウハウを提供するSQLBIを運 営。DAX Studioに対するコードチェックやUIデザインをサポート The Definitive Guide to DAXはDAXを学ぶ 全ての人が参考とするバイブル文献
外部ツール 外部ツールの概念 • 殆どがコミュニティワークによる外部ツール テクテク日記(外部ツールの 登録) https://marshal115.hatenablo g.com/entry/2022/05/27/181 736 外部ツール(公式) https://docs.microsoft.com/ power-bi/transformmodel/desktop-externaltools • 殆どがオープンソース • Power BIにおける効率化がメイン目的 • DAX Studioは古く(Power BIの登場前) から存在する最も重要な外部ツールの1つ • Analyze in ExcelやBravo for Power BI、 Tabular Editor 2, Tabular Editor 3等は有名
DAX Studioを使う DAX Studioを立ち上げる
接続可能な オプション 接続ツール 1. Power BI Desktop 2. Excel Power Pivot ◆ 通常、Power BIで使用する ことが多いため、以降は基 本的にPower BIをベースに 話を進めて行く 3. SSDT※1 4. Analysis Service 5. Azure Analysis Service 6. Power BI XLMA Endpoint※2 ※1 SQL Server のコンテンツの種類を設計・展開する開発ツール ※2 Power BI Premium or PPUライセンスが必要 接続オプション詳細(DAX Studio公式サイト) https://daxstudio.org/tutorials/getting-connected/
DAX Studioのインストール & 立ち上げ 1. DAX Studioをインストール https://daxstudio.org/ 2. DAX Studioの立ち上げ Power BIから立ち上げ Excelから立ち上げ DAX Studioから立ち上げ
Power BI から立ち上げ Power BIから立ち上げ 1. 対象Power BI Desktopを開く 2. 外部ツール > DAX Studio ◆ DAX Studioをインストール すると、Power BI Desktop の外部ツールに出現 ◆ DAX StudioとPower BI Desktopは可能な限り最新 バージョンをご使用下さい ※ データモデルがあることが前提
Excelから 立ち上げ Excelから立ち上げ 1. Excelを立ち上げる(Power Pivot Model必須) 2. アドイン > DAX Studio ◆ ExcelのデータモデルにDAX Studioを繋げる場合、必ず Excelを先に立ち上げること ※理由は後述
DAX Studio から立ち上げ ◆ DAX Studioから立ち上げる 場合、検索ウィンドウから サーチを行う ◆ Power BI DesktopのAnalysis Serviceインスタンスに対し て、接続を行う ◆ Excelは独自のインスタンス を持つため、DAX Studioか ら立ち上げた場合、接続不 可。必ずExcel内のアドイン からDAX Studioを立ち上げ る必要あり(ネットワーク ポートが異なるため) DAX Studioから立ち上げ 1. DAX Studioを立ち上げる
DAX Studioによる 主要な実践的機能 Power BI Desktopでは実現できな い、または、実現困難な機能
DAX Studioが 提供する主な 機能 メタデータ情報の表示 クエリパフォーマンスの測定 クエリエディタ機能 データの出力機能 機能紹介(公式 – 英語) https://daxstudio.org/docum entation/features/ クエリビルダー DAXのフォーマット機能
DAX Studioが提供する機能 メタデータ情報の表示 https://daxstudio.org/documentation/features/model-metrics/
DAX Studioが提供する機能 クエリパフォーマンスの測定 DAXの最適化 https://marshal115.hatenablog.com/entry/2022/02/24/181416
DAX Studioが提供する機能 クエリエディタ機能 DAX Studio公式解説 https://daxstudio.org/tutorials/writing-dax-queries/
DAX Studioが提供する機能 データの出力機能 ◆ 一般的な出力 ◆ バルク出力 https://marshal115.hatenablog.com/entry/2020/06/06/182918
DAX Studioが提供する機能 クエリビルダー https://daxstudio.org/documentation/features/query-builder/ ◆ クエリビルダーに より、Drag & DropだけでDAXク エリを生成するこ とができる ◆ ユースケースとし て、生成したクエ リで生データを出 力する
DAX Studioが提供する機能 DAXのフォーマット機能 DAX Formatterへリクエスト送信(ネットワーク必要) https://www.daxformatter.com/
DAX Studio 留意点 DAX Studioは初心者向けではなく、 中級~開発者向けのツール ※ 初心者でも使用可能
実用例 実践的な使い方
使用例: メタデータ情報の表示 モデル全体の概要確認 モデルのメタデータ情報を把握することで最適化の必要性を考慮 通常、Total Sizeは PBIXファイルよりも サイズが大きい 例:テーブル数=7、列数=61は最適な数字かどうか?
使用例: メタデータ情報の表示 モデルの細部を確認 概要把握から詳細へブレイクダウン カーディナリティが高いこれらの列は必要か? 削除したらDBサイズは減るのではないか?
使用例: クエリパフォーマンスの測定 クエリの最適化 パフォーマンスが40倍改善
使用例: クエリパフォーマンスの測定 手元PCのスペックチェック① テクテク日記 参照先 ※注 必ずデータモデルがあるpbix ファイルからDAX Studioを立ち 上げること
使用例: クエリパフォーマンスの測定 手元PCのスペックチェック② お使いのPCでPower BIをサクサク使えるかどうかの確認 DEFINE var _a = SELECTCOLUMNS(CALENDAR(1, 10000), “a”, [Date]) var _b = SELECTCOLUMNS(CALENDAR(1, 10000), “b”, [Date]) var _joined = CROSSJOIN( _a, _b ) var _result = COUNTROWS( _joined ) EVALUATE ROW("Result", _result ) ※ ヒント ◆ テスト時は他のアプリケーションを落としておくこと ◆ PCを電源に繋げた状態で試すこと
使用例: クエリエディタ機能 DAXの練習① DAX StudioでDAXの記述方法を学べる ① EVALUATEから ② DAXを記述 ③ F5で確認 DAX Studio公式解説 https://daxstudio.org/tutorials/writing-dax-queries/
使用例: クエリエディタ機能 DAXの練習② DAXクエリの動作確認をPower BIではなく、DAX Studio上で手軽に実現 【DAXクエリの解説】 1. Product[Category]に対し て、[全売上]と[FY2020売上] という2つの列を追加 2. 追加された当該2列で、 FY2020売上比率( =[FY2020売上] ÷ [全売上]) を算出 ※ DAX Studioで構築するDAXクエリ は全てテーブルベースの結果となる
使用例: クエリビルダー DAX初心者でも安心 【クエリビルダーの利点】 ◆ 初心者でも簡単にDAXクエリを 構築できる ◆ 自動的に構築されたクエリを勉 強することができる ◆ 好きな形でデータを出力できる (ガバナンス問題を考慮) ◆ Excelにこれらのクエリを転用で きる(下記ブログ参照) テクテク日記(Analyze in Excel) DAXクエリの応用
使用例: メタデータ情報の表示 VPAXの出力・インポート(最適化コンサル用) 1. DAX Studio > Advanced > Export Metrics > 保存 2. 空のDAX Studioを立ち上げる > Advanced > Import Metrics > .VPAXを 選択してインポート(下図) 3. 元データが入っていないモデル(メタデータ)のチェックに活用
データの出力 出力制限はないが、ローカルPCのスペッ ク次第。開発者のDarren氏は6億行(6GB) というデータを出力したことがある模様
使用例: データの出力機能 CSVファイルへ一括出力
使用例: データの出力機能 CSVファイルへ一括出力
使用例: データの出力機能 Databaseへ一括出力 書き込み権限があるSQLサーバーに対して、DAX Studioからバルク出力
使用例: データの出力機能 Databaseへ一括出力
使用例: データの出力機能 Databaseへ一括出力
使用例: データの出力機能 Databaseへ一括出力
使用例: データの出力機能 Databaseへ一括出力
使用例: データの出力機能 Databaseへ一括出力 Power BI Desktopで接続してみる
使用例: データの出力機能 Databaseへ一括出力
使用例: データの出力機能 DAX StudioからMクエリを抽出(DMV操作) Power BI Desktop / Power BI Serviceに接続し、下記コードを記入 ※注 1. DMV = Dynamic Management View モデルオブジェクト、サー バー操作、およびサーバー の正常性に関する情報を返 すクエリ 2. Power BI Serviceの場 合、Premium容量 or PPUが必要 3. 列を選ぶときは[]で括 る(select [Name] from $...) 参考文献 Chris Webb's blog
使用例: データの出力機能 DAX StudioからDAXクエリを抽出(DMV操作) SELECT MEASUREGROUP_NAME, MEASURE_NAME, EXPRESSION FROM $SYSTEM.MDSCHEMA_MEASURES WHERE MEASURE_AGGREGATOR = 0 ORDER BY MEASUREGROUP_NAME ※注 1. DMV = Dynamic Management View モデルオブジェクト、サー バー操作、およびサーバー の正常性に関する情報を返 すクエリ
使用例: その他 サーバー名(Port)の取得 Power BI Desktop等でDAX Studioを立ち上げる 2. エディタの右下のアイコン(下図)をクリック 1. 3. メモ帳等を立ち上げ、取得出来ていることを確認 4. ExcelやSSMSのサーバーに上記を入れると接続可能に Excel: 「データ」タブ > データの取得 > データベースから > Analysis Serviceから > サーバー名 > ペースト
使用例: その他 Analyze in Excel(Excelで分析)機能 DAX Studioから「Analyze in Excel」機能を使用可能 テクテク日記 Analyze in Excel ① https://marshal115.hatenablog.com/entry/2021/06/13/171554 Analyze in Excel ② https://marshal115.hatenablog.com/entry/2021/10/16/164259
主なリソース DAX Studio公式(英語) https://daxstudio.org/docum entation/ テクテク日記 https://marshal115.hatenablo g.com/ その他(日本語 -Qiita) https://bit.ly/3bGtDoK