目錄檔案總管提供建立 度量視圖的視覺介面。 你可以互動式定義欄位和度量,而不必寫 YAML 定義。
本頁將逐步說明如何在目錄檔案總管介面中建立度量檢視。 若想看更複雜的連接與進階度量範例,請參考 教學:建立結合與資料建模的度量視圖。 若要建立基於現有 Tableau 或 Power BI 資產的度量檢視,請參考 Use Genie Code 匯入 Tableau 或 Power BI 檔案。
先決條件
在建立度量檢視前,請確認你擁有以下權限:
-
SELECT對於資料 表類資產 或作為來源的SQL查詢的權限。 -
CREATE TABLE以及USE SCHEMA你想建立度量視圖的結構中的權限。 -
USE CATALOG在父目錄上的權限。 -
CAN USE存取 SQL 倉庫或其他執行 Databricks Runtime 17.3 或以上版本的運算資源的權限。
元商店管理員或目錄擁有者可以授予所有這些權限。 結構擁有者或擁有 MANAGE 權限的使用者可以授予 USE SCHEMA 權限以及CREATE TABLE 權限於該結構。
Note
Databricks Runtime 16.4 及以上版本支援建立度量檢視。 此頁面使用的功能需要 Databricks Runtime 17.3 或更高版本,因此範例的最低版本為 17.3。 個別 YAML 功能可能需要較晚的執行時間。 關於每個功能的最小執行時間,請參見 「指標檢視功能可用性」。
建立度量檢視
在 Catalog Explorer 中,使用以下其中一種方法建立指標檢視:
- UI 編輯器:在 UI 分頁中,可以互動式定義欄位和度量,無需寫程式碼。
-
YAML 編輯器:點擊
<>按鈕即可直接編輯定義。 關於語法,請參見 Metric view YAML 語法參考。 你也可以在 SQL 語句中使用 YAML 定義來建立度量視圖。 欲了解 YAML 與 SQL 的完整範例,請參見 「定義 SQL 或 YAML 中的度量視圖」。 -
精靈代碼:從右上角的
按鈕開啟 Genie Code,並用自然語言描述你的需求。 請參見 使用精靈代碼。
以下步驟會利用每個工作區可用的 UI 分頁和 samples.tpch.orders 表格,建立銷售分析指標的範例檢視。 完成的度量檢視與 SQL 或 YAML 中定義的度量檢視相符。 欲了解更多資料集,請參閱 範例資料集。
步驟 1:建立度量檢視並開啟編輯器
- 點擊
在工作區側邊欄中的目錄。
- 使用搜尋欄找到
samples.tpch.orders,然後點擊表格名稱。 - 按一下建立>指標檢視。 在 「建立度量檢視 」對話框中,輸入名稱,選擇目錄與結構目的地,然後點擊 「建立」。
編輯器會開啟於 UI 標籤頁。編輯器會自動將所有來源資料行加入 Fields 標籤頁,並新增一個COUNT(*)範例度量。
步驟 2:新增連接
範例加入 customer 表格,使客戶屬性以欄位形式提供。 要新增加入,請點擊編輯器右上角的加入按鈕:
- 若要加入來源,請選擇
samples.tpch.customer並點擊 新增。 - 輸入
customer為 Join 名稱。 - 使用下拉選單將連接條件設定為
source.o_custkey = customer.c_custkey。 若要新增多欄連接欄位,請點擊 + 連接鍵。 若要設定除等式以外的條件,請點擊 表達 式並細化條件。 - 在 聯結基數下,選擇 多對一。 關於選擇基數的指引,請參見 「加入基數」。
- 在「查詢效能」下,選取 最多一個相符項目。 每個訂單最多匹配一位顧客,因此此優化安全且
at_most_one_match: true設定在 YAML 定義中。 - 點擊 加入。
- 在 「新增欄位 」對話框中,點選「 新增所有欄位 」,可動態匯入來源資料表中的所有欄位。 如果你想新增個別欄位, 請跳過 此步驟。 連接物件的欄位會顯示在下拉選單中,與來源欄位一同呈現。
連接將來源資料表與其他資料表或查詢結合。 關於連接建模概念,包括星形與雪花結構,以及 YAML 模式,請參見「與連接工作」。
步驟 3:定義濾波器
本頁後面完整的 YAML 定義 包含一個過濾器,將度量視圖限制於 1990 年 1 月 1 日後下單。
使用 Builder 或 Custom 輸入表達式
當你定義濾波器、場或測度時,你可以在 表達 式區塊中使用兩個選項之一來設定其表達式:
- 建構器:從情境感知下拉選單中選擇,編輯器會幫你組合 SQL 表達式。
- 自訂:直接輸入 SQL 表達式。
接下來的步驟會用 Builder 來做簡單的欄位篩選、轉換和聚合,而 Custom 則用來處理 Builder 無法組合的表達式,例如 CASE 語句和組合後的度量。
定義濾波器:
- 點擊
在度量檢視編輯器的右上角篩選。
- 設定濾波器表達式:
- 在 建構器中,選擇 欄位
source.o_orderdate、 運算元Greater than和 值1990-01-01。 - 在 自訂中,寫出 SQL 表達式
source.o_orderdate > '1990-01-01'。
- 在 建構器中,選擇 欄位
所有參考度量視圖的查詢都會有過濾器。 關於濾波器建模概念與 YAML 模式,請參見「套用濾波器」。
步驟 4:新增欄位
當你定義濾波器、場或測度時,你可以在 表達 式區塊中使用兩個選項之一來設定其表達式:
- 建構器:從情境感知下拉選單中選擇,編輯器會幫你組合 SQL 表達式。 可選選項會根據欄位類型和值而改變。
- 自訂:直接輸入 SQL 表達式。
接下來的步驟會根據每個表達式的複雜度在兩種選項間切換。 用 Builder 做簡單的欄位轉換和彙整,對於 Builder 無法組合的表達式(如語句和組合後的測度)則切換到 CASE。
範例定義了三個欄位:來自來源的兩欄轉換後欄位,以及連接 customer 表的一欄。 欄位(也稱為維度)的運作方式與一般表格欄位相同。 欄位可以是用於分組和篩選的類別欄位,或是查詢時可彙總的未彙總數字欄位。 欲了解更多關於場的建模,請參見「場」。
編輯器會自動將所有來源欄位加入至 Fields 分頁。 為了符合範例,移除不需要的欄位,使得只 source.o_orderdate剩 、 source.o_orderstatus和 customer.c_mktsegment 。
若要移除欄位:
- 點選 欄位 索引標籤。
- 點選欄位名稱左側的勾選框,選擇你想移除的欄位。
- 點選 刪除。
要刪除個別欄位,請使用 欄位名稱右側。
編輯欄位時,你也可以新增元資料:
- 顯示名稱:描述性標籤。
- 評論:對該領域的描述。
- 同義詞:幫助 AI 工具發現該領域的替代名稱。 詳見 同義詞。
- 格式:自訂資料格式,控制數值的顯示方式。 格式僅適用於數字、日期及日期時間欄位。 請參閱 格式規範。
- 受控標籤:用於分類與治理的受控標籤。
要定義每個欄位,請點擊欄位標籤中的名稱,建立其表達式,並加入可選的註解。 要執行變換並查看結果,請點擊 預覽」。
訂購月份:按一下 Builder。 然後,選擇
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。
步驟五:新增度量
這個範例定義了三個度量。 度量是產生商業指標的彙總表達式,例如總營收或訂單數量。 編輯器會自動新增一個 COUNT(*) 度量;你可以編輯或移除它。
編輯量值時,您也可以新增 顯示名稱、註解、同義詞、格式和 受治理標籤,這些都是 欄位 也可使用的相同中繼資料。
要新增每個測度,請在 「度量 」標籤中點選 +,建立其表達式,並加上可選的註解。 要執行彙整並查看結果,請點擊 預覽」。 當你新增測度時,Genie 建議會出現在測度編輯器面板的頂端;點擊建議以建立該指標。
-
訂單數:在建構器中,選擇Count彙總以產生
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 裡建立度量視圖,可以直接用 YAML 定義,或用 CREATE VIEW 帶有 WITH METRICS 子句的 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 語法細節,請參閱 Metric view YAML 語法參考。
SQL 語法
要在 SQL 中建立度量視圖,請將 YAML 定義包在含有 CREATE VIEW 子句的 WITH METRICS 陳述式中,並將 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"
$$
使用萬用字元大量匯入欄位與量值
適用於: Databricks Runtime 18.2 及以上版本,採用 YAML 規範 1.1
你不必列出每個欄位,而是可以在 expr 中使用萬用字元,匯入來源資料表或聯結資料表中的所有欄位。 當你想讓度量檢視揭露上游資產的每一欄時,這很有用。 在通配字元上省略name,因為 Azure Databricks 是從來源推導出每個欄位名稱。 你可以將萬用字元與明確定義的欄位和度量混合使用。
以下定義匯入來源中除一個欄位外的所有欄位,從連接 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 Code 是一款 AI 助理,您可以透過編輯器右上角的 按鈕開啟它。 用自然語言描述你想要的,Genie Code 會自動更新度量視圖的定義。 Genie Code 具備脈絡感知能力:在 UI 標籤頁中會為您更新編輯器中的內容,而在 YAML 編輯器中則會插入 YAML。
若要在現有度量視圖中新增單一測度,請描述它:
若要從自然語言描述建立完整的度量視圖,請用 Genie Code 描述。 結果是一個與本頁 範例 相似的定義;欄位名稱和註解可能會有所不同。
小提示
請告訴 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 規範。