帮你快速理解、总结文档立即下载

什么是语义模型

最近更新时间:2026-09-11 18:24:35
我的收藏

概述

语义模型(Semantic Model)是 DataBuddy 在物理表与业务消费之间引入的语义层(Semantic Layer) 。它把分散在数据湖各张表中的字段,按业务视角抽象为三类语义对象——关系模型(Model)、指标(Metric)和维度(Dimension) ,为 Buddy(AI Agent)、报表与下游应用提供一份口径统一、权限可控的语义入口。
本文介绍语义模型的设计目标、整体架构与权限模型,帮助您建立对语义层的整体认知。后续操作请参阅 创建语义模型、定义指标与维度 与 语义模型应用。

为什么需要语义层

在没有语义层的传统数仓中,常见的痛点是:
同一指标的口径不一致 :不同部门的"GMV"可能各自指 SUM(order_amount)SUM(pay_amount)SUM(pay_amount) WHERE order_status='paid',对账时反复扯皮。
业务分析师严重依赖数据团队 :每问一次「上海地区上周的客单价」都要重新写 SQL、申请底表权限。
底表权限与业务消费深度耦合 :业务方为了用一个指标,不得不申请其依赖的所有底表 Select 权限,权限授予与回收都很重。
AI 取数难以自动化 :自然语言问数若直接走 NL2SQL 路径,不仅幻觉率高,而且每次都要解决建表、关联、字段语义等问题。
语义层把这些问题集中在一处治理:
一次定义、随处消费——指标、维度成为一等公民,Buddy、报表等共用同一份口径。
权限独立、最小授权——业务消费指标完全不依赖底表权限。
行级安全可控——通过维度值范围授权实现「张三只看华东」。

设计原则

原则
说明
Owner + 权限点
每类语义资产(模型、指标)只有一个 Owner(可转交);模型上 授予 Manage / CreateMetric 权限点,指标上 授予 Manage / Query 权限点
语义层独立于 Catalog
创建模型时需要底层表 Select 权限;创建指标、查询指标数据完全不依赖 Catalog 权限
最小权限
创建指标无需看底层数据,只需引用模型;查询指标无需管理模型权限

关系模型 Model

关系模型是业务分析的最小数据单元,对应一张或多张物理表的语义封装。模型负责声明:
引用了哪些 Catalog 表(含 Catalog / Schema / Table 三段路径);
表与表之间的关联(Join)关系;
一个模型可以被多个指标引用,模型一旦发布,其结构变更需要重新走发布流程。

指标 Metric

指标是业务上可被消费的「数字口径」,在模型之上定义。指标分为原子指标衍生指标 两大类:
原子指标(SIMPLE) :指标体系的最小统计单元,对单一字段做聚合计算,如 SUM(OrderAmount) 表示「交易总金额」。原子指标不涉及衍生逻辑。
衍生指标 :在原子指标基础上按业务规则加工得到的指标,又细分为 5 种:
筛选型 :在原子指标基础上按特定维度(如时间、地域、用户属性)筛选后得到,例如「线上渠道交易总金额」= SUM(OrderAmount) 限定 渠道 = 线上
累积计算型 :对原子、筛选型指标按时间窗口累加、汇总得到,例如「近 30 天线上渠道交易总金额」。
同环比计算型 :以累积计算型指标为基础,与历史同期(同比)或上一周期(环比)数据对比的相对指标,例如「近 30 天线上渠道交易总金额环比增长率」。
混合计算型 :结合两个及以上指标通过衍生计算规则(如加减乘除等)得到的复合指标,例如「平均交易流水金额」= 交易总金额 / 交易数量
转化计算型 :基于不同环节的原子、筛选型指标,计算流程中「从 A 到 B」的转化效率,例如「注册-下单转化率」= 下单量 / 注册量
指标支持的聚合方式包括 SUMCOUNTCOUNT(DISTINCT)MAXMINAVG,以及自定义表达式。

维度 Dimension

维度用于定义分析视角。按字段的业务语义,常见维度可分为以下几类:
时间维度 :用于按时间窗口对指标进行切片的日期、时间类字段,支持按天、周、月、季、年等不同粒度聚合,是趋势分析(如同环比、近 N 天)的核心切片依据。
示例:order_date(订单创建日期)、pay_time(支付完成时间),常按天、周、月切片。
字典维度 :值域固定、可枚举的维度字段,对应业务上的「类目」「品牌」等分类体系。其取值通常来自字典表或预设枚举,字段值域有限且稳定,便于做归一化与标准化管理。
示例:category_name(商品类目)、brand(品牌)、gender(性别)。
普通维度 :用于描述业务实体属性的通用维度字段,没有特殊的时间或字典语义,常见为用户姓名、年龄、用户 ID 等属性
示例:user_name(用户名)、age(年龄)、user_id(用户 ID)。
维度是跨模型复用的全局维度(可在「维度管理」中统一定义)。

权限模型概览

语义层权限分为三大类:功能权限ACL 权限数据权限 ,均挂在工作空间 → 角色管理 → 语义建模菜单下:
权限类别
控制目标
配置位置
功能权限
用户能否进入「模型管理 / 指标管理 / 维度管理」 Tab,以及能否新建 / 修改 / 删除
工作空间 → 角色管理 → 语义建模菜单
ACL 权限(资产级)
用户对单个模型的具体能力(Manage / CreateMetric);对单个指标的具体能力(Manage / Query)
模型详情页 → 权限 Tab
指标详情页 → 权限 Tab
数据权限(行级)
同一指标下,用户能查询到的维度值范围
指标授权时附带的「维度值范围」

模型 ACL 权限矩阵

操作
Owner 身份
Manage 权限点
CreateMetric 权限点
查看模型结构
编辑模型结构
引用该模型创建指标
发布 / 下线模型
授权他人
转交模型 Owner
删除模型

指标 ACL 权限矩阵

操作
Owner 身份
Manage 权限点
Query 权限点
查看指标元数据
查询指标数据
✅(可被维度值限制)
编辑指标口径
发布 / 下线指标
授权他人
转交指标 Owner
删除指标

Catalog 与语义层的协同

语义层的设计原则是「创建需 Catalog 权限,消费不需要 」:
场景
所需 Catalog 权限
所需语义层权限
创建模型
Table.Select
语义建模功能权限
管理模型(被授 Manage)
Table.Select + Table.Browse
模型的 Manage 权限点
创建指标(被授 CreateMetric)
不需要
模型的 CreateMetric 权限点
查询指标数据
不需要
指标的 Query 权限点
NL2SQL 直接查表
Table.Select + Table.Browse
不需要
提示
关于 Table.BrowseBrowse 是 Catalog 层对底层表的「可预览」权限,独立于 Select 的全量读权限。模型 Manage 用户在编辑、发布、下线等需要触达底层表结构的环节,除了 Select 还必须拥有 Browse 权限,否则会被拦截。
因此即使用户在 Catalog 中底表的 Select 权限被回收,只要用户有已发布指标的查询仍可正常执行,保障业务连续性。

相关文档

创建语义模型
语义模型应用