Unity Catalog メトリクス ビュー
プレビュー
この機能は パブリック プレビュー段階です。
メトリクスビューは、一貫性があり、再利用可能で、管理されたコアビジネスメトリクスを一元的に定義および管理する方法を提供します。 このページでは、メトリクスビュー、メトリクスビューの定義方法、アクセスの制御方法、ダウンストリームツールでのクエリ方法について説明します。
メトリクスビューとは?
メトリクスビューは、複雑なビジネスロジックを一元的な定義に抽象化するため、組織は重要業績評価指標を一度定義すれば、ダッシュボード、 Genieスペース、アラートなどのレポートツール全体で一貫して使用できます。 メトリクス ビューは YAML 形式で定義され、 Unity Catalogで登録されます。 これらは、SQL またはカタログ エクスプローラ UI を使用して作成できます。他のテーブルやビューと同様に、メトリクスビューは SQLを使用してクエリできます。
メトリクス ビューは複雑なデータ関係をモデル化でき、スタースキーマとスノーフレークスキーマの両方をサポートします。 これにより、正規化されたディメンションテーブルの複数のレベルを介して結合できます。たとえば、注文から製品、カテゴリへ結合できます。このアプローチは、正規化されたデータ環境におけるより柔軟でスケーラブルなメトリクス設計をサポートします。
メトリクスビューは、データソースに基づいて、または結合ロジックが使用されている場合は複数のソースに基づいて、 ディメンション と メジャー を含む 一連のメトリクス定義 を指定します。メトリクス ビュー定義の source
は、ビュー、テーブル、または SQL クエリです。 ジョインは、ビューとテーブルでのみサポートされます。
ディメンション は、製品名、顧客タイプ、地域などのデータを整理およびフィルタリングするカテゴリ属性です。ディメンションは、メジャーを効果的に分析するために必要なラベルとグループ化を提供します。
メジャー は、ビジネス アクティビティを集計する値で、通常は SUM()
や AVG()
などの集計関数を使用します。メジャーはディメンションとは独立して定義されるため、ユーザーは実行時に任意のディメンションにメジャーを集約できます。 たとえば、 total_revenue
メジャーを定義すると、顧客、仕入先、または地域ごとに集計できます。メジャーは、レポートやダッシュボードで KPI としてよく使用されます。
次の例は、メトリクス ビューでメジャーとディメンションがどのように定義されるかを示しています。
version: 1.1
source: samples.tpch.orders
filter: o_orderdate > '1990-01-01'
dimensions:
- name: Order Month
expr: DATE_TRUNC('MONTH', o_orderdate)
- name: Order Status
expr: CASE
WHEN o_orderstatus = 'O' then 'Open'
WHEN o_orderstatus = 'P' then 'Processing'
WHEN o_orderstatus = 'F' then 'Fulfilled'
END
- name: Order Priority
expr: SPLIT(o_orderpriority, '-')[1]
measures:
- name: Order Count
expr: COUNT(1)
- name: Total Revenue
expr: SUM(o_totalprice)
- name: Total Revenue per Customer
expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
- name: Total Revenue for Open Orders
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
メトリクス ビューと標準ビュー
標準ビューは、通常、特定のビジネス上の質問に答えるように設計されています。多くの場合、集計ロジックとディメンション グループが含まれており、ビューの作成時に指定する必要があります。これにより、ユーザーが元のビューに含まれていないディメンションをクエリする場合に問題が発生する可能性があります。比率や個別のカウントなど、より複雑なメジャーは、多くの場合、正しくない結果を返さずに再集計できません。
メトリクスビュー を使用すると、作成者は、ユーザーがデータをフィルタリングおよびグループ化する方法とは無関係に、メジャーとディメンションを定義できます。この分離により、システムはユーザーの選択に基づいて正しいクエリを生成すると同時に、一貫性のある一元化されたメトリクス ロジックを維持できます。
例
異なる地理的レベルにわたって個別の顧客ごとの収益を分析したいとします。標準ビューでは、州、地域、国などのグループごとに個別のビューを作成するか、 GROUP BY CUBE()
を使用して事前にすべての組み合わせをコンピュートし、後でフィルターする必要があります。 これらの回避策は複雑さを増し、パフォーマンスとガバナンスの問題を引き起こします。
メトリクスビューでは、メトリクスを一度定義するだけで、クエリ時に異なるディメンションでグループ化できます。 たとえば、 収益の合計を個別の顧客数で割った 値です。その後、ユーザーは使用可能な任意の地理ディメンションでグループ化できます。クエリ エンジンは、データのグループ化方法に関係なく、正しい計算を実行するために、バックグラウンドでクエリを書き換えます。
メトリクスビューの使用例
メトリクス ビューは、次の場合に有益です。
- チームやツール間でメトリクスの定義を標準化する必要があります。
- 安全に再集計できないメトリクス (比率や個別のカウントなど) を公開したい。
- ビジネスユーザー向けの柔軟なスライシングとフィルタリングを可能にしながら、SQLによる透明性とガバナンスを維持したいと考えています。
このアプローチは、不整合を防ぎ、重複を減らし、組織全体でビジネスメトリクスを操作する際のユーザーエクスペリエンスを簡素化するのに役立ちます。
メトリクスビューの定義
スキーマに対する CREATE TABLE
権限を持つ ユーザーは、メトリクスビューを作成できます。ソースオブジェクトに対する権限が少なくとも SELECT
つ必要です。メトリクスビューは、カタログエクスプローラUI の YAML エディターを使用するか、 SQLを使用して作成できます。
メトリクス ビューの YAML 定義には、次のトップレベル フィールドが含まれます。
version
: デフォルトは1.1
です。これは、メトリクス ビュー仕様のバージョンです。 バージョン仕様の変更ログを参照してください。source
: メトリクスビューのソース データ。これは、テーブルのようなアセットまたは SQL クエリにすることができます。joins
: 随意。スタースキーマとスノーフレークスキーマの結合がサポートされています。filter
: 随意。すべてのクエリに適用される SQL ブール式。WHERE
句に相当します。comment
: オプション。メトリクス ビューの説明。dimensions
: ディメンション定義の配列 (ディメンション名と式を含む)。measures
: 集計式カラムの配列。
メトリクスビューはコンポーザブルであるため、階層化された再利用可能なロジックを 1 つのビューで構築できます。ディメンションは以前に定義されたディメンションを参照でき、メジャーは任意のディメンションまたは以前に定義されたメジャーを参照できます。新しいディメンションまたはメジャーを定義するときに、メトリクス ビューで定義された結合から列を参照することもできます。
次の例では、 Databricks UI を使用してメトリクスビューを作成する方法について説明します。 CREATE VIEWを使用したメトリクスビューの定義に関する情報については、SQL を参照してください。
メトリクスビューの作成方法を示す完全な例については、「 メトリクスビューの作成」を参照してください。
メトリクスビューの表示または編集
メトリクスビューに対する SELECT
権限を持つ人は誰でも、詳細なYAML定義を表示できます。 メトリクスビューの所有者である場合は、定義を編集できます。 詳細を表示したり、既存のメトリクスビューを編集したりするには:
- サイドバー
カタログ をクリックします。
- 確認するメトリクスビューの名前をクリックします。
- 編集 をクリックして YAML エディターを開きます。
メトリクス ビュー YAML リファレンスを参照してください。ALTER VIEWを使用したメトリクスビューの編集に関する情報については、SQL を参照してください。
メトリクスビューでデータソースを結合する
結合は、ファクトテーブルからディメンションテーブルへの直接結合(スタースキーマ)と、ファクトテーブルからディメンション、そしてサブディメンションへのトラバース結合の両方をサポートし、正規化されたディメンションテーブル(スノーフレークスキーマ)間でのマルチホップ結合を可能にします。Snowflake 結合は、コンピュート 17.1 以降を使用している場合にのみサポート Databricks Runtime 。
メトリクス ビューでセマンティック メタデータを使用する
表示名、形式、同義語などのセマンティック メタデータは、ディメンションとメジャーに関する追加の情報とコンテキストを提供し、 AI/BIダッシュボードなどの視覚化ツールやGenie spacesなどのAIツールがメトリクス ビューをより有効に活用するのに役立ちます。 「メトリクス ビューでのセマンティック メタデータの使用」を参照してください。
メトリクス ビューの権限を管理する
メトリクス ビューは、 Unity Catalog セキュリティ保護可能なオブジェクトであり、他のビューと同じ権限モデルに従います。 Unity Catalog の特権とセキュリティ保護可能なオブジェクトを参照してください。
メトリクス ビューの表示
メトリクス ビューはUnity Catalogに登録されます。 メトリクス ビューに対して少なくとも SELECT 権限を持つユーザーは、カタログ エクスプローラー UI を使用するか、ビューをクエリすることによって詳細にアクセスできます。
カタログエクスプローラーUIで詳細を表示する
カタログ エクスプローラーでメトリクス ビューを表示するには:
- サイドバー
カタログ をクリックします。
- 利用可能なデータを参照するか、検索バーを使用してメトリクス ビューを名前で検索します。
- メトリクス ビューの名前をクリックします。
- タブを使用して、メトリクス ビューに関する情報を表示します。
- 概要 : メトリックで定義されているすべてのメジャーとディメンション、および定義されているすべてのセマンティック メタデータを表示します。
- 詳細 : メトリクス ビューの完全な YAML 定義を表示します。
- 権限 : メトリックス ビューにアクセスできるすべてのプリンシパル、その権限、および権限が定義されているデータベース オブジェクトを表示します。
- リネージ : テーブル、ノートブック、ダッシュボード、その他のメトリクス ビューなどの関連資産を表示します。
- 知見 : メトリクス ビューで行われたクエリと、過去 30 日間にメトリクス ビューにアクセスしたユーザーが、頻度の高い順にリストされ、最も頻度の高いものが上に表示されます。
クエリの結果として詳細を表示する
次のクエリは、メジャー、ディメンション、結合、セマンティック メタデータを含む、メトリクス ビューの完全な YAML 定義を返します。 完全な構文の詳細については、 JSON 形式の出力を参照してください。
DESCRIBE TABLE EXTENDED <catalog.schema.metric_view_name> AS JSON
完全な YAML 定義は、結果の [テキストの表示] フィールドに表示されます。各列には、セマンティック メタデータを保持する メタデータ フィールドが含まれています。
メトリクスビューの利用
メトリクスビューは、標準ビューと同じ方法でクエリを実行できます。 SQLSQLウェアハウスまたはDatabricks Runtime 16.4 以降を実行している他のコンピュート リソースに接続されている任意の エディターからクエリを実行します。メトリクスビュークエリのすべてのメジャー評価では、 MEASURE
集計関数を使用する必要があります。
詳細と構文の詳細については、集計関数measure
を参照してください。
また、 Databricks ワークスペース全体でメトリクスビューを使用することもできます。 詳細については、関連するドキュメントを参照してください。
制限
メトリクスビューには、以下の制限が適用されます。
- メトリクス ビューはDelta Sharingをサポートしていません。
- レイクハウスモニタリングはサポートされていません。
- データ分類(ベータ版) はサポートされていません。
- クエリ時の JOIN はサポートされていません。CTE を使用してデータ ソースに参加します。
SELECT *
サポートされていません。- メジャーを再集計することはできません。たとえば、
SUM(MEASURE(measure_name))
のような式はサポートされていません。集計は、集計メジャーではなく、基本フィールドにのみ適用します。 - 結合されたテーブルには
MAP
タイプの列を含めることはできません。 MEASURE
式では、ウィンドウ メジャーと集計された基本フィールドを組み合わせることはできません。