在今天的数据世界里,一家公司同时使用 Snowflake、dbt、Tableau、Salesforce 和各种 AI 工具,几乎是常态。但这些工具各自定义"收入""活跃用户"的方式往往不同------同一个 KPI,在不同平台上跑出不同的数字,让人头疼不已。Apache Ossie 就是为了解决这个问题而生的。
🧭 Ossie 是什么?
Apache Ossie (原名 Open Semantic Interchange,简称 OSI)是一个 Apache 孵化器项目,目标是建立一套统一的、厂商中立的语义模型交换规范。
简单来说,它定义了一种通用的 YAML/JSON 格式,让所有数据工具都能用同一种"语言"描述业务逻辑------指标怎么算、字段什么含义、表与表之间什么关系。这样,工具之间交换数据时,就不需要再写一堆定制化的"翻译器"了。
类比一下:就像 USB 接口统一了各种设备的连接方式,Ossie 试图统一数据工具之间的语义连接方式。
目前版本为 0.1.1 (开发中版本 0.2.0.dev0),背后有 50+ 家机构联合支持,包括 Snowflake、Databricks、dbt Labs、Salesforce、Oracle、Mistral AI、BlackRock、Instacart 等行业巨头。
🔍 它解决了什么问题?
数据生态的碎片化是根本矛盾。Ossie 文档把这个现象称为 Semantic Fragmentation(语义碎片化),具体表现为四个痛点:
| 痛点 | 描述 |
|---|---|
| 指标漂移(Metric Drift) | 同一个 KPI 在不同平台定义不同,数字对不上,团队互相质疑 |
| 手工翻译(Manual Translation) | 数据在系统间流转时,需要人工反复对齐语义定义,费时费力 |
| AI 幻觉(AI Hallucinations) | AI Agent 遇到不一致的业务逻辑,输出结果不可靠 |
| 集成债务(Integration Debt) | 每接入一个新工具,就要写一套定制连接器,维护成本滚雪球 |
Ossie 的解法是 "轮毂辐条"架构(Hub-and-Spoke):

不再需要 A→B、A→C、B→C 这样的点对点连接,所有工具只需对接 Ossie 这一个中心格式。
📐 规范的核心构成
Ossie 的核心是一个 YAML 文件,包含以下几个关键构件:
- Semantic Model(语义模型):顶层容器,描述整个业务数据模型
- Datasets(数据集):代表业务实体,比如"订单表""用户表",包含字段、主键等
- Fields(字段):行级属性,用于分组、过滤和指标计算,支持多种 SQL 方言
- Relationships(关系):数据集之间的外键关联,支持复合键
- Metrics(指标):量化度量,比如"总销售额""平均订单价值",可以跨多个数据集定义
- AI Context(AI 上下文):可选注解,给每个字段/指标附上业务含义、同义词、示例查询,帮助 LLM 正确理解数据
- Custom Extensions(自定义扩展):厂商可以用 JSON 携带私有元数据,不破坏核心兼容性
支持的 SQL 方言包括:ANSI_SQL、SNOWFLAKE、DATABRICKS、MDX、TABLEAU。
🚀 如何使用 Ossie?
第一步:了解仓库结构
bash
apache/ossie/
├── core-spec/ # 核心规范文档和 JSON Schema
├── converters/ # 各平台的转换器(dbt、GoodData、Polaris、Salesforce 等)
├── examples/ # 示例语义模型(含完整的 TPC-DS 模型)
├── validation/ # 验证工具(validate.py)
├── python/ # Python 实现库
└── docs/ # 项目文档
第二步:写一个语义模型文件
参考 examples/tpcds_semantic_model.yaml,按照规范定义你的数据集、字段和指标。核心结构大致如下:
yaml
semantic_model:
name: "sales_model"
datasets:
- name: orders
fields:
- name: order_id
type: string
- name: revenue
type: number
metrics:
- name: total_revenue
expression: "SUM(orders.revenue)"
ai_context:
description: "所有已完成订单的总收入"
synonyms: ["总销售额", "营收"]
第三步:使用验证工具检查模型
bash
python validation/validate.py your_model.yaml
第四步:使用转换器对接现有工具
converters/ 目录下提供了各平台的参考转换器,可以把 Ossie 格式与 dbt、Salesforce、Databricks 等平台的原生格式互相转换,无需手写胶水代码。
第五步:参与社区
- GitHub Discussions:提问、讨论规范设计
- Slack:与核心贡献者实时交流
- CONTRIBUTING.md:了解如何提交规范变更提案
💡 适用场景总结
Ossie 特别适合以下几类团队和场景:
- 多工具数据栈的企业:同时使用 dbt + Snowflake + Tableau + AI 工具,需要统一指标定义
- 数据平台/工具开发商:希望自己的产品能与生态内其他工具无缝互通
- AI/LLM 应用开发者:需要给 AI Agent 提供可靠、一致的业务语义上下文,避免幻觉
- 数据治理团队:建立企业级的"指标单一真相来源",消除跨部门的数字打架问题
作为一个 2025 年底才在 Apache 孵化器立项的新项目,Ossie 已经集结了相当可观的行业力量。它的野心不小------用一份 YAML 文件,终结数据语义的巴别塔困境。对于正在构建现代数据栈的团队来说,这个项目值得持续关注。