カタログ エクスプローラーには、 メトリック ビューを作成するためのビジュアル インターフェイスが用意されています。 フィールドとメジャーを、YAML 定義を書かずに対話的に定義できます。
このページでは、カタログ エクスプローラー UI でメトリック ビューを作成する手順について説明します。 結合と高度なメジャーのより複雑な例については、「 チュートリアル: 結合とデータ モデリングを使用してメトリック ビューを構築する」を参照してください。 既存の Tableau またはPower BIアセットに基づいてメトリック ビューを作成するには、「Genie Code を使用して Tableau または Power BI ファイルをインポートする」を参照してください。
前提条件
メトリック ビューを作成する前に、次のアクセス許可があることを確認します。
-
SELECTソースとして使用される テーブルに似た資産 または SQL クエリに対する特権。 - スキーマ内でメトリック ビューを作成できるように、
CREATE TABLEおよびUSE SCHEMAの特権を設定します。 -
USE CATALOG親カタログに対する権限。 -
CAN USEDatabricks Runtime 17.3 以降を実行している SQL ウェアハウスまたはその他のコンピューティング リソースに対するアクセス許可。
メタストア管理者またはカタログ所有者は、これらすべての特権を付与できます。
MANAGE権限を持つスキーマ所有者またはユーザーは、スキーマに対するUSE SCHEMAおよびCREATE TABLE権限を付与できます。
Note
メトリック ビューの作成は、Databricks Runtime 16.4 以降でサポートされています。 このページでは、Databricks Runtime 17.3 以降を必要とする機能を使用するため、この例では 17.3 が最小です。 個々の YAML 機能には、後でランタイムが必要な場合があります。 各機能の最小ランタイムについては、 メトリック ビューの機能の可用性に関する記事を参照してください。
メトリック ビューを作成する
次のいずれかの方法を使用して、カタログ エクスプローラーでメトリック ビューを作成します。
- UI エディター: [UI ] タブで、コードを記述せずに、フィールドとメジャーを対話形式で定義します。
-
YAML エディター:
<>ボタンをクリックして、定義を直接編集します。 構文については、 メトリック ビューの YAML 構文リファレンスを参照してください。 SQL ステートメントで YAML 定義を使用してメトリック ビューを作成することもできます。 YAML と SQL の両方の完全な例については、「 SQL または YAML でメトリック ビューを定義する」を参照してください。 -
Genie Code:
から Genie Code を開きます。右上隅にあるボタンをクリックし、自然言語で目的の内容を説明します。 Genie コードの使用を参照してください。
次の手順では、 UI タブと samples.tpch.orders テーブルを使用して、すべてのワークスペースで使用でき、売上分析メトリック ビューの例を作成します。 完成したメトリック ビューは、「 SQL または YAML でメトリック ビューを定義する」の定義と一致します。 このデータセットの詳細については、「 サンプル データセット」を参照してください。
手順 1: メトリック ビューを作成し、エディターを開く
- [
ワークスペースサイドバーのカタログ。
- 検索バーを使用して
samples.tpch.ordersを検索し、テーブル名をクリックします。 - [ 作成>メトリック ビュー] をクリックします。 [ メトリック ビューの作成 ] ダイアログで、名前を入力し、カタログとスキーマの変換先を選択して、[ 作成] をクリックします。
エディターが UI タブで開きます。エディターでは、すべてのソース列が [フィールド] タブに自動的に追加され、サンプル COUNT(*) メジャーが追加されます。
手順 2: 結合を追加
この例では、顧客属性をフィールドとして使用できるように、 customer テーブルを結合します。 結合を追加するには、エディターの右上隅にある結合ボタンをクリックします。
- ソースを結合するには、
samples.tpch.customerを選択し、[ 追加] をクリックします。 -
customerとして「」と入力します。 - ドロップダウンを使用して、結合条件を
source.o_custkey = customer.c_custkeyに設定します。 複数の結合列を追加するには、[ + 結合キー] をクリックします。 等値以外の条件を設定するには、[ 式 ] をクリックして条件を絞り込みます。 - 結合カーディナリティ で、多対一 を選択します。 カーディナリティの選択については、結合カーディナリティを参照してください。
- [クエリ パフォーマンス] で [最大1件の一致] を選択します。 各注文は最大 1 人の顧客と一致するため、この最適化は安全であり、YAML 定義に
at_most_one_match: true設定されます。 - 参加 をクリックします。
- [ フィールドの追加 ] ダイアログで、[ すべての列の追加 ] をクリックして、ソース テーブルからすべての列を動的にインポートします。 代わりに個々の列を追加する場合は、この手順 をスキップ します。 結合されたオブジェクトのフィールドがドロップダウンに表示され、ソースのフィールドが表示されます。
結合は、ソース テーブルを他のテーブルまたはクエリと結合します。 スター スキーマやスノーフレーク スキーマ、YAML パターンなど、結合モデリングの概念については、「 結合の操作」を参照してください。
手順 3: フィルターを定義する
このページの後の完全な YAML 定義 には、メトリック ビューを 1990 年 1 月 1 日以降の注文に制限するフィルターが含まれています。
Builder または Custom を使用して式を入力する
フィルター、フィールド、またはメジャーを定義するときは、[式] セクションの 2 つのオプションのいずれかを使用して 式 を設定します。
- ビルダー: コンテキスト対応のドロップダウンから選択すると、エディターによって SQL 式が作成されます。
- カスタム: SQL 式を直接入力します。
次の手順では、単純な列のフィルター処理、変換、集計に Builder を使用し、ビルダーが作成できない式 (ステートメントや構成済みメジャーなど) のCASEを使用します。
フィルターを定義するには:
- メトリック ビュー エディターの右上隅にある
とフィルターをクリックします。
- フィルター式を設定します。
-
Builder で、Column
source.o_orderdate、OperatorGreater than、選択します。 -
[カスタム] で、SQL 式の
source.o_orderdate > '1990-01-01'を記述します。
-
Builder で、Column
フィルターは、メトリック ビューを参照するすべてのクエリに適用されます。 フィルター モデリングの概念と YAML パターンについては、「 フィルターの適用」を参照してください。
手順 4: フィールドを追加する
フィルター、フィールド、またはメジャーを定義するときは、[式] セクションの 2 つのオプションのいずれかを使用して 式 を設定します。
- ビルダー: コンテキスト対応のドロップダウンから選択すると、エディターによって SQL 式が作成されます。 使用可能な選択肢は、列の種類と値に基づいて変わります。
- カスタム: SQL 式を直接入力します。
次の手順では、各式の複雑さに基づいて 2 つのオプションを切り替えます。 単純な列変換と集計には Builder を使用し、ステートメントや構成済みメジャーなど、Builder で作成できない式のCASE に切り替えます。
この例では、ソースから変換された 2 つの列と結合された customer テーブルの 1 つの列という 3 つのフィールドを定義します。 ディメンションとも呼ばれるフィールドは、通常のテーブル列のように動作します。 フィールドには、グループ化とフィルター処理に使用されるカテゴリ列、またはクエリ時に集計できる集計されていない数値列を指定できます。 モデリング フィールドの詳細については、「 フィールド」を参照してください。
エディターは、すべてのソース列を [ フィールド] タブに自動的に追加します。 この例と一致するには、必要のない列を削除して、 source.o_orderdate、 source.o_orderstatus、 customer.c_mktsegment のみを残します。
フィールドを削除するには:
- [ フィールド ] タブをクリックします。
- フィールド名の左側にあるチェック ボックスをオンにして、削除するフィールドを選択します。
- [削除] をクリックします。
個々のフィールドを削除するには、フィールド名の右側にある を使用します。
フィールドを編集するときに、メタデータを追加することもできます。
- 表示名: わかりやすいラベル。
- コメント: フィールドの説明。
- 類義語: AI ツールがフィールドを検出するのに役立つ代替名。 シノニムを参照してください。
- 書式: 値の表示方法を制御するカスタム データの書式設定。 書式は、数値、日付、および datetime 列でのみ使用できます。 形式の 仕様を参照してください。
- 管理タグ: 分類とガバナンスのための 管理タグ 。
各フィールドを定義するには、[ フィールド ] タブでその名前をクリックし、式を作成して、オプションのコメントを追加します。 変換を実行して結果を表示するには、[ Preview] をクリックします。
注文月: [ビルダー] をクリックします。 次に、
source.o_orderdateを選択し、月変換を適用してDATE_TRUNC('MONTH', source.o_orderdate)を生成します。 コメントMonth of orderを追加します。注文の状態: [ カスタム] をクリックします。 次に、コメント
Status of orderを追加し、次の式を入力します。CASE WHEN source.o_orderstatus = 'O' THEN 'Open' WHEN source.o_orderstatus = 'P' THEN 'Processing' WHEN source.o_orderstatus = 'F' THEN 'Fulfilled' END市場セグメント: ビルダーで、結合された
customer.c_mktsegmentテーブルからcustomer列を選択します。 コメントCustomer market segmentを追加します。
ステップ 5: 指標を追加する
この例では、3つの指標を定義します。 メジャーとは、総収益や注文数などのビジネス指標を算出する集計式です。 エディターは、 COUNT(*) メジャーを自動的に追加します。編集または削除できます。
メジャーを編集するときに、フィールドで使用できるのと同じメタデータである表示名、コメント、シノニム、書式、および管理タグを追加することもできます。
各メジャーを追加するには、[ メジャー ] タブの [ +] をクリックし、式を作成して、オプションのコメントを追加します。 集計を実行して結果を表示するには、[ Preview] をクリックします。 メジャーを追加すると、Genie の候補がメジャー エディター ウィンドウの上部に表示されます。候補をクリックして、そのメジャーを作成します。
-
注文数: ビルダーで、[ カウント ] 集計を選択して
COUNT(1)を生成します。 コメントTotal number of ordersを追加します。 -
合計収益: ビルダーで、
source.o_totalpriceと 合計 集計を選択して、SUM(source.o_totalprice)を生成します。 コメントSum of all order pricesを追加します。 -
顧客ごとの合計収益: [カスタム] に「
SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)」と入力します。 コメントAverage revenue per unique customerを追加します。
移動平均や実行合計などの時系列計算のウィンドウ メジャーを追加するには、メジャーの編集中に [ + ウィンドウ ] をクリックします。 「ウィンドウの寸法」を参照してください。
手順 6: メトリック ビューを保存する
保存 をクリックします。 完成したメトリック ビューは、「 SQL または YAML でメトリック ビューを定義する」の定義と一致します。
SQL または YAML でメトリック ビューを定義する
UI でメトリック ビューを構築する代わりに、CREATE VIEW句で WITH METRICS ステートメントを使用して、YAML または SQL で直接定義できます。 メトリック ビューの例の完全な定義を次に示します。 これは、samples.tpch.orders を samples.tpch.customer に結合したフィルター済みビューで、注文月、注文ステータス、顧客の市場セグメントのフィールドと、注文数、総収益、顧客当たりの収益のメジャーがあります。
Note
これらの例では、 fields キーワードを使用します。 低コード エディターでメトリック ビューをビルドすると、生成される YAML では、代わりに同等の dimensions キーワードが使用されます。
「フィールド」を参照してください。
YAML 定義
メトリック ビューを YAML で直接定義するには、次の定義を使用します。
YAML 定義を表示する
version: 1.1
comment: 'Orders KPIs for sales analysis'
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': source.o_custkey = customer.c_custkey
rely:
at_most_one_match: true
filter: source.o_orderdate > '1990-01-01'
fields:
- name: Order Month
expr: DATE_TRUNC('MONTH', source.o_orderdate)
comment: 'Month of order'
- name: Order Status
expr: |-
CASE
WHEN source.o_orderstatus = 'O' THEN 'Open'
WHEN source.o_orderstatus = 'P' THEN 'Processing'
WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
END
comment: 'Status of order'
- name: Market Segment
expr: customer.c_mktsegment
comment: 'Customer market segment'
measures:
- name: Order Count
expr: COUNT(1)
comment: 'Total number of orders'
- name: Total Revenue
expr: SUM(source.o_totalprice)
comment: 'Sum of all order prices'
- name: Total Revenue per Customer
expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
comment: 'Average revenue per unique customer'
YAML 構文の詳細については、 メトリック ビューの YAML 構文リファレンスを参照してください。
SQL ステートメント
SQL でメトリック ビューを作成するには、CREATE VIEW 句を使用して WITH METRICS ステートメントで YAML 定義をラップし、YAML を$$区切り記号の間に配置します。
SQL ステートメントを表示する
CREATE OR REPLACE VIEW orders_metric_view WITH METRICS LANGUAGE YAML AS
$$
version: 1.1
comment: "Orders KPIs for sales analysis"
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': source.o_custkey = customer.c_custkey
rely:
at_most_one_match: true
filter: source.o_orderdate > '1990-01-01'
fields:
- name: Order Month
expr: DATE_TRUNC('MONTH', source.o_orderdate)
comment: "Month of order"
- name: Order Status
expr: |-
CASE
WHEN source.o_orderstatus = 'O' THEN 'Open'
WHEN source.o_orderstatus = 'P' THEN 'Processing'
WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
END
comment: "Status of order"
- name: Market Segment
expr: customer.c_mktsegment
comment: "Customer market segment"
measures:
- name: Order Count
expr: COUNT(1)
comment: "Total number of orders"
- name: Total Revenue
expr: SUM(source.o_totalprice)
comment: "Sum of all order prices"
- name: Total Revenue per Customer
expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
comment: "Average revenue per unique customer"
$$
ワイルドカードを使用してフィールドとメジャーを一括インポートする
適用対象: YAML 仕様 1.1 を使用した Databricks Runtime 18.2 以降
すべてのフィールドを一覧表示する代わりに、 expr でワイルドカードを使用して、ソーステーブルまたは結合テーブルからすべての列をインポートできます。 これは、メトリック ビューでアップストリームアセットのすべての列を公開する場合に便利です。 Azure Databricksはソースから各列名を派生させるので、ワイルドカードのnameを省略します。 ワイルドカードを、明示的に定義されたフィールドやメジャーと組み合わせることができます。
次の定義では、ソースから 1 つを除くすべてのフィールドをインポートし、結合された customer テーブルからフィールドを追加し、明示的なメジャーを定義します。
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': source.o_custkey = customer.c_custkey
fields:
- expr: source.* EXCEPT (o_comment)
- name: Market Segment
expr: customer.c_mktsegment
measures:
- name: Order Count
expr: COUNT(1)
結合テーブル (customer.*) からすべての列をインポートする、構造体の拡張、名前の競合を解決するなど、完全なワイルドカード構文については、「ワイルドカードを使用した フィールドとメジャーの一括インポート」を参照してください。
Genie コードを使用する
Genie Code は AI アシスタントであり、エディターの右上隅にある から開きます。 自然言語で必要なものを記述すると、Genie Code によってメトリック ビューの定義が更新されます。 Genie Code はコンテキストに対応しています。 UI タブではエディターが更新され、YAML エディターでは YAML が挿入されます。
既存のメトリック ビューに1つのメジャーを追加するには、それを指定します。
自然言語の説明から完全なメトリック ビューを作成するには、Genie Code に説明します。 結果は、このページの 例 のような定義になります。正確なフィールド名とコメントは異なる場合があります。
Tip
Genie Code (エージェント モード) にこれを行うように指示します。
Create a metric view on samples.tpch.orders joined to samples.tpch.customer on o_custkey = c_custkey. Add a field for order month by truncating the order date to the month, a field for order status that maps 'O' to Open, 'P' to Processing, and 'F' to Fulfilled, and a field for the customer market segment. Add measures for the total number of orders, the total revenue as the sum of order price, and the total revenue per unique customer. Filter to orders placed after January 1, 1990.
Tableau または Power BI ファイルをインポートしてメトリック ビューを作成することもできます。 Genie Code を使用して Tableau または Power BI ファイルをインポートするを参照してください。
その他のリソース
メトリック ビューを作成したら、次のリソースを使用して、作業のクエリ、モデル化、管理を行います。
- クエリ メトリック ビュー: SQL エディター、ノートブック、ダッシュボード、アラートからメトリック ビューにクエリを実行します。
- モデル メトリック ビュー: モデル ソース、フィールド、メジャー、フィルター、結合。
- メトリック ビューの管理: アクセスを制御し、共同編集を有効にして、メトリック ビューのライフサイクルを管理します。
- メトリック ビュー YAML 構文リファレンス: 完全なメトリック ビュー YAML 仕様を参照します。