指标视图提供了一种集中方法,用于定义和管理一致、可重用和管理的核心业务指标。 本页介绍指标视图、如何定义指标视图、控制访问并在下游工具中查询它们。
什么是指标视图?
指标视图将复杂的业务逻辑抽象化为集中式定义,使组织能够定义关键绩效指标一次,并在仪表板、Genie 空间和警报等报告工具中一致地使用这些指标。 指标视图以 YAML 格式定义,并在 Unity 目录中注册。 可以使用 SQL 或目录资源管理器 UI 创建它们。 与任何其他表或视图一样,可以使用 SQL 查询指标视图。
为何使用指标视图
与在创建时锁定聚合和维度的标准视图不同,指标视图将度量值定义与维度分组分开。 这样,就可以定义一次指标,并在运行时灵活地跨任何维度查询指标,而查询引擎会自动生成正确的计算。
指标视图提供主要优势:
- 跨团队和工具标准化指标定义,以防止不一致。
- 处理复杂的度量,比如在标准视图中无法安全重新聚合的比率和不同计数。
- 通过支持具有多级联接的星型和雪花型架构(例如,订单→产品→类别)来实现灵活的分析。
- 简化用户体验, 同时保持 SQL 透明度和治理。
示例:
假设你想要分析不同地理级别的每个不同客户的收入。 使用标准视图时,需要为每个分组(州、区域、国家/地区)创建单独的视图,或者提前使用 GROUP BY CUBE() 和筛选所有组合。 这些解决方法会增加复杂性,并导致性能和治理问题。
使用指标视图,可以定义一次指标(收入之和除以不同的客户计数),用户可以按任何可用的地理维度进行分组。 查询引擎在后台重写查询以执行正确的计算,而不考虑数据的分组方式。
Components
指标视图指定一组指标定义,这些定义包括基于数据源的维度和度量值;如果使用联接逻辑,则指定多个源。 在度量视图定义中的 source 可以是视图、表或 SQL 查询。 仅视图和表支持联接。
维度是一个分类属性,用于组织和筛选数据,例如产品名称、客户类型或区域。 维度提供有效分析度量值所需的标签和分组。
度量值是汇总业务活动的值,通常使用聚合函数(例如 SUM() 或 AVG())。 度量值可以应用于源表或视图中的一个或多个基字段,或引用先前定义的维度和度量值。 度量值的定义独立于维度,允许用户在运行时按任何维度聚合度量值。 例如,定义total_revenue度量值可启用依据customer、supplier或region的聚合。 度量通常用作报表和仪表板中的 KPI。
访问和编辑指标视图
将指标视图注册到 Unity Catalog。 对指标视图具有至少 SELECT 权限的用户可以使用目录资源管理器 UI 访问详细信息。
在目录资源管理器 UI 中查看详细信息
在目录资源管理器中查看度量视图:
- 点击边栏中的
目录。
- 浏览可用数据或使用搜索栏按名称搜索指标视图。
- 单击指标视图的名称。
- 使用选项卡查看有关指标视图的信息:
- 概述:显示指标中定义的所有度量值和维度以及已定义的任何语义元数据。
- 详细信息:显示指标视图的完整 YAML 定义。
- 权限:显示可以访问指标视图、其权限以及定义权限的包含数据库对象的所有主体。
- 世系:显示相关资产,例如表、笔记本、仪表板和其他指标视图。
- 见解:在过去 30 天内,对指标视图进行的查询和访问指标视图的用户按频率顺序列出,最频繁的在顶部。
查询指标视图
可以像标准视图一样查询指标视图。 从附加到 SQL 仓库或运行受支持运行时的其他计算资源的任何 SQL 编辑器运行查询。
查询度量值和维度
指标视图查询中的所有度量值都必须使用 MEASURE 聚合函数。 有关完整详细信息和语法,请参阅 measure 聚合函数。
注释
指标视图不支持 SELECT * 查询。 度量值是需要使用 MEASURE() 函数按名称显式引用的汇总,因此您必须明确指定要查询的维度和度量。
在查询过程中不支持 JOIN 操作。 要连接表:
- 在 YAML 规范中定义用于创建度量视图的 JOIN。 请参阅指标视图中的“使用联接”。
- 查询指标视图时,使用公用表表达式(CTE)联接源。 请参阅通用表表达式(CTE)。
以查询结果的形式查看详细信息
以下查询返回指标视图的完整 YAML 定义,包括度量值、维度、联接和 语义元数据。
AS JSON 参数是可选的。 有关完整的语法详细信息,请参阅 JSON 格式的输出。
DESCRIBE TABLE EXTENDED <catalog.schema.metric_view_name> AS JSON
完整的 YAML 定义显示在结果的 “查看文本 ”字段中。 每列都包含一个包含语义元数据的 元数据 字段。
查看指标视图
还可以在整个 Azure Databricks 工作区中使用指标视图。 有关详细信息,请参阅关联的文档:
局限性
以下限制条件适用于指标视图:
- 指标视图不支持 Delta Sharing 或数据剖析。
后续步骤
- 创建指标视图
- 在指标视图中使用语义元数据
- 在指标视图中使用联接
- 在指标视图中使用窗口度量值