了解如何创建 指标视图 来集中业务逻辑,并一致地跨报表图面定义关键绩效指标。 本教程演示如何使用目录资源管理器 UI 创建指标视图。 若要使用 SQL 定义指标视图,请参阅 使用 SQL 创建和管理指标视图 和 CREATE VIEW。
先决条件
- 你必须对源数据对象具有
SELECT特权。 - 在要在其中创建指标视图的架构中,你必须拥有
CREATE TABLE特权 和USE SCHEMA特权。 - 您还必须在架构的父目录上拥有
USE CATALOG特权。 - 可以对运行 Databricks Runtime 17.2 或更高版本的 SQL 仓库或其他计算资源拥有使用权限。
元存储管理员或目录所有者可以授予所有这些权限。 具有 MANAGE 权限的架构所有者或用户可以在架构上授予您 USE SCHEMA 和 CREATE TABLE 权限。
步骤 1:选择数据源
指标视图可以基于表、视图或 SQL 查询。 本教程使用orders目录samples架构中的tpch表。
单击
工作区边栏中的目录。
使用架构浏览器中的搜索栏查找
samples.tpch.orders表。 单击 订单 可显示表详细信息。单击创建>指标视图。
输入名称或保留名称为
orders_metric_view。选择你有权访问的目录和架构。
步骤 2:定义指标
UI (公共预览版)
单击 “筛选器 ”以添加行级筛选器。 选择
source.o_orderdate为列, 大于 作为运算符,并输入1990-01-01作为值,然后单击 “关闭”。单击“ 维度 ”选项卡。
单击 O Orderdate:输入
Order Month作为 显示名称。 在 “表达式 ”字段中,单击“ 自定义 ”,然后输入DATE_TRUNC('MONTH', o_orderdate)。点击 O Orderstatus:输入
Order Status作为 显示名称。 单击“ 自定义 ”并输入以下表达式:CASE WHEN o_orderstatus = 'O' THEN 'Open' WHEN o_orderstatus = 'P' THEN 'Processing' WHEN o_orderstatus = 'F' THEN 'Fulfilled' END单击 “O Orderpriority: 订单优先级:输入
Order Priority为名称”。 单击“ 自定义 ”并输入SPLIT(o_orderpriority, '-')[1]。通过选择其他维度并单击“ 删除”来删除其他维度。
单击“ 度量值 ”选项卡。
单击 “计数”:“订单计数”,输入
Order Count作为“显示名称”。 单击“ 自定义 ”并输入COUNT(1)。单击+添加来添加每个附加度量:
总收入:输入
Total Revenue为名称。 在表达式下,单击 "Builder" 并选择字段source.o_totalprice,然后在"计算"下选择 SUM。
每个客户的总收入:输入
Total Revenue per Customer为名称。 单击“ 自定义 ”并输入SUM(o_totalprice) / COUNT(DISTINCT o_custkey)。开放式订单的总收入:输入
Total Revenue for Open Orders为名称。 单击“ 自定义 ”并输入SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')。
若要预览度量值,请单击度量值名称旁边的
预览 ”。 预览显示所选窗口和时间维度的度量结果。 例如,以下预览将显示使用当前窗口在订单月份上的总收入。
单击 “预览 ”选项卡。
单击“ 保存”。
指标视图可供任何对指标视图具有至少 SELECT 特权的用户使用。 有关管理权限的详细信息,请参阅 Unity 目录特权和安全对象 。 若要详细了解用户如何查询此指标视图,请参阅 “查询指标”视图。
创建指标视图后,可以在“ 概述 ”页中查看源、筛选和指定的度量值和维度。
YAML
此指标视图的 YAML 定义包含以下顶级字段:
-
version: 默认值为1.1. 这是指标视图规范的版本。 -
source:samples.tpch.orders是完全限定的表名。 此指标视图中的所有维度和度量值都使用指定的表作为数据源。 -
filter: 此视图上的所有查询都会返回 1990 年 1 月 1 日之后的o_orderdate记录。 -
dimensions:Order Month、Order Status和Order Priority定义为维度。 -
measures:定义了四个度量值(Order Count、Total Revenue和Total Revenue per CustomerTotal Revenue for Open Orders),每个度量值都指定了聚合表达式。
使用目录和架构下拉菜单选择要保存指标视图的位置。 查询用户必须至少
USE CATALOGUSE SCHEMA具有访问指标视图的权限。输入指标视图的名称。 度量视图的名称可以包括字母数字值和下划线。
将编辑器的内容替换为以下定义:
version: 1.1 source: samples.tpch.orders filter: source.o_orderdate > '1990-01-01' dimensions: - name: Order Status expr: |- CASE WHEN o_orderstatus = 'O' THEN 'Open' WHEN o_orderstatus = 'P' THEN 'Processing' WHEN o_orderstatus = 'F' THEN 'Fulfilled' END display_name: Order Status - name: Order Month expr: "DATE_TRUNC('MONTH', o_orderdate)" display_name: Order Month - name: o_orderpriority expr: "SPLIT(o_orderpriority, '-')[1]" display_name: Order priority measures: - name: count expr: COUNT(1) display_name: Order Count - name: Total Revenue expr: SUM(source.o_totalprice) display_name: Total Revenue - name: Total Revenue per Customer expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey) display_name: Total Revenue Per Customer - name: Total Revenue for Open Orders expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O') display_name: Total Revenue For Open Orders单击 “创建” 。
指标视图可供任何对指标视图具有至少 SELECT 特权的用户使用。 有关管理权限的详细信息,请参阅 Unity 目录特权和安全对象 。 若要详细了解用户如何查询此指标视图,请参阅 “查询指标”视图。
创建指标视图后,可以在打开的“ 概述 ”选项卡中查看源、筛选和指定的度量值和维度。
步骤 3:添加说明、注释和标记
可以在 YAML 定义中或通过目录资源管理器中的 “概述 ”选项卡添加说明、注释和标记。
目录浏览器
- 在目录资源管理器中单击指标视图。
- 单击 “添加说明 ”,向指标视图的元数据添加说明。
- 若要添加批注,请将鼠标悬停在要在其中添加批注的行的 “批注 ”列上。
- 若要将标记添加到度量值或维度,请将鼠标悬停在要在其中添加标记的 Tags 列上。
- 若要将标记添加到指标视图,请单击页面右侧的 “添加标记 ”。
YAML
直接在 YAML 定义中添加 comment 字段。 有关语法详细信息,请参阅 版本规范更改日志 。
version: 1.1
comment: 'Orders metrics for revenue analysis'
dimensions:
- name: Order Month
expr: DATE_TRUNC('MONTH', o_orderdate)
comment: 'Month when the order was placed'
measures:
- name: Total Revenue
expr: SUM(o_totalprice)
comment: 'Sum of all order prices'
步骤 4:(可选) 编辑 YAML 定义
可以查看 YAML 定义,并从“ 详细信息 ”选项卡打开 YAML 编辑器。
单击“详细信息”。
点击...更多行以查看完整定义。
单击 “编辑” 以打开 YAML 编辑器。
添加或删除维度或度量值。 单击“ 保存”。
步骤 5:(可选) 设置权限
指标视图遵循与其他 Unity 目录安全对象相同的分层权限模型。 如果指标视图存储在预期使用者具有读取访问权限的架构中,则不需要任何新权限。 可以从“ 权限 ”选项卡显式分配对指标视图的权限。
单击“权限”。
使用 UI 授予和撤销其他 Azure Databricks 用户的权限。
有关详细信息,请参阅 授予对象的权限。
查询指标视图
可以从工作区的内置 SQL 编辑器或任何可访问 Azure Databricks 上的数据的 SQL 编辑器 查询指标视图。 若要查询指标视图,您必须连接到 SQL 仓库或其他运行 Databricks Runtime 17.2 或更高版本的计算资源。
下面的示例查询将评估所列出的三个度量值,并对 Order Month 和 Order Status 进行聚合。 它返回按 Order Month. 排序的结果。
所有措施都必须包装在 MEASURE 函数中。 请参阅 measure 聚合函数。
SELECT
`Order Month`,
`Order Status`,
MEASURE(`Count`),
MEASURE(`Total Revenue`),
MEASURE(`Total Revenue per Customer`)
FROM
orders_metric_view
GROUP BY ALL
ORDER BY 1 ASC
后续步骤
使用 SQL 创建指标视图后,请浏览以下相关主题: