メトリクスビューをPower BIに接続する
プレビュー
この機能は プライベート プレビュー段階です。試用については、Databricksの連絡先にお問い合わせください。
Unity Catalog メトリクスビューをセマンティックモデルとして Power BI にパブリッシュできます。セマンティックモデルはメトリクスビューを参照するため、Power BI はメトリクスビュー自体をクエリーし、ベーステーブルを読み取りません。メトリクスビューのディメンションは Power BI テーブルの列になり、適格なメトリクスビューメジャーは DAX(Data Analysis Expressions)計算メジャーになります。
要件
メトリックビューをPower BIに発行する前に、次のことを確認してください。
- お使いのワークスペースはプライベートプレビューに登録されており、ワークスペース管理者が [メトリクスビューをPower BIに公開する] プレビューを有効にしています。「Databricks プレビューの管理」を参照してください。
- Power BIサービスへの公開の要件を満たしています。要件を参照してください。
- ソーステーブルとスキーマに対する読み取りアクセス権、およびメトリクスビューを管理または表示する権限があること。Unity Catalog の権限リファレンスを参照してください。
- メトリクスビューはメトリクスビューの要件を満たしています。
メトリクスビューの要件
メトリクスビューの定義は、次の要件を満たしている必要があります。
- メジャーの入力 : メジャーが使用するすべての列は、
fieldsセクションでディメンションとして宣言されます。Power BIはセマンティックモデルテーブルの列からメジャーを計算するため、ディメンションとして公開されていない列を読み取るメジャーは削除されます。 - 名前 :すべてのメジャーとディメンションには名前があります。YAML バージョン 1.0 で許可されている名前のないメジャーは削除されます。命名規則については、式から列名を導出するを参照してください。
次のメトリクスビューは公開の準備ができています。unit_price列とquantity列はどちらもフィールドとして宣言されているため、total_revenueを計算できます。
version: 1.1
name: sales_metrics_mv
source: main.sales.orders
fields:
- name: unit_price
expr: unit_price
- name: quantity
expr: quantity
measures:
- name: total_revenue
expr: SUM(unit_price * quantity)
次のメトリクスビューは公開できる状態ではありません。total_revenueメジャーの値はquantityですが、quantityはfieldsで宣言されていないため、total_revenueは破棄されます。
version: 1.1
name: sales_metrics_mv
source: main.sales.orders
fields:
- name: unit_price
expr: unit_price
measures:
- name: total_revenue
expr: SUM(unit_price * quantity)
メトリクスビューの発行
Catalog Explorerからメトリクスビューを1回公開するか、ジョブのPower BIタスクでスケジュール設定して公開できます。両方のオプションで、セマンティックモデルのストレージモードを選択するよう求められます:
- DirectQuery (default) : Power BIは、ビジュアルが実行されるときに、Databricks SQLを介してクエリーをメトリクスビューに送信します。Unity Catalogのアクセス制御とセキュリティポリシーが適用されます。
- インポート : Power BIはデータをセマンティックモデルにコピーします。Unity Catalog のアクセス制御とセキュリティ ポリシーは、インポートされたデータには適用されません。公開後、Power BIでセマンティックモデルを更新してください。更新されるまで、モデルには空の値が表示され、ビジュアルとXML for Analysis (XMLA) Endpoint はデータをクエリーできません。
各モードの情報については、Power BIサービスのセマンティックモデルモードをご覧ください。
オプション1:Catalog Explorerから1回公開する
DatabricksからPower BIサービスにパブリッシュするのステップに従ってください。テーブルの代わりに、メトリクスビューまたはそれを含むスキーマを選択します。 データセット Mode で、DirectQuery または Import を選択します。
オプション2:ジョブでスケジュールに従って公開する
セマンティックモデルをデータパイプラインの一部としてパブリッシュまたは更新するには、このオプションを使用します。ジョブの Power BI タスクで説明されているように Power BI タスクを構成し、次のプロパティを設定します。
- 更新するテーブル : メトリクスビュー、またはそれを含むスキーマを選択します。
- Power BIクエリーモード :DirectQueryまたはImportを選択します。
- 更新の種類 :(オプション) DirectQuery を選択した場合は、 メタデータの更新 を選択します。
ジョブが実行されるたびに、Power BI タスクはターゲット ワークスペースのセマンティック モデルを発行または更新します。
セマンティックモデルを検証する
Power BI DesktopまたはPower BIサービスでセマンティックモデルを開き、次の点を確認します。
- メトリクスビューは、メトリクスビューと同じ名前(例:
sales_metrics_mv)の単一のテーブルとして表示されます。 - ディメンションは列として表示されます。結合されたテーブルのディメンションは、同じテーブルの列として表示されます。Power BIは、結合のリレーションシップを作成しません。
- メジャーは、
[total_revenue]のように、明示的なDAX計算メジャーとして表示されます。
Power BIフィールドには、メトリクス ビューのディメンションおよびメジャー名が保持されます。メジャーにUnity Catalogのdisplay_nameが含まれている場合、名前はPower BIフィールドの注釈として保存されますが、Power BIには表示されません。Unity Catalogの説明は、通貨およびパーセンテージ形式とともに、Power BIフィールドのプロパティにマップされます。表示名と形式を定義する方法については、メトリクス ビューのエージェント メタデータを参照してください。
セマンティックモデルを更新する
メトリクスビューの定義を変更した後、同じセマンティックモデルにメトリクスビューを再度公開します。再公開すると、既存のDAXメジャーが更新され、新しく宣言されたメジャーとディメンションが追加され、既存のフィールドが保持されます。
ジョブでPower BIタスクを使用して公開する場合、スケジュールされた各ランはメトリクスビューを再公開するため、追加のステップを実行する必要はありません。
サポートされるメトリクスビューパターン
適格なメトリクスビューメジャーは DAX に変換されます。次のメトリクスビューパターンがサポートされています。
- 標準集計:
SUM、COUNT、AVG、MIN、MAX、MEDIAN、STDDEV、VARIANCE。COUNT(*)、COUNT(1)、COUNT(DISTINCT x)、COUNT_IFが含まれます。 SUM(price * qty)やSUM(CASE ...)のような、集計内の行レベルの式。SUM(x) FILTER (WHERE p)などのフィルタリングされた集計。SUM(a) / SUM(b)など、集計の比率。MEASURE(x)MEASURE(x) FILTER (WHERE p)を含む、同じメトリクスビュー内の構成。current、trailing(inclusiveを含む)、cumulative、またはall範囲のウィンドウメジャー(offsetを使用するウィンドウを含む)、およびウィンドウメジャーから派生したメジャー。DATE_TRUNC('MONTH', source.order_date)などの派生ディメンション。- 結合テーブルのディメンション。
- フィルター、インラインSQLソース、および
materializationブロックを表示します。 - ワイルドカードディメンション(
source.*や<join>.*など)。
サポートされていないパターンについては、制限事項を参照してください。
制限
メトリクス ビューをPower BIに公開する場合、次の制限があります。
一部のメトリックビューの発行に失敗する
以下のメトリクスビューの公開に失敗しました:
- ディメンションのないメトリクスビュー :
fieldsで少なくとも1つのディメンションを宣言してください。 - マルチファクトメトリックビュー :ブリッジテーブルなどで複数のファクトテーブルを結合するメトリックビュー。ディメンションテーブルへの結合を伴うメトリックビューがサポートされています。
- 同じメジャーを異なる方法で定義するメトリックビュー :同じ名前で定義されているものの定義が異なるメジャーを両方のメトリックビューで定義すると、2つのメトリックビューを一緒に公開することはできません。同一のメジャー定義はMergeされます。いずれかのメジャーの名前を変更するか、各メトリックビューを独自のセマンティックモデルに公開します。
一部のメジャーとディメンションがドロップされます
公開プロセスは、以下のパターンを使用するメジャーとディメンションを削除し、残りのメトリクスビューを公開します。
パターン | 破棄されるもの |
|---|---|
先行ウィンドウメジャー | メジャー |
年初来のような、複数のウィンドウ指定を持つメジャー | メジャー |
順序列がディメンション内の他の列と組み合わされているウィンドウメジャー | メジャー |
次のように、集計の外側で列が読み取られます。 | メジャー |
メトリクス入力として使用される構造体フィールドまたはネストされた結合パス | メジャー |
1対多の結合に関する行カウント | メジャー |
| メジャー |
削除されたメジャーに基づいて構築されたメジャー | メジャー |
自分自身を参照する循環メジャー | メジャー |
| メジャー |
ワイルドカードメジャー( | メジャー |
パーセンタイル、ユーザー定義関数(UDF)、および地理空間関数 | メジャー |
構造体、マップ、配列、およびバリアントディメンション列 | ディメンションとそれを使用するメジャー |
メトリクスビューのパラメーター | パラメーターとそれを読み取るメジャー |