30
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DAX Studio利用ガイド

Last updated at Posted at 2020-03-03

DAX Studio利用ガイド

概要

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

image.png

DAX Studioとは

DAX Studioとは、Microsoft社製品(Power BI , Analysis Servicesなど)で実行される表形式モデルに対して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をダウンロードして、インストールを実施。

image.png

DAX Studioの機能

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

1. DAX Studioの基本

1-1. 画面の説明

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

image.png

  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にて開きます。

image.png

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

image.png

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

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

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

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

image.png

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

image.png

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

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

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

image.png

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

image.png

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

image.png

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

image.png

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

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

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

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

image.png

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

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

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

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

image.png

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

image.png

2. クエリの記載

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

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

image.png

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

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

image.png

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

image.png

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

image.png

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

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

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

image.png

  1. 情報を確認します。

image.png

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

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

科目数のカウント = 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]

実行結果

image.png

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

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

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

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

image.png

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

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

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

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

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

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

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

image.png

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

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

image.png

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

image.png

<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"を選択します。

image.png

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

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

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

image.png

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

image.png

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

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

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

image.png

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

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

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

image.png

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

uploading-0

関連項目

なし。

参考

30
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?