统一数据服务层 V3.0

全公司取数的
唯一出口

前端、帆软、飞书、未来的智能体都只经这一层取数,拿到的永远是这个人有权看的那一份。

取数链路
前端 / 帆软 / 飞书 / 智能体消费层
权限引擎:范围注入 + 字段裁剪唯一裁决者
执行引擎:SQL 编译与执行不判权限
ODS 数据层 SQL Server已有不改
¥0软件采购成本,源码完全自有
47人日权限层改造,较自建省约三分之二
4维度事业部 / 办事处 / 部门 / 基地并行
80人起步一年内扩至 150 到 200 人

先把问题说清楚,再谈方案

五个真痛点必须解决,五个提法需要重新定义。诚实标注哪些是伪需求,是为了避免方案跑偏,也为了汇报时经得住追问。

P1

同一指标口径不一致

不同系统与报表算出来的数不一样,经营会先对数再决策,决策依据打架。

P2

数据只能人工导 Excel

重复工时高;导出后的文件流向不可控,实际上比接口更不安全。

P3

前端直连数据库,管不住权限

谁写 SQL 谁就能看全量,新人接手无法复现权限逻辑。

本次项目的直接触发点
P4

跨系统主数据编码不统一

经销商、SKU、费用科目三套码,报表天然对不齐,换任何 BI 都治不好。

根因,由业务场景倒逼启动
P5

缺少统一数据出口

每个消费方各接各的,未来接 AI 时必然出现第二套权限逻辑。

判断

P3 触发,P4 是根因

P5 是今年不解决、明年一定爆炸的隐患。本期先把数据查看权限一个域做透。


分层与职责边界

点击任意一层查看它负责什么、绝不做什么。职责边界清晰是几个人能并行开工的前提,也是安全审查能收敛的前提。


权限在查询编译期生效

前端不显示不算权限,后端不返回才算。下面是真实裁决逻辑的模拟:换一个角色,同一个请求返回的行与字段都不一样。

division

事业部

夜经济一部二部、饮料一部二部,来自飞书组织架构与分销同步

office

办事处

事业部下属销售区域,由分销系统权限表每日同步

dept

行政部门

飞书通讯录 22 个部门,用于部门归属类数据集

plant

生产基地

横沥、黄冈、松山湖,手工维护,用于生产类数据集

裁决结果
生效范围 scopeApplied
最高可见密级
被裁剪字段 maskedFields
服务层编译出的 SQL

          
V3

字段密级

非 L3 角色查含毛利的数据集,抓包确认响应体中不存在该字段,而不是前端隐藏。

V4

参数越权

手工构造 division_id 尝试越界,参数被丢弃并记审计,返回仍为本人范围。

V5

空范围处理

给一个无任何范围的账号查业务归属类数据集,返回空集,绝不是全量。

V7

管理员越权

平台管理员默认无业务数据范围,直接查 L3 数据集被拒绝,排障走权限模拟。


qData 为主干,权限层自研叠加

覆盖面决定工作量,技术栈匹配决定可维护性。权限本来就必须自研,没有任何现成产品理解仙津的四维度组织结构。

主选方案

qData 开源数据中台 + qdata-module-xjauth

Apache 2.0、Spring Boot 与 Vue3、团队能读懂能改。一次性解决数据集成、调度、元数据、质量、资产、API 发布六块;四维度行级与字段级权限以 AOP 切面叠加,不改主干,保留上游升级能力。

在 qData 上改造
47 人日
含 20% 缓冲,六个改造点
从零自建
120+ 人日
保守估计,且无治理能力
备选

Cube Core

语义层与 MCP 出口最强,行级权限编译期生效。触发条件:qData 执行链路无可切入点、SQL 为字符串拼接、或无法轻量部署,三者任一发生即退回。

兜底

全自研 Spring Boot

完全可控、栈匹配,但语义层、MCP、预聚合都要自己写。分层与接口契约不变,切换成本约两周。

能力覆盖
qData
Cube
自建
数据集成、调度、元数据、质量、资产
高成本
API 数据服务发布
中成本
语义层,指标唯一定义
高成本
行级与字段级权限
必须自研
MCP 出口,对接 AI
原生
中成本
技术栈与团队匹配
Java
Node
Java

十三个模块,谁来承担说清楚

标注 qData 的部分是开源能力直接用,标注自研的部分是必须自己写的。按优先级筛选,看本期到底做哪些。


从可演示到业务可用

人力折合约三个全职,计划按此编排,不按理想人力编排。点击里程碑查看交付内容与判定标准。


最可能翻车的地方

技术风险都有止损方案,业务与组织风险没有技术止损手段,只能靠缩小首批范围和提前拿到授权来控制。

技术风险

qData 数据服务模块无 AOP 可切入点

无把握

开工前 3 天读透执行链路,四项验证全过方可开工。不通过即退回 Cube 加自建,工期影响约两周。

AI 问数绕过权限层

影响高

Text2SQL 直接生成 SQL 会绕过全部权限改造。P1 阶段必须先禁用,P3 改走已发布 API 加填参数的形态。

SQL Server 承载分析查询

中等

ODS 独立实例、强制分页与超时、预聚合宽表、禁止直连营销业务库。大表关联仍需实测。

缓存与权限组合串数据

概率低影响极高

缓存键必须包含权限范围指纹,否则会跨用户串数据。列为专项评审项,越权用例每次发布必跑。

交付与组织风险

口径梳理进度不可控

最大风险

这是业务活,技术无法加速。首批限 10 个指标,口径 Owner 签字确认,提前启动对数。无技术止损手段。

人力被其他项目抽走

概率高

本项目周期长、短期无亮点,最容易被临时插单打断。把 11/28 业务可用写进部门月度目标,用承诺换保护。

原型债,领导以为系统接近完成

概率高

演示版本必须主动定性为设计稿加真实数据,并给出明确落地日期,否则后面每一次延期都要解释。

口径解释权未授权

需管理层拍板

需要一句话授权:指标口径解释权与发布权归数字化建设部。没有这句话,治理推不动。


边界与成本

范围不写死,需求一定膨胀。以下十项本期明确不做,不是做不了,是这一期不做。

软件采购¥0
服务器复用现有
人力投入1 人 × 8 周
预算上限≤ 10 万
可直接用于汇报的一句话:软件成本为零、源码完全自有、一人两月完成核心链路,相较市面百万级中台产品,在当前数据规模下更匹配且具备自主迭代能力。
数据抽取与分层建模 可视化设计器 数据填报与写回 实时流计算 Flink 大屏工具 模型训练与推理 移动端独立 App 承诺全域实时 AI 自动生成经营决议 自研文件加密 全公司统一权限中心 IAM 主数据管理,二期立项

主数据是根因,但没有业务场景牵引的治理项目推不动。正确顺序是先做服务层,接第一批数据集时自然暴露同一经销商三个码,那时候业务方会主动要求治理。