BIツールからメトリクス ビューをクエリする
ベータ版
この機能はベータ版です。
BI互換モードを使用すると、外部BIツールからUnity Catalogビューをクエリできます。 有効にすると、 Databricks BIツールによって生成されたクエリを書き換えて、メトリクス ビューのメジャーを正しく評価します。
このページでは、BI互換モードを有効にする方法、その仕組み、サポートされているシナリオ、および既知の制限事項について説明します。
要件
Microsoftは 、DatabricksへのPower BIコネクタ からBI互換モードのオプションを削除しました。このコネクタオプションを使用するレポートは、もはや機能しません。Power BIでのDatabricksメトリクス ビューのサポートの復元をリクエストするには、 Fabric Ideas コミュニティの投稿に投票してフィードバックを提供してください。 Power BIの代替として、メトリクス ビューでネイティブに動作するDatabricks AI/BIダッシュボードを検討してください。
- Databricks Runtime 18.0 以降を実行するクラスター。
- DatabricksへのパススルーSQLまたはDirectQuery接続をサポートするBIツール。
- BIツール内でセッションレベルのSQL構成を実行する機能(例えば、初期SQLスクリプトや起動コマンドによる)。
BI互換モードを有効にする
BI互換モードを有効にするには、セッション開始時に次のSQL構成コマンドを実行してください。
SET spark.databricks.sql.metricView.bi.compatibilityMode.enabled = true;
設定方法は、使用するBIツールによって異なります。例えば、Tableauでは、接続ダイアログの「 初期SQL」 フィールドを使用できます。
BI互換モードは、設定したセッションでのみ適用されます。新しい接続ごとに、設定を再度行う必要があります。
DirectQueryモード
BI互換モードでは、クエリがDatabricks SQLエンジン上で実行される必要があります。お使いのBIツールがインポートモードと直接クエリモードの両方を提供している場合は、直接クエリ(またはライブ接続)を使用してください。そうすることで、クエリがDatabricksに渡され、書き換えメカニズムが適用されます。
BI互換モードの仕組み
メトリクス ビューは、 BIツールに対して通常のテーブルとして表示されます。 BI互換モードが有効になっている場合、 Databricks BIツールによって生成されたクエリを書き換えて、メトリクスビューを正しくクエリします。
BI互換モードでは、2種類のクエリが自動的に処理されます。
- 集計クエリ : BIツールが標準の集計関数 (
SUMなど) を使用してメジャーに対するクエリを生成すると、 BI互換モードはこれらの集計を書き換えて、メトリクス ビューのメジャー定義に準拠させます。 メジャー列の集計タイプには、必ずSUM使用してください。SQLエンジンは常に正しい基盤となる計測ロジックを適用します。 - データプレビューとスキーマ検出 :BIツールが非集計データ(列プレビューやデータサンプルなど)を要求すると、メジャー列はエラーではなくnull値を返します。ディメンション列は通常どおり値を返します。
サポートされているシナリオ
以下のBIツール機能は、BI互換モードを有効にすると、ほとんどのBIツールで動作します。
シナリオ | 説明 |
|---|---|
基本的な測定指標の可視化 | 集計結果を表示するには、グラフまたはテーブルの値フィールドでメジャーを使用します。 |
フィルター | ビジュアル内のディメンション列またはメジャー列にフィルターを適用します。 |
寸法スライサー | ディメンション列をスライサーまたはフィルターのコントロールとして使用する。 |
クロスフィルタリング | いずれかのビジュアル内の値をクリックすると、同じページ内の関連するビジュアルが絞り込まれます。 |
ドリルスルー | 特定の値で絞り込まれた詳細ページをドリルダウンします。 |
トップNフィルタリング | 列ごとに上位または下位N個の値を表示します。 |
データプレビュー | データプレビューとスキーマ検出を活用する。プレビュー画面では、測定値がnullとして表示されます。 |
視覚的な計算 | クライアント側で、既に集計済みの結果(例えば、累計値やランキング)に対して適用される計算。 |
寸法と測定値
メトリクス ビューには、メジャーとディメンションという 2 種類の列が含まれています。 レポートを作成する際には、その違いを理解することが重要です。
- メジャー : メジャーの集計ロジックはメトリクス ビューで定義されます (例:
SUM(price * quantity)またはCOUNT(DISTINCT customer_id))。 BIツールでは、メジャー列の集計設定を常にSUMにしてください。SQLエンジンは、適切な計測ロジックを自動的に適用します。別の集計が必要な場合は、メトリクス ビュー自体のメジャー定義を変更します。 BIツール側で集計方法を変更しないでください。 - 寸法 :寸法は通常のテーブル列と同様に動作します。ディメンションには、集計、グループ化、フィルタリング、ソート、バケット化など、あらゆる標準的なBI操作を適用できます。数値フィールドがディメンション(メジャーではない)として機能する場合、すべての標準的な集計タイプはそのフィールドに対して正常に機能します。
ベストプラクティス
- データセットには常に 1 つのメトリクス ビューを含めてください。 メトリクス ビューはセマンティック定義です。
- ディメンション列を整理するためのフォルダを作成します(たとえば、日付ディメンションの各ディメンション列ごとに「日付」フォルダを作成します)。
- 寸法名を、ユーザーにとって分かりやすい名前に変更してください。
- 数値ディメンション列を、集計型ではないサマリータイプに変更します。
- 各メジャー列に対して
SUM()を使用してラッパーメジャーを作成し、元のメジャー列を非表示にします(例:Total Sales = SUM('Store Sales'[total_sales]))。 - 対策を専用のフォルダに整理してください。
- ビジュアルにはラッパーメジャーのみを使用してください。
制限事項
BI互換モードでは、BIツールがクエリを生成および処理する方法に対する制御が制限されます。以下の制限事項が適用されます。
メジャーの集計にはSUMのみを使用してください。
メジャー列の集計タイプは、常にSUMに設定してください。すべての集計関数( SUM 、 COUNT 、 MIN 、 MAX )は基となるメジャー定義に書き換えられるため、すべて同じ結果を返します。別の集計タイプを選択すると、予期しない動作が発生する可能性があります。
AVG一部のBIツールは内部的にAVGSUM / COUNTとして計算し、どちらも同じメジャー値を返すため、1.0が表示されます。- カウント(重複なし)、標準偏差、分散、中央値は、書き換えメカニズムと互換性のないクエリパターンを生成し、エラーまたは誤った結果を引き起こします。
別の集計が必要な場合は、メトリクス ビューでメジャー定義を変更します。 すべての集計タイプは、メトリクス ビュー定義内で完全にサポートされています。
非加算指標の総計
一部のBIツールは、個別のクエリを発行するのではなく、クライアント側でグループごとの値を再集計することで総計を計算します。これは加法的な尺度(例えば、 SUM(revenue) )に対して正しい結果をもたらします。なぜなら、局所的に再集計すると正しい答えが得られるからです。
ただし、非加算的な尺度(たとえば、 SUM(revenue) / COUNT(DISTINCT customer) 、またはDISTINCTを含む比率、パーセンテージ、または式)の場合、事前にグループ化された比率を合計することは、データセット全体で比率を計算することと数学的に等価ではないため、総計に誤った値が表示される可能性があります。
測定列の定量的スライサー
メジャー列に対する定量的(範囲)スライサーは、期待どおりに動作しない場合があります。一部の BI ツールでは、スライダーの範囲を決定するためにメジャーのMINとMAXクエリする場合がありますが、両方とも同じ基となるメジャー値に書き換えられ、範囲が単一のポイントに集約されます。指標に対するフィルターは引き続き機能します。影響を受けるのはレンジスライサーのみです。
測定値はカテゴリ値または次元値として使用できません
メジャー列をカテゴリ値として使用する場合(たとえば、軸、凡例、スライサーとして使用する場合)、クエリは失敗し、次のエラーが返されます。
Measure columns cannot be used in GROUP BY clause or as categorical values. We recommend wrapping them with an aggregate function such as SUM() for the expected behavior.
複数の測定値を含む計算フィールド
単一のメジャーを参照する計算フィールドは正しく機能します。一部のBIツールは、まず集計結果を取得し、その後クライアント側で計算を実行します(例えば、収益を低、中、高のカテゴリに分類するなど)。
ただし、単一の集計内で複数のメジャー列を組み合わせる式(例: SUM(m1 + m2) )は、BI互換モードでは書き換えられず、エラーや予期しない結果が発生します。
メトリクス ビューと他のテーブルの結合
メトリクス ビューをBIツールの他のテーブルと結合することはできません。 メトリクス ビューのデータを別のテーブルと結合する必要がある場合は、結合をメトリクス ビューの定義自体に組み込んでください。
マトリクス化されたメトリクス ビュー
BI互換モードでは、マテリアライゼーションを使用したメトリクスビューはサポートされておらず、予期しない結果が生じる可能性があります。