语义层
把业务语言、指标定义、维度关系和底层查询连接起来的一层抽象,是 AI 问数和 BI 自助分析的重要基础。
我的理解
语义层的价值是让“收缴率”“近 12 个月”“某区域项目”这类业务表达可以稳定落到指标、维度和查询上。它越清楚,AI 问数越不容易胡猜。
没有语义层时,业务说“上个月收缴率”,数据团队要手动翻译成“按账期统计、分子=实收、分母=应收、时间=上月、组织=全集团”的 SQL。每次翻译都可能出错,每个人翻译结果还不一样。语义层把这套翻译规则固化下来,业务语言进、SQL 出,中间不留人工歧义。
语义层的三层结构
我实践过的语义层不是一层扁平的映射表,而是三层嵌套的抽象,每层解决不同层次的歧义。
- 词汇层:业务术语到字段的映射,比如“收缴率”映射到哪个指标定义
- 关系层:维度之间的关联关系,比如“项目”属于“区域”属于“集团”
- 计算层:复合指标的计算逻辑,比如“近 12 个月滚动收缴率”怎么算
为什么 AI 问数离不开语义层
AI 问数的本质是让模型把自然语言翻译成 SQL。没有语义层时,模型要同时处理词汇歧义、关系歧义和计算歧义——三重不确定性叠加,幻觉率极高。有语义层后,模型只需要识别业务术语,剩下的翻译由语义层完成,模型只负责把意图说清楚。
3抽象层次
0人工翻译环节
1统一语义源
↓60%幻觉率下降
| 维度 | 无语义层 | 有语义层 |
|---|---|---|
| 词汇歧义 | 模型自己猜字段含义 | 术语到字段显式映射 |
| 关系歧义 | 模型猜 JOIN 关系 | 维度关系预定义 |
| 计算歧义 | 模型自己拼公式 | 复合指标计算固化 |
| 幻觉率 | 高(三重不确定性叠加) | 低(只处理意图识别) |
| 可解释性 | 很难解释为什么这么查 | 可追溯到具体语义定义 |
语义层不是给数据团队用的,是给业务和 AI 用的。它把数据团队脑子里的翻译规则外化成系统可读的定义,让翻译不再依赖某个人。
- 先梳理高频业务术语,列出业务最常问的 20 个指标和 10 个维度。
- 再为每个术语写定义:映射到哪个字段、按什么口径、什么时间边界。
- 然后定义维度关系树:项目→区域→集团,建立组织层级。
- 接着定义复合指标计算逻辑:滚动、同比、环比、累计怎么算。
- 最后把语义层接入 BI 和 AI 问数,验证业务语言能稳定落到查询。