平台的灵魂 · P2 · :18081

LightFoundry

把物理数据库里的表,变成业务方说得出口的对象、算得一致的指标,并且垄断所有写操作的入口

本体四要素 指标语义层 数据集与血缘 唯一写路径 Go 单机

它是谁,给谁用

语义的生产者:一次建模,下游所有人复用

29
个后端模块
30
个功能页面
4
本体要素
7
写路径关卡
谁在用

数据工程师、FDE(前沿部署工程师)、本体工程师——他们是平台语义资产的作者。

核心能力

本体建模 · 指标语义层 · 数据域(数据集/同步/质量/管道/血缘)· 唯一写路径 · 本体版本治理 · 协作分析 · 互操作与生态。

给「订单」一个稳定的业务身份,而不是 db2.dbo.ord_hdr_v2;让「销售额」成为一条叫 total_gmv 的唯一口径,谁引用都是同一个算法。 —— LightFoundry 在做的事

本体论 —— 平台的灵魂

不是「给表起个中文别名」,而是把口径、约束、权限、动作都钉在业务对象上

要素是什么业务上意味着
对象 Object 一张主表(最多再挂 3 张补充表)+ 一个稳定的英文名 api_name 「订单」从此是一个大家都认的东西,而不是一张只有 DBA 看得懂的物理表
属性 Property 映射某一列或计算得出;带约束、同义词、PII 标记、列级安全 给「区域」加同义词「大区 / 片区」,业务怎么说都能查到;给「姓名」打 PII 标记,脱敏自动生效
链接 Link 对象之间的关系,带方向和基数(一对一 / 一对多 / 多对多) 查订单自动带出客户,不用每次手写 JOIN,也没有人能写错关联键
动作 Action 一个被定义好参数、校验规则、权限和回写方式的写操作 「标记订单为已发货」成为一个受控动作,而不是谁都能跑的一条 UPDATE

对「改本体」本身的治理

◆

合入前先算影响

系统列出这次改动会波及哪些指标、报表、AI 检索,并给出重建建议;被引用的对象不允许直接删除。

☉

真冲突才拦你

合入时聚合主干上的全部并发改动比对,只有真正改到同一处才算冲突,无真冲突自动合并。

☆

本体即代码

定义可导出 YAML 进 Git 评审、可批量导入、可跨环境迁移——语义资产像代码一样可版本、可回滚。命令行 actionctl 支持本体导入导出。

▣

标准值类型

属性类型收敛为 13 类(文本 / 数值 / 金额 / 百分比 / 日期 / 枚举 / 数组等),存量属性一键归一化,先预览再写库。本体可导出 OWL / SHACL 标准格式。

任何本体改动走状态机

「草稿 → 评审 → 合入」——合入前自动算影响面,改错了可回滚。经营会上业务提的「对外的 GMV 口径要剔除内部关联交易」,变成的是一次正式的本体变更:草稿、影响分析(波及 3 张报表、2 个仪表盘)、评审、合入。所有引用它的报表自动获得新口径,历史数据不用重跑。

指标语义层:「销售额」从此只有一个算法

实体 → 维度 / 度量 → 指标的四层结构,把口径集中管理

实体业务对象
对象 / 属性 / 链接
→
维度 / 度量可下钻的维度
可聚合的度量
→
指标显式算法定义
total_gmv / aov / 毛利率
四级指标类型

简单、比率、派生、累计——每一级都有明确的算法语义,避免「同名不同义」。

口径现算,不做预聚合

口径在指标里现算,改口径不用重跑历史数据——这是口径能长期保持一致的关键取舍。

版本与引用清单

每个口径有版本、有负责人、有引用它的报表清单。财务看到的是「确认收入(未税)」,业务看的是「订单金额(含税)」——不是谁错了,是口径定义不同,两条引用链一目了然。

对象化 SQL 工作台

用对象名而不是物理表名写查询,权限自动注入。SQL 宏一处维护、多处复用;四级血缘(源 → 管道 → 对象 → 指标)让每个数字都能回溯来路。

一个必须强调的实施经验

指标定义是业务决定,不是技术决定。「销售额含不含退款」这个问题,必须由业务方在建模前拍板。平台把这一步做成了流程里的一等公民——确认口径是实施路径的正式环节,而不是口头约定。模型建完才去问口径,基本要返工。

数据域:数据终于「进平台」

数据集成为一等资产——可版本发布、可预览、可画像、可追溯血缘

▶

数据集版本化发布

数据集可版本发布、可预览。CSV / JSON 直接导入,Excel 台账也能上传建集——从「连过去查」变成「落成资产」。

☉

全量与增量同步

全量同步在事务内重写;增量同步按水位线断点续传、冲突跳过。同步是异步任务:提交即返回任务号,服务重启还能自动接着跑。

★

四因子质量画像

给数据持续「体检」,质量问题自动生成工单;error 级问题直接阻断脏数据进入本体——脏数据没有流入下游。

▣

SQL 管道与四级血缘

清洗步骤声明成有序 SQL 管道(单数据源内),成功链自动联动血缘与质量。四级血缘 + Action 写边,每个数字都能回溯来路。

CDC:数据一变,动作自动发生

变更捕获靠数据库轮询比对检出增删改——不依赖数据库日志、不需要装消息队列。数据一变即可驱动流规则:自动触发通知、同步、质检或回写;条件节点判断后走飞书 / 站内 / 邮件,或调用 ERP 的 REST 接口。

唯一写路径:七道关卡

全平台所有数据回写——人点的、AI 执行的、外部系统调的、流规则触发的——全部穿过同一条流水线,没有旁路

① 参数校验Schema 定义
类型与必填
② 逐动作授权RBAC 判定
能不能执行
③ 写权限三分记录级 · 属性级
非 SQL 改写
④ 校验规则业务前置条件
如「已发货不能改价」
⑤ 强制审计含修改前状态
prior_state 留痕
⑥ 幂等 + 事务重复提交
返回首次结果
⑦ 乐观并发时间戳毫秒级比对
冲突返回 409 + 最新状态
任一关卡不过立即拒绝
一个字节都不写库

人和 AI Agent 走的不是相似的两条路,是同一条路。这就是「敢让 AI 改生产数据」的来源——不是对 AI 更宽容,也不是对 AI 更苛刻,而是根本没有「AI 专用通道」这个东西。

三个容易被忽略、但对集成方至关重要的细节

幂等键(idempotency key)

同一个键重复提交只执行一次,后续返回首次结果。网络重试不会变成重复扣款——这对结算、工单、审批类场景是刚需。

乐观并发控制

回写时带上「我看到的时间戳」,不匹配就返回 409 冲突并附最新状态。两个人(或人与 AI)同时改同一条记录,后提交者不会静默覆盖前者。

编辑态叠加

通过 Action 改过的值不直接覆盖源表,而是独立落在编辑态表里,查询时叠加上去——源数据保持原貌,修改全程可追溯、可撤销。明细与聚合查询都会叠加。

Action 四种执行模式

只校验 / 直接执行 / 异步执行 / 先校验再执行。集成时先用「只校验」dry-run 一遍看校验结论,再真实执行。

给集成工程师的一句提醒

调用 Action 返回 HTTP 200,只代表请求被受理;真正的成败要看响应体里 validation.result 是否为 VALID。做集成时如果只判状态码,会把失败当成功。

写权限按 Action 逐个授予,不是「能写就全能写」。

产品协同场景

LightFoundry 是上层产品的语义地基,也是全平台唯一的写入口

★

LightFoundry + LightAIP

契约①语义检索:AIP 检索的是「订单收入 = SUM(paid_amount)」这条结构化定义,而不是一段描述它的话;契约②Action 执行:AIP 不自己写数据库,写请求交回 Foundry 走七道关卡。

◇

LightFoundry + LightGotham

图谱研判建立在统一语义之上,实体解析才有干净的输入。对象 / 动作模型作为共享代码包,Gotham 的图节点类型直接复用。

☃

LightFoundry + LightApollo

本体 YAML、指标定义、评测集打包成签名 bundle,由 Apollo 的声明式交付分发到各环境;升级失败自动回滚,多环境语义资产保持同源。

最典型的瞬间

财务和业务不再为口径打架

经营会上,财务说营收 1.08 亿,业务说 1.2 亿。数据工程师当场打开指标中心:两条引用链一目了然——财务引用的是「确认收入(未税)」,业务看的是「订单金额(含税)」。不是谁错了,是口径定义不同。 真正的问题在过去:口径只存在于几段没人维护的 SQL 里。现在,两个口径都是指标中心里的两条显式定义,各自有版本、有负责人、有引用它的报表清单。两分钟定位,当场对齐——口径只有一份,争执就有了仲裁者。
指标四层定义 影响分析 版本合入 对象化 SQL 血缘追溯
相关资源

想快速看到它的实际样子?从 30 分钟跑通最小闭环 的第 4 步(把一张表变成业务对象)开始;也可浏览 LightFoundry 界面介绍 或 场景故事站。