DAX Studio利用ガイド


DAX Studio利用ガイド

概要

本資料にて、DAX Studioの基本的な利用方法を記載します。

DAX Studioとは

DAX Studioとは、Microsoft社製品(Power BI , Analysis Service)で実行される表形式モデルに対してDAXクエリを発行やモデル監視ができる3rd partyツールです。

SQL Server Data toolsやPower BI Desktopと比較すると、軽量な動作が特徴となっております。

接続可能なサービス

4種類のサービスに接続です。

  • Power BI Desktop
  • Power B サービス(Power BI Premiumのみ)
  • Azure Analysis Services、及び、SQL Server Analysis Services
  • SQL Server Data Tools(統合ワークスペースモードのみ)

※PowerPivotに接続することも可能ですが、Excelのアドオンとして実行する必要があります。

環境構築

サイトより、exeをダウンロードして、インストールを実施。

DAX Studioの機能

    1. DAX Studioの基本
    • 画面の説明
    • モデルへの接続
    • レイアウトの配置
    1. クエリの記載
    • クエリの記載方法の概要
    • 既存のメジャーの確認
    • TSVファイルでのアウトプット方法
    • クエリの実行モードを変更
    • パラメータを利用してクエリを実行する方法
    1. サーバー監視
    • モデルの情報確認
    • DMVによるデータ確認
    • クエリのプランの確認
    •  クエリ実行情報の確認
    1. その他

    - Power BI パフォーマンスアナライザーの実行(json)の表示

1. DAX Studioの基本

1-1. 画面の説明

下記の要素により構成されています。

  1. リボンコントロール/ファイルメニュー
  2. メタデータペイン
  3. クエリエディター
  4. アウトプットペイン
  5. ステータスバー

1-2. モデルへの接続

下記のサービスへの接続方法を提示します。

  1. Power BI Desktop への接続方法
  2. Power B サービス(Power BI Premiumのみ)への接続方法
  3. Azure Analysis Services、及び、SQL Server Analysis Servicesへの接続方法
  4. SQL Server Data Toolsへの接続方法
1. Power BI Desktop への接続方法

1-1. pbixファイルを、Power BI Desktopにて開きます。

1-2. DAX Studioを開き、"PBI/SSDT Model"にて開いたpbixファイル名を指定して、"Connect"を選択します。

1-3. モデルに接続できることを確認します。

2. Power BI サービス(Power BI Premiumのみ)への接続方法

2-1. Power BI サービスにおけるデータセットの設定を開き、"接続文字列"に記載のある項目をコピーする。

2-2. DAX Studioを開き、"Tabular Server"にて開いたコピーした値を指定して、"Connect"を選択します。

2-3. Power BI サービスのアカウントにてログインします。

2-4. モデルに接続できることを確認します。

3. Azure Analysis Services、及び、SQL Server Analysis Servicesへの接続方法

3-1. Azure Analysis Services、及び、SQL Server Analysis Servicesの接続先名をコピーします。

3-2. DAX Studioを開き、"Tabular Server"にて開いたコピーした値を指定して、"Connect"を選択します。

3-3. Power BI サービスのアカウントにてログインします。

3-4. モデルに接続できることを確認します。

4. SQL Server Data Tools(統合ワークスペースモード)への接続方法

4-1. モデルのソリューションファイルを、SQL Server Data toolsにて開きます。

4-2. DAX Studioを開き、"PBI/SSDT Model"にて開いたソリューション名を指定して、"Connect"を選択します。

4-3. モデルに接続できることを確認します。

1-3. レイアウトの配置

レイアウトを柔軟に変更することができます。

たとえば、操作画面の配置を柔軟に変更でき、DAX式を並べることも可能です。

  1. タブを、中央に表示される十字ボタン群の右側にドラッグします。

  1. DAX式が並んで表示されていることを確認します。

2. クエリの記載

2-1. クエリの記載方法の概要

  1. サービスの接続後、利用するモデルを選択します。

※新規クエリを開く際に、最も一番上にあるモデルを選択する仕様であるため、クエリ実行前にモデルを確認する必要があります。

  1. 関数の一部を入力することで、インテリセンス機能が有効となり、tabを選択することで選択可能です。

  1. メタデータをドラッグアンドドロップすることで、スキーマ名やテーブル名を入力することができます。

  1. 上部にある"Run"を選択します。

2-2. 既存のメジャーの確認

モデルに保存されているメジャーにおける下記情報を取得可能です。

項目名 説明
Define Measure 既存のメジャー定義情報を表示
Define Dependent Measures 依存するメジャーのメジャーを含めて定義情報を表示
Define and Expand Measure 依存するメジャーの内部関数を含めて定義情報を表示
Show Objects That Reference Measure 参照されているメジャーの情報を表示
  1. メジャーを右クリックし、表示したい項目を表示します。

  1. 情報を確認します。

※取得可能な情報のサンプル

下記のメジャーをの情報を取得します。

科目数のカウント = COUNTA('診療科目別一般病院数'[診療科目コード]) 

科目数のカウント_千単位 = [科目数のカウント] / 10^3 

[科目数のカウント_千単位]の"Define Measure"の情報

DEFINE 
MEASURE '診療科目別一般病院数'[科目数のカウント_千単位] = [科目数のカウント] / 10^3

[科目数のカウント_千単位]の"Define Dependent Measures"の情報

DEFINE 

---- MODEL MEASURES BEGIN ----
MEASURE '診療科目別一般病院数'[科目数のカウント] = COUNTA('診療科目別一般病院数'[診療科目コード])
---- MODEL MEASURES END ----

MEASURE '診療科目別一般病院数'[科目数のカウント_千単位] = [科目数のカウント] / 10^3

[科目数のカウント_千単位]の"Define and Expand Measure"の情報

DEFINE 
MEASURE '診療科目別一般病院数'[科目数のカウント_千単位] =  CALCULATE ( COUNTA('診療科目別一般病院数'[診療科目コード]) ) / 10^3

※式が長くなった場合に、適切に表示できないことがあるので注意が必要です。

[科目数のカウント]の"Show Objects That Reference Measure"の情報

SELECT 
 [OBJECT_TYPE] AS [Object Type], 
 [TABLE] AS [Object's Table], 
 [OBJECT] AS [Object], 
 [REFERENCED_TABLE] AS [Referenced Table], 
 [REFERENCED_OBJECT] AS [Referenced Object], 
 [REFERENCED_OBJECT_TYPE] AS [Referenced Object Type] 
FROM $SYSTEM.DISCOVER_CALC_DEPENDENCY 
WHERE [REFERENCED_OBJECT] = '科目数のカウント'
ORDER BY [OBJECT_TYPE]

実行結果

2-3. TSVファイルでのアウトプット方法

  1. "OUTPUT"にて、"File"を選択します。

  2. ファイルの保存先をします。

  3. クエリ結果が保存されていることを確認します。

2-4. クエリの実行モードを変更

パフォーマンス検証を実施する場合など、キャッシュを削除してからクエリを実行することが可能です。

  1. "RUN"にて、"Clear Cache then Run"を選択し、クエリを実行する。

2-5. パラメータを利用してクエリを実行する方法

"@[パラメータ名]"という記載を行うことで、パラメータに応じたクエリを実行できます。

パラメータ情報をクエリに記載することで、パラメータの入力作業が省略可能です。

  1. 下記のメジャーを記載します。
EVALUATE
    FILTER(
       '年マスタ',
       '年マスタ'[年] = @年
       )
  1. パラメータ値入力し、"OK"を選択する。

  1. クエリの結果を確認します。

  2. 再度クエリを実行し、パラメータ値を入力し、"Write Parameter XML"を選択します。

  1. XMLが追記されたクエリを実行して、結果を確認します。

<Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-analysis">  <Parameter>
    <Name>年</Name>
    <Value xsi:type="xsd: string">2014</Value>
  </Parameter>
</Parameters>

EVALUATE
    FILTER(
       '年マスタ',
       '年マスタ'[年] = @年
       )

3. サーバー監視

3.-1. モデルの情報確認

  1. "Advanced"タブにある"View Metrics"を選択します。

  1. データサイズ等のモデル情報を確認します。

3-2. DMVによるデータ確認

  1. "DMV"タブにある項目をドラッグアンドドロップします。

  1. 実行結果を確認します。

3-3. クエリのプランの確認

  1. "Home"タブにある"Query Plan"を選択します。

  2. クエリプランの結果を確認します。

3-4. クエリ実行情報の確認

本機能により、サーバーがクエリの処理に費やした合計時間等のデータを取得できます。取得可能な情報については、ドキュメントを参照してください。

  1. "Home"タブにある"Server Timing"を選択します。

  1. クエリ実行情報を確認します。

uploading-0

関連項目

なし。

参考