共用方式為


使用 SQL 建立和管理度量檢視

本頁說明如何使用 SQL 建立和管理度量檢視。

先決條件

  • 您必須擁有 SELECT 源資料物件的許可權。
  • 您必須在要建立度量視圖的綱目中擁有CREATE TABLE權限USE SCHEMA權限
  • 您也必須擁有USE CATALOG結構描述父目錄的許可權。
  • 可以使用運行在 Databricks Runtime 17.2 或更新版本上的 SQL 倉儲或其他計算資源的使用許可權。

中繼存放區管理員或目錄擁有者可以授與您所有這些許可權。 具有 MANAGE 許可權的架構擁有者或使用者,可以在該架構上授予你 USE SCHEMACREATE TABLE 許可權。

建立度量檢視

CREATE VIEW 子句一起使用 WITH METRICS ,以建立度量檢視。 度量視圖必須在內文中使用有效的 YAML 規格來定義。 度量檢視的來源資料可以是資料表、檢視或 SQL 查詢。

下列度量檢視的來源資料是大多數 Azure Databricks 部署的範例目錄中可用的 samples.tpch.orders 資料表。 下列 SQL DDL 會在目前的目錄和結構描述中建立一個名為orders_metric_view的指標視圖。 若要指定不同的目錄和結構描述,請使用 Unity 目錄三層命名空間。

您可以將表格層級和資料行層級註解新增至度量檢視定義。

CREATE OR REPLACE VIEW orders_metric_view
WITH METRICS
LANGUAGE YAML
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  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')
$$

變更指標視圖

若要變更與度量視圖相關聯的定義,請使用 ALTER VIEW。 下列範例會將註解新增至度量檢視中的 orders_metric_view 維度和量值。

ALTER VIEW orders_metric_view
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  source: samples.tpch.orders
  filter: o_orderdate > '1990-01-01'
  dimensions:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', o_orderdate)
      comment: "Month of order"
    - name: Order Status
      expr: CASE
        WHEN o_orderstatus = 'O' then 'Open'
        WHEN o_orderstatus = 'P' then 'Processing'
        WHEN o_orderstatus = 'F' then 'Fulfilled'
        END
      comment: "Status of order: open, processing, or fulfilled"
    - name: Order Priority
      expr: SPLIT(o_orderpriority, '-')[1]
      comment: "Numeric priority 1 through 5; 1 is highest"
  measures:
    - name: Order Count
      expr: COUNT(1)
    - name: Total Revenue
      expr: SUM(o_totalprice)
      comment: "Sum of total price"
    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
      comment: "Sum of total price by customer"
    - name: Total Revenue for Open Orders
      expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
      comment: "Potential revenue from open orders"
$$

對度量檢視授與權限

度量檢視是 Unity Catalog 的可保護物件,並遵循與其他檢視相同的許可權模型。 權限是階層式的,因此中繼存放區、目錄或結構描述的權限會串聯至其中包含的物件。 下列範例會授與群組中 data_consumers 使用者查詢度量檢視所需的最低權限。

GRANT SELECT ON orders_metric_view to `data-consumers`;

若要深入瞭解 Unity 目錄中的許可權,請參閱 管理 Unity 目錄中的許可權。 若要深入瞭解如何建立和管理群組,請參閱 群組

取得度量視圖定義

使用 DESCRIBE TABLE EXTENDED 搭配選用的 AS JSON 參數來查看度量視圖的定義。 參數 AS JSON 是選擇性的。 省略它能提供對人類讀者更友好的輸出,而包括它則更適合機器使用者。 下列範例會傳回描述度量檢視及其元件的 JSON 字串。

DESCRIBE TABLE EXTENDED orders_metric_view AS JSON

捨棄指標檢視

使用 DROP VIEW 語法刪除度量檢視。

DROP VIEW orders_metric_view;

後續步驟

現在您已使用 SQL 建立度量檢視,請探索下列相關主題:

查詢和取用度量檢視

進階指標檢視功能

替代創建方法

治理與安全性