Unity Catalog メトリクス ビュー
プレビュー
この機能は パブリック プレビュー段階です。
メトリクスビューは、一貫性があり、再利用可能で、管理されたコアビジネスメトリクスを一元的に定義および管理する方法を提供します。 このページでは、メトリクスビュー、メトリクスビューの定義方法、アクセスの制御方法、ダウンストリームツールでのクエリ方法について説明します。
メトリクスビューとは?
メトリクスビューは、複雑なビジネスロジックを一元的な定義に抽象化するため、組織は重要業績評価指標を一度定義すれば、ダッシュボード、 Genieスペース、アラートなどのレポートツール全体で一貫して使用できます。 メトリクス ビューは YAML 形式で定義され、 Unity Catalogで登録されます。 これらは、SQL またはカタログ エクスプローラ UI を使用して作成できます。他のテーブルやビューと同様に、メトリクスビューは SQLを使用してクエリできます。
メトリクス ビューは複雑なデータ関係をモデル化でき、スタースキーマとスノーフレークスキーマの両方をサポートします。 これにより、正規化されたディメンションテーブルの複数のレベルを介して結合できます。たとえば、注文から製品、カテゴリへ結合できます。このアプローチは、正規化されたデータ環境におけるより柔軟でスケーラブルなメトリクス設計をサポートします。
メトリクスビューは、データソースに基づいて、または結合ロジックが使用されている場合は複数のソースに基づいて、 ディメンション と メジャー を含む 一連のメトリクス定義 を指定します。メトリクス ビュー定義の source
は、ビュー、テーブル、または SQL クエリです。 ジョインは、ビューとテーブルでのみサポートされます。
ディメンション は、製品名、顧客タイプ、地域などのデータを整理およびフィルタリングするカテゴリ属性です。ディメンションは、メジャーを効果的に分析するために必要なラベルとグループ化を提供します。
メジャー は、ビジネス アクティビティを集計する値で、通常は SUM()
や AVG()
などの集計関数を使用します。メジャーはディメンションとは独立して定義されるため、ユーザーは実行時に任意のディメンションにメジャーを集約できます。 たとえば、 total_revenue
メジャーを定義すると、顧客、仕入先、または地域ごとに集計できます。メジャーは、レポートやダッシュボードで KPI としてよく使用されます。
次のコードブロックは、メトリクスビューでメジャーとディメンションを定義する方法の例を示しています。
version: 0.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定義には、次の6つのトップレベルフィールドが含まれています。
version
: デフォルトは0.1
です。これがメトリクスビューの仕様のバージョンです。source
: メトリクスビューのソース データ。これは、テーブルのようなアセットまたは SQL クエリにすることができます。joins
: 随意。スタースキーマとスノーフレークスキーマの結合がサポートされています。filter
: 随意。すべてのクエリに適用される SQL ブール式。WHERE
句に相当します。dimensions
: ディメンション定義の配列 (ディメンション名と式を含む)。measures
: 集計式カラムの配列。
メトリクスビューはコンポーザブルであるため、階層化された再利用可能なロジックを 1 つのビューで構築できます。ディメンションは以前に定義されたディメンションを参照でき、メジャーは任意のディメンションまたは以前に定義されたメジャーを参照できます。新しいディメンションまたはメジャーを定義するときに、メトリクス ビューで定義された結合から列を参照することもできます。
次の例では、 Databricks UI を使用してメトリクスビューを作成する方法について説明します。 CREATE VIEWを使用したメトリクスビューの定義に関する情報については、SQL を参照してください。
メトリクスビューの作成方法を示す完全な例については、「 メトリクスビューの作成」を参照してください。
メトリクスビューの表示または編集
メトリクスビューに対する SELECT
権限を持つ人は誰でも、詳細なYAML定義を表示できます。 メトリクスビューの所有者である場合は、定義を編集できます。 詳細を表示したり、既存のメトリクスビューを編集したりするには:
- サイドバー
カタログ をクリックします。
- 確認するメトリクスビューの名前をクリックします。
- 編集 をクリックして YAML エディターを開きます。
メトリクス ビュー YAML リファレンスを参照してください。ALTER VIEWを使用したメトリクスビューの編集に関する情報については、SQL を参照してください。
メトリクスビューでデータソースを結合する
結合は、ファクトテーブルからディメンションテーブルへの直接結合(スタースキーマ)と、ファクトテーブルからディメンション、そしてサブディメンションへのトラバース結合の両方をサポートし、正規化されたディメンションテーブル(スノーフレークスキーマ)間でのマルチホップ結合を可能にします。Snowflake 結合は、コンピュート 17.1 以降を使用している場合にのみサポート Databricks Runtime 。
メトリクス ビューの権限を管理する
メトリクス ビューは、 Unity Catalog セキュリティ保護可能なオブジェクトであり、他のビューと同じ権限モデルに従います。 Unity Catalog の特権とセキュリティ保護可能なオブジェクトを参照してください。
メトリクスビューの利用
メトリクスビューは、標準ビューと同じ方法でクエリを実行できます。 SQLSQLウェアハウスまたはDatabricks Runtime 16.4 以降を実行している他のコンピュート リソースに接続されている任意の エディターからクエリを実行します。メトリクスビュークエリのすべてのメジャー評価では、 MEASURE
集計関数を使用する必要があります。
詳細と構文の詳細については、集計関数measure
を参照してください。
また、 Databricks ワークスペース全体でメトリクスビューを使用することもできます。 詳細については、関連するドキュメントを参照してください。
制限
メトリクスビューには、以下の制限が適用されます。
- メトリクス ビューは Delta Sharingをサポートしていません。
- レイクハウスモニタリングはサポートされていません。
- データ分類 ( ベータ版) はサポートされていません。
- クエリ時の JOIN はサポートされていません。CTE を使用してデータソースを結合します。
SELECT *
はサポートされていません。- メジャーを再集計することはできません。たとえば、
SUM(MEASURE(measure_name))
のような式はサポートされていません。集計は基本項目にのみ適用し、集計メジャーには適用しません。 - 結合されたテーブルには、
MAP
型の列を含めることはできません。 - ウィンドウ・メジャーと集約ベース・フィールドを
MEASURE
式で組み合わせることはできません。