日期:2026-08-28 前提:数仓已产出账单表(事实表)+ 必要的维度表,忽略数仓建模过程,直接基于表结构做本体驱动的指标查询。 定位:AI Native 指标查询——自然语言驱动、本体推理、受约束 SQL,而非传统 BI 拖拽报表。
现有账单表 + 维度表(表结构已知)
↓
① 表结构解析:从账单表/维度表解析出度量字段、维度外键、口径字段
↓
② 指标本体建模:基于表结构建指标本体(指标类、维度类、口径公理 + mapsTo 映射)
↓
③ 本体驱动查询:自然语言 → 本体推理(等价/层级/推导)→ 受约束 SQL → 结果 + 分析
| 本体能力 | 指标查询中的作用 |
|---|---|
| 概念等价推理 | 「成交额」≡「GMV」,消除口径打架 |
| 维度层级推理 | 「华东区」自动展开为省份列表 |
| 口径公理约束 | 「GMV 不含退款」形式化,机器校验 SQL |
| 指标推导 | 「客单价」自动拆解为 GMV ÷ 订单数 |
本质:本体把「指标、维度、口径」形式化成可推理的逻辑,让 AI 查询既准确、又可解释、可溯源。关系表 + LLM 是"把语义塞进 prompt 里猜",本体 + 推理是"把语义形式化后用推理机算"。
┌──────────────────────────────────────────────────┐
│ 应用层:AI Native 指标查询 │
│ 自然语言 → 本体推理 → 受约束 SQL → 查询 → 分析 │
├──────────────────────────────────────────────────┤
│ 本体层(核心):指标本体 │
│ · OWL 本体:指标类、维度类、口径公理 │
│ · 推理引擎:Apache Jena(等价/层级/推导) │
│ · mapsTo 映射:本体概念 ↔ 账单表/维度表字段 │
├──────────────────────────────────────────────────┤
│ 数据层:现有数仓表(不动) │
│ · 账单表(事实表):度量 + 维度外键 + 口径字段 │
│ · 维度表:地区维、日期维等 │
└──────────────────────────────────────────────────┘
关键:数据层完全复用现有表,不新建、不改动。本体层是新增的「语义层」,通过 mapsTo 映射桥接到现有表字段。
用户问「华东区成交额」
本体公理:上海 partOf 华东区、江苏 partOf 华东区、...
推理:华东区 → {上海, 江苏, 浙江, 安徽, 福建, 江西, 山东}
生成 SQL:WHERE region_name IN ('上海','江苏',...)
业务方 A 问「成交额」,B 问「GMV」,C 问「销售额」
本体公理:成交额 ≡ GMV ≡ 销售额
推理:三者是同一指标,映射到同一账单表字段
本体公理:GMV ≡ SUM(bill_amount) ⊓ (status=paid) ⊓ (refunded=false)
生成 SQL 必须含 status='paid' AND refunded=false,否则拦截
用户问「客单价」
本体公理:客单价 ≡ GMV ÷ 订单数
推理:拆解为两个子指标,分别查询再计算
「上个月华东区成交额环比多少?为什么?」
① LLM 槽位提取:{ metric:"成交额", region:"华东区", time:"上个月", compare:"环比" }
② 本体推理:成交额 ≡ GMV
③ 本体推理:华东区 → 7 省份
④ 受约束 SQL 生成(GMV 口径固化模板 + 参数填充)
⑤ 口径校验(公理校验 SQL)
⑥ ADB 查询账单表
⑦ LLM 归因分析(基于真实结果)
| 步骤 | 内容 | 产出 |
|---|---|---|
| ① 表结构解析 | 解析现有账单表 + 维度表 DDL,识别度量/维度/口径字段 | 字段清单 + 维度识别 |
| ② 本体建模 | 基于表结构建指标本体(指标类 + 维度类 + 公理) | OWL 本体(.ttl) |
| ③ 查询引擎 | 本体推理 + 受约束 SQL 生成 + 口径校验 | 查询服务 |
| ④ AI 集成 | LLM 槽位提取 + 流程编排 + 归因分析 | 完整查询链路 |
输入:1 张账单表 + 2 张维度表(地区、日期) 建:3 个指标(成交额/订单数/客单价)+ 1 个维度层级(地区)+ 2 个等价关系 验证:「成交额和 GMV 是一回事吗?」「华东区包含哪些省?」「上个月成交额环比?」
| 层 | 技术 |
|---|---|
| 本体建模 | Protégé(OWL 2,Turtle 序列化) |
| 本体推理 | Apache Jena(等价/层级/推导 + SPARQL) |
| 数据 | 现有 ADB(AnalyticDB)账单表 + 维度表 |
| 查询执行 | ADB JDBC(MySQL 协议) |
| AI | LLM(仅槽位提取 + 归因分析) |
| 后端 | Java 11 + Spring Boot |
| 能力 | 关系表 + LLM | 本体 + 推理机 |
|---|---|---|
| 概念同义对齐 | LLM 猜(会错) | 逻辑等价推理(确定) |
| 维度层级展开 | 维表硬编码 | 公理推理(加公理即生效) |
| 口径一致性 | 靠文档 | 公理校验(机器强制) |
| 指标推导 | 硬编码 | 公理推导(自动) |
| 可解释性 | 黑盒 | 推理路径可回溯 |