本页介绍如何使用目录资源管理器 UI 或 SQL 创建和编辑 指标视图 。 目录资源管理器 UI 包括低代码编辑器和 YAML 编辑器。 如果不想编写 SQL,低代码 UI 是一个很好的起点。
有关更复杂的示例,请参阅 教程:使用联接生成完整的指标视图。
先决条件
在创建或编辑指标视图之前,请验证你是否具有以下权限:
-
SELECT对用作源的 类似表的资产 或 SQL 查询的特权。 -
CREATE TABLE和USE SCHEMA权限在您想要创建指标视图的架构中。 -
USE CATALOG在父目录上的权限。 -
CAN USE对运行 Databricks Runtime 17.3 或更高版本的 SQL 仓库或其他计算资源具有权限。
元存储管理员或目录所有者可以授予所有这些权限。 具有权限的架构所有者或用户 MANAGE 可以授予 USE SCHEMA 架构的权限和 CREATE TABLE 权限。
创建指标视图
可以使用目录资源管理器 UI、SQL 或 YAML 编辑器创建指标视图。
目录浏览器 UI
目录资源管理器低代码 UI 使你可以以交互方式定义维度和度量值,而无需直接编写 YAML。
单击
工作区边栏中的目录。
使用搜索栏查找源表。 例如,搜索
samples.tpch.orders。单击表名称可显示表详细信息。
单击创建>指标视图。 在 “创建指标视图 ”对话框中,输入名称并选择目录和架构目标。 然后单击“创建”。
如有必要,请单击 UI 以打开低代码编辑器。
定义维度
维度是用于分组和筛选的分类属性,例如订单月份或订单状态。 所有源列会被自动添加为维度。
- 单击“维度
Add or plus icon”下的。 - 若要定义维度表达式,请在表达式字段中键入 SQL 表达式。 例如,键入
DATE_TRUNC('month', o_orderdate)按月份对订单进行分组。
- (可选)输入 显示名称、 注释、 同义词、 格式或 标记。 格式 仅适用于数字、日期和日期/时间列。
定义度量值
度量值是生成业务指标的聚合表达式,例如总收入或订单计数。
单击
添加在度量下。在表达式字段中输入 SQL 聚合表达式。 例如,键入
SUM(o_totalprice)以计算总收入。
(可选)输入 显示名称、 注释、 同义词、 格式或 标记。
若要预览度量值,请单击度量值名称旁边的
预览 ”。 预览显示所选时间窗口和维度的度量结果。
单击“ 保存”。
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 编辑器
单击
工作区边栏中的目录。
使用搜索栏查找源表。 例如,搜索
samples.tpch.orders。单击表名称可显示表详细信息。
单击创建>指标视图。 在 “创建指标视图 ”对话框中,输入名称并选择目录和架构目标。 然后单击“创建”。
单击 YAML 打开 YAML 编辑器。
输入 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
- 在目录资源管理器中查找指标视图。
- 单击 “编辑” 以打开编辑器。
- 单击 UI 以查看低代码 UI。
- 单击要编辑的度量值或维度。 进行更改,然后单击“ 保存”。
- 若要添加新维度或度量值,请单击要编辑的节中的
。 有关定义新度量值和维度的详细说明,请参阅 “创建指标”视图 。
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 编辑器
- 导航到目录资源管理器中的指标视图。
- 单击 “编辑 ”,然后单击 “YAML ”打开 YAML 编辑器。
- 修改 YAML 定义,然后单击“ 保存”。
后续步骤
创建指标视图后,使用以下资源查询、管理和扩展工作。