通过

创建和编辑指标视图

本页介绍如何使用目录资源管理器 UI 或 SQL 创建和编辑 指标视图 。 目录资源管理器 UI 包括低代码编辑器和 YAML 编辑器。 如果不想编写 SQL,低代码 UI 是一个很好的起点。

有关更复杂的示例,请参阅 教程:使用联接生成完整的指标视图

先决条件

在创建或编辑指标视图之前,请验证你是否具有以下权限:

  • SELECT 对用作源的 类似表的资产 或 SQL 查询的特权。
  • CREATE TABLEUSE SCHEMA 权限在您想要创建指标视图的架构中。
  • USE CATALOG 在父目录上的权限。
  • CAN USE 对运行 Databricks Runtime 17.3 或更高版本的 SQL 仓库或其他计算资源具有权限。

元存储管理员或目录所有者可以授予所有这些权限。 具有权限的架构所有者或用户 MANAGE 可以授予 USE SCHEMA 架构的权限和 CREATE TABLE 权限。

创建指标视图

可以使用目录资源管理器 UI、SQL 或 YAML 编辑器创建指标视图。

目录浏览器 UI

目录资源管理器低代码 UI 使你可以以交互方式定义维度和度量值,而无需直接编写 YAML。

  1. 单击“数据”图标。工作区边栏中的目录

  2. 使用搜索栏查找源表。 例如,搜索 samples.tpch.orders

  3. 单击表名称可显示表详细信息。

  4. 单击创建>指标视图。 在 “创建指标视图 ”对话框中,输入名称并选择目录和架构目标。 然后单击“创建”

    “创建指标视图”对话框。

  5. 如有必要,请单击 UI 以打开低代码编辑器。

定义维度

维度是用于分组和筛选的分类属性,例如订单月份或订单状态。 所有源列会被自动添加为维度。

  1. 单击“维度Add or plus iconAdd or plus icon”下的。
  2. 若要定义维度表达式,请在表达式字段中键入 SQL 表达式。 例如,键入 DATE_TRUNC('month', o_orderdate) 按月份对订单进行分组。
  1. (可选)输入 显示名称注释同义词格式标记格式 仅适用于数字、日期和日期/时间列。

定义度量值

度量值是生成业务指标的聚合表达式,例如总收入或订单计数。

  1. 单击添加或加号图标添加度量下。

  2. 在表达式字段中输入 SQL 聚合表达式。 例如,键入 SUM(o_totalprice) 以计算总收入。

  1. (可选)输入 显示名称注释同义词格式标记

    在指标视图 UI 中添加度量值。

    若要预览度量值,请单击度量值名称旁边的 “播放图标预览 ”。 预览显示所选时间窗口和维度的度量结果。

    在指标视图 UI 中预览度量值。

  2. 单击“ 保存”。

SQL

CREATE VIEW 子句一起使用 WITH METRICS 以创建指标视图。 请在 $$ 分隔符之间指定 YAML 定义:

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
  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"

    - name: o_orderdate
      expr: o_orderdate
      comment: "Original order date"

    - name: o_orderkey
      expr: o_orderkey
      comment: "Order key"

    - name: o_custkey
      expr: o_custkey
      comment: "Customer key"

    - name: o_orderpriority
      expr: o_orderpriority
      comment: "Order priority"

    - name: o_clerk
      expr: o_clerk
      comment: "Clerk"

    - name: o_shippriority
      expr: o_shippriority
      comment: "Ship priority"

    - name: o_comment
      expr: o_comment
      comment: "Order comment"

  measures:
    - name: Order Count
      expr: COUNT(1)
      comment: "Total number of orders"

    - name: Total Revenue
      expr: SUM(o_totalprice)
      comment: "Sum of all order prices"

    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
      comment: "Average revenue per unique customer"
$$

有关完整的 YAML 语法详细信息,请参阅 指标视图 YAML 语法参考

YAML 编辑器

  1. 单击“数据”图标。工作区边栏中的目录

  2. 使用搜索栏查找源表。 例如,搜索 samples.tpch.orders

  3. 单击表名称可显示表详细信息。

  4. 单击创建>指标视图。 在 “创建指标视图 ”对话框中,输入名称并选择目录和架构目标。 然后单击“创建”

    “创建指标视图”对话框。

  5. 单击 YAML 打开 YAML 编辑器。

  6. 输入 YAML 定义,然后单击“ 创建”。 以下定义在 SQL 选项卡上的示例中使用。

    version: 1.1
    comment: 'Orders KPIs for sales 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'
    
      - name: o_orderdate
        expr: o_orderdate
        comment: 'Original order date'
    
      - name: o_orderkey
        expr: o_orderkey
        comment: 'Order key'
    
      - name: o_custkey
        expr: o_custkey
        comment: 'Customer key'
    
      - name: o_orderpriority
        expr: o_orderpriority
        comment: 'Order priority'
    
      - name: o_clerk
        expr: o_clerk
        comment: 'Clerk'
    
      - name: o_shippriority
        expr: o_shippriority
        comment: 'Ship priority'
    
      - name: o_comment
        expr: o_comment
        comment: 'Order comment'
    
    measures:
      - name: Order Count
        expr: COUNT(1)
        comment: 'Total number of orders'
    
      - name: Total Revenue
        expr: SUM(o_totalprice)
        comment: 'Sum of all order prices'
    
      - name: Total Revenue per Customer
        expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
        comment: 'Average revenue per unique customer'
    

有关完整的 YAML 语法详细信息,请参阅 指标视图 YAML 语法参考

具有至少 SELECT 特权的任何用户现在可以查询指标视图。 若要了解有关管理权限的详细信息,请参阅 “设置权限”。

编辑指标视图

你必须是指标视图的所有者才能编辑其定义。 若要启用协作编辑,请将所有权转让给组。 请参阅 “启用协作编辑”。

目录浏览器 UI

  1. 在目录资源管理器中查找指标视图。
  2. 单击 “编辑” 以打开编辑器。
  3. 单击 UI 以查看低代码 UI。
  4. 单击要编辑的度量值或维度。 进行更改,然后单击“ 保存”。
  5. 若要添加新维度或度量值,请单击要编辑的节中的“添加”或“加号”图标 有关定义新度量值和维度的详细说明,请参阅 “创建指标”视图

SQL

使用更新的 YAML 定义中的ALTER VIEW:

ALTER VIEW catalog.schema.orders_metric_view
AS $$
version: 1.1
comment: "Orders KPIs for sales 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"

measures:
 - name: Order Count
   expr: COUNT(1)
   comment: "Total number of orders"

 - name: Total Revenue
   expr: SUM(o_totalprice)
   comment: "Sum of all order prices"

 - name: Total Revenue per Customer
   expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
   comment: "Average revenue per unique customer"

 - name: Total Revenue for Open Orders
   expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
   comment: "Revenue from open orders"
$$

YAML 编辑器

  1. 导航到目录资源管理器中的指标视图。
  2. 单击 “编辑 ”,然后单击 “YAML ”打开 YAML 编辑器。
  3. 修改 YAML 定义,然后单击“ 保存”。

后续步骤

创建指标视图后,使用以下资源查询、管理和扩展工作。

查询和使用

管理和治理

高级功能

示例