您的位置:首页 > 手游攻略 > 每天一个开源项目40 Apache Ossie:1K Stars的AI/BI语义层通用标准

每天一个开源项目40 Apache Ossie:1K Stars的AI/BI语义层通用标准

作者:互联网  时间: 2026-07-18 08:16:08  

每天一个开源项目#40 Apache Ossie:1K Stars的AI/BI语义层通用标准


项目概览

属性详情
项目名Apache Ossie(incubating,原 Open Semantic Interchange / OSI)
一句话用一套厂商中立的 YAML/JSON 规范,在 BI、数据平台与 AI Agent 之间交换指标、关系和业务语义
今日排名GitHub Trending #1 / 17
Stars1,055(Trending 快照;同日 API 补充核验时为 1,056)
Forks / Open Issues142 / 57
创建时间2025-11-18
主语言Python 75.1%、Java 24.9%(主要来自转换器和验证工具,规范本身是 YAML/JSON/Markdown)
LicenseApache License 2.0
规范版本main0.2.0.dev0 Draft;仓库仅见标签 osi-0.1.1-rc1,暂无 GitHub Release
今日代码状态cdf95904,最后提交为新增 Semantido vendor;快照日仍在密集开发

为什么值得关注?

现代数据栈缺的往往不是又一个查询引擎,而是一份能跨工具流通的业务定义。同一个“收入”指标可能在 dbt、Snowflake、Salesforce、Omni 和 AI 问数助手中各写一遍:过滤条件、时间口径或关联路径稍有差异,仪表盘就会互相打架,Agent 也会在冲突上下文中生成看似合理、实际错误的 SQL。Apache Ossie 的目标,是把数据集、字段、关系、指标、SQL 方言以及 AI 上下文放进一个可版本化、可验证的中间表示。

每天一个开源项目#40 Apache Ossie:1K Stars的AI/BI语义层通用标准

它真正有价值的地方不是“YAML 又多了一种写法”,而是试图建立数据语义层的公共交换协议。Parquet/Arrow 统一数据格式,ODBC/JDBC 统一访问接口,Ossie 则瞄准更上层的业务含义与指标逻辑。一旦中间规范被多家工具接受,企业就不必为每两套产品维护一个点对点映射,AI Agent 也能拿到经治理的指标定义、同义词和使用约束,而不是只靠表名猜业务。

不过,今天的 Ossie 仍应被看作快速演化中的 Apache 孵化规范与参考实现,而不是已经定型的执行引擎。main 明确标注 0.2.0.dev0 Draft;指标粒度、关系基数、语义查询语言、注册中心和参考 SQL 编译器仍在路线图中。这种“潜力很大、接口未稳”的状态,正是技术团队现在值得跟踪、但生产采用必须小步试点的原因。


️ 核心特性

1. 厂商中立的语义模型:把“数据是什么”变成可交换资产

Ossie 的顶层模型围绕五类对象展开:

  1. datasets:业务数据集及其物理来源、主键、唯一键;
  2. fields:字段或计算字段,可携带维度属性;
  3. relationships:数据集之间的简单键或复合键关系;
  4. metrics:模型级指标,可跨数据集引用字段;
  5. ai_contextcustom_extensions:分别承载 AI 语境和厂商私有信息。

这意味着一份语义模型既能表达机器可执行的计算逻辑,也能表达“营收还叫销售额”“回答时只使用认证指标”这类 Agent 需要的上下文。

 复制代码version: "0.2.0.dev0"
semantic_model:
  - name: sales
    ai_context:
      instructions: "回答收入问题时只使用已认证指标"
      synonyms: ["营收", "销售额"]
    datasets:
      - name: orders
        source: analytics.public.orders
        primary_key: [order_id]
        fields:
          - name: amount
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: amount
    metrics:
      - name: revenue
        expression:
          dialects:
            - dialect: ANSI_SQL
              expression: SUM(orders.amount)
        description: 已支付订单收入

2. Hub-and-Spoke:把转换器复杂度从平方级压到线性级

如果 N 个语义平台都直接互转,按有向转换计算,需要 N × (N - 1) 条转换路径;Ossie 作为中心格式后,每个平台只需提供导入和导出两条路径,总数变成 2 × N

接入平台数 N点对点转换路径Ossie Hub 转换路径理论减少
5201050.0%
10902077.8%
203804089.5%
502,45010095.92%

这不是运行时性能基准,而是架构复杂度估算。它成立的前提是各平台与 Ossie 的映射足够完整,并且导入、导出能保持 round-trip fidelity;如果核心规范无法覆盖某个平台的独特语义,复杂度会被转移到 custom_extensions 和转换器兼容逻辑中。

3. 多 SQL 方言表达式:同一业务定义保留平台原生写法

字段和指标可以同时携带 ANSI_SQLSNOWFLAKEDATABRICKSBIGQUERYMDXTABLEAUMAQL 等表达式。目标转换器优先选择自己的方言,缺失时回退到 ANSI SQL。

 复制代码expression:
  dialects:
    - dialect: ANSI_SQL
      expression: LOWER(email)
    - dialect: SNOWFLAKE
      expression: LOWER(email)::VARCHAR
    - dialect: DATABRICKS
      expression: lower(email)

这比在迁移时临时做 SQL 转译更可控,因为每种写法都能在代码评审中显式确认。代价也很直接:多方言副本可能产生漂移。因此项目又在提议 OSSIE_SQL_2026 可移植子集,希望把通用算术、聚合、窗口、空值与过滤语义标准化,并把厂商特性留给扩展方言。

4. AI Context 不是注释,而是语义治理接口

ai_context 可挂在模型、数据集、字段、关系和指标等层级,内容既可以是一段文本,也可以是结构化的 instructionssynonymsexamples。对 Text-to-SQL 或分析 Agent 而言,这提供了三层价值:

  • 消歧:把“GMV、成交额、销售额”等自然语言映射到认证指标;
  • 约束:告诉模型什么场景该用、什么场景不能用某个字段;
  • 示范:用已审核问题或查询给 Agent 提供检索与生成锚点。

需要强调:这些字段只是可传递的上下文元数据,并不自动构成权限控制或防幻觉机制。路线图中的 verified queries、暴露控制、认证与治理钩子尚未完全落地,生产系统仍要在查询网关、数据权限和结果校验层做硬约束。

5. Schema + 语义检查 + SQL 解析的验证链

validation/validate.py 使用 JSON Schema Draft 2020-12、PyYAML 和 sqlglot,当前覆盖:

  • YAML/JSON 结构、类型与枚举;
  • 数据集、字段、指标、关系名称唯一性;
  • 关系两端引用的数据集是否存在;
  • 支持方言的字段与指标 SQL 语法。

MDX、Tableau 和 MAQL 暂不由 sqlglot 解析,会跳过语法检查。代码也尚未成为完整的语义编译器:它不会执行指标,不负责查询规划,关系字段是否真实存在、复合键业务语义和跨数据集指标是否可安全聚合,仍需要更强的 conformance suite 或目标平台验证。

6. 八组参考转换器,Python 与 Java 双栈落地

同日代码树中实际存在 8 个转换器目录:

转换器主要实现文件数测试相关文件观察重点
dbtPython134MSI 与 Ossie 双向映射、表达式处理
GoodDataPython158独立模型类型与 round-trip 测试
HoneydewPython51较轻量的参考实现
OmniPython3326多文件真实布局、属性与往返测试
OrionBeltPython3016OBML、本体映射、无静默丢失测试
PolarisJava101API Client、Importer、Exporter
SalesforceJava362配置驱动映射管线与多类 Handler
SnowflakePython52Ossie 到 Snowflake YAML

仓库共检出 175 个非 Git 文件、约 42,568 行文本,其中 converters/ 占约 35,778 行;另有 61 个 Python 文件、38 个 Java 文件和 28 个测试文件。GitHub 显示的“Python 75.1% / Java 24.9%”主要反映这些参考适配器,不能把语言占比误读为核心规范的运行时架构


技术架构深度解析

当前架构:Ossie 是中间表示,不是查询引擎

 复制代码                 ┌──────────────────── 作者/来源 ────────────────────┐
                 │ dbt / Omni / Salesforce / Snowflake / 手写 YAML │
                 └────────────────────────┬─────────────────────────┘
                                          │ Import Converter
                                          ▼
┌──────────────────────────────────────────────────────────────────────┐
│                    Apache Ossie 中间语义模型                         │
│  version                                                             │
│  ├─ datasets ─ fields ─ physical source                              │
│  ├─ relationships ─ simple/composite keys                            │
│  ├─ metrics ─ multi-dialect expressions                              │
│  ├─ ai_context ─ instructions/synonyms/examples                      │
│  └─ custom_extensions ─ vendor metadata                              │
└───────────────────────────────┬──────────────────────────────────────┘
                                │
               ┌────────────────┼────────────────┐
               │                │                │
               ▼                ▼                ▼
       JSON Schema        语义引用检查       sqlglot 语法检查
               └────────────────┬────────────────┘
                                │ Valid Model
                                ▼
                Git / Catalog / CI / Sync Pipeline
                                │ Export Converter
          ┌─────────────────────┼──────────────────────┐
          ▼                     ▼                      ▼
       BI 平台              数据/指标平台            AI Agent

这个边界很关键:Ossie 解决的是定义、交换与验证,不负责连接数据库执行查询。当前采用者应把它放在 GitOps/CI 管线与平台适配层,而不是把它当作 Cube、MetricFlow 或 BI 查询服务的直接替代品。

数据流:一次导入,验证后向多端发布

 复制代码Vendor A Model
    │
    ├─ 1. 导入:标准字段直接映射
    │         厂商特性写入 custom_extensions
    ▼
Ossie YAML/JSON
    │
    ├─ 2. 结构校验:JSON Schema
    ├─ 3. 语义校验:唯一名、关系端点
    ├─ 4. 表达式校验:按方言交给 sqlglot
    ▼
Versioned Semantic Asset
    │
    ├─ 5. 目标方言选择:目标方言 > ANSI_SQL > 警告/失败
    ├─ 6. 还原目标厂商扩展
    ▼
Vendor B / BI / Agent Context

在这个流程里,最难的不是序列化,而是信息损失管理。Ossie 用 custom_extensions 保存核心规范无法表达的厂商设置;转换器测试则要验证 A → Ossie → A 后的结构和语义等价。Omni、GoodData、OrionBelt 已出现专门的 round-trip/property/no-silent-loss 测试,这是比“能导出一个 YAML”更有意义的成熟度指标。

当前规范与目标架构之间的缺口

层面当前 0.2.0.dev0 可见能力路线图目标采用风险
表达式多厂商方言并存,sqlglot 做部分语法检查OSSIE_SQL_2026 可移植子集、明确执行边界同一指标的多方言版本可能漂移
指标顶层 metric + SQL 表达式粒度、聚合方法、派生/累计指标、指标树跨粒度聚合可能语义不一致
关系数据集端点、简单/复合键基数、Join 类型、复杂关系Fan-out 与重复聚合风险尚需平台处理
本体已有 ontology 草案与 Flights 示例概念层、物理映射、非表格模型结构互通不等于概念互通
执行无内置查询执行语义查询语言、参考编译器、SQL 计划当前不能独立完成问数闭环
治理Schema、版本字段、Apache 流程Registry、访问控制、认证、稳定 ID企业级治理能力仍需外围系统

代码实测:三类示例通过验证

本文在提交 cdf95904 上实际运行验证器,结果为:

输入Schema实测结果
examples/tpcds_semantic_model.yamlcore-spec/osi-schema.jsonValidation PASSED
examples/flights.yamlontology/ontology.jsonValidation PASSED
本文最小 Sales 模型core-spec/osi-schema.jsonValidation PASSED

验证环境为 Python 3.11,依赖 PyYAML、jsonschema 与 sqlglot。由于当前 Hermes 进程已有虚拟环境变量,实测时需清理 VIRTUAL_ENV/PYTHONPATH 后使用隔离的 uv 环境;普通独立终端可按下方虚拟环境方式运行。


README 核心内容摘要

项目要解决的四类碎片化

README 与项目文档把问题归纳得很清楚:

  • Metric Drift:不同工具里的同名 KPI 算法不同;
  • Manual Translation:团队人工迁移、对账语义定义;
  • AI Hallucinations:Agent 面对冲突或缺失的业务逻辑时生成不可靠答案;
  • Integration Debt:每引入一套工具,就多一组脆弱的点对点连接。

对应的解法是把 Ossie 作为单一交换源,通过 Hub-and-Spoke 转换器分发到各平台,并用 ai_context 为 AI 提供业务说明。文档列出了 50+ 参与组织,覆盖 Databricks、dbt Labs、GoodData、Mistral AI、Salesforce、Snowflake、ThoughtSpot 等;这里应理解为项目文档声明的生态参与名单,不等同于每家都已提供生产级兼容实现。

设计哲学

  1. 标准化但可扩展:核心对象尽量厂商中立,私有能力装入 custom_extensions
  2. 人可读、机可验:用 YAML 方便评审,用 JSON Schema 方便 IDE、CI 和程序验证;
  3. 逻辑与执行解耦:规范描述业务含义,不强制绑定某个数据库或查询引擎;
  4. 渐进采用:先选一个成熟模型试点,不要求一次重写所有平台;
  5. Apache 治理:重要规范变更要公开讨论、至少 7 天评审,并需要三个绑定 +1 且无否决。

版本与成熟度必须分开看

项目文档称当前开发版本为 0.2.0.dev0、latest released 为 0.1.1,但同日 GitHub API 没有返回正式 Release,标签列表只看到 osi-0.1.1-rc1。这可能是发布流程与仓库页面尚未同步,也可能意味着正式发布仍处在 Apache 孵化流程中。生产采用时应锁定具体 schema 文件与 commit SHA,而不要只依赖 README 中的“latest”措辞。

生态集成现状

README 主清单明确提到 dbt、GoodData、Polaris、Salesforce 等;代码树还包含 Omni、OrionBelt、Honeydew、Snowflake。需要逐个审计方向覆盖度:有的实现双向 import/export,有的只有单向导出;有的测试 round-trip,有的测试量仍较少。因此“目录存在”只能证明参考代码已开始落地,不能直接等价为完整兼容认证。


快速上手

1. 克隆并准备验证环境

 复制代码git clone 
cd ossie
python3 -m venv .venv
source .venv/bin/activate
python -m pip install 'pyyaml>=6.0.3' 'jsonschema>=4.26.0' 'sqlglot>=30.12.0'

2. 验证仓库自带的 TPC-DS 模型

 复制代码python validation/validate.py examples/tpcds_semantic_model.yaml
# Validation PASSED: tpcds_semantic_model.yaml

3. 建立一个最小模型

保存为 sales.yaml

 复制代码version: "0.2.0.dev0"
semantic_model:
  - name: sales
    datasets:
      - name: orders
        source: analytics.public.orders
        primary_key: [order_id]
        fields:
          - name: amount
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: amount
    metrics:
      - name: revenue
        expression:
          dialects:
            - dialect: ANSI_SQL
              expression: SUM(orders.amount)
        ai_context:
          synonyms: ["营收", "销售额"]
 复制代码python validation/validate.py sales.yaml
# Validation PASSED: sales.yaml

4. 接入 CI

 复制代码# .github/workflows/validate-ossie.yml
name: Validate Ossie Model
on: [push, pull_request]
jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install pyyaml jsonschema sqlglot
      - run: python ossie/validation/validate.py semantic-models/sales.yaml 
             --schema ossie/core-spec/osi-schema.json

更稳妥的企业试点方式是:先把 Ossie 仓库或 schema 固定到特定 commit,在 PR 中评审语义变更;验证通过后再调用目标平台转换器,并对导出物执行平台原生校验与关键指标回归测试。


增长速度与社区热度

增长速度评估

指标数据解读
Trending 排名#1 / 17当日关注度极高,但不能等同于长期采用率
快照 Stars1,055同日 API 补充核验已变为 1,056
今日新增 Stars未保留不根据排名或前后 API 差值伪造全天增量
项目年龄240.02 天从 2025-11-18 创建时间算至快照日
生命周期平均4.40 Stars/天仅是累计基线,不能代表当日增长速度
Fork / Star13.46%142 Forks,参与/二次开发信号较强
Open Issues57每千 Star 约 54.03 个,反映规范仍在快速讨论与打磨
Commits210完整历史核验值
近 7 / 30 天提交44 / 5088% 的近 30 天提交集中在最近 7 天,开发显著加速
贡献者API 分页约 30Git 历史识别到 36 个 author identity,口径不同

从绝对 Star 看,Ossie 还不是大众级项目;从协作结构看,它更像一个正在进入标准化窗口的行业工程。Top Contributors 中 khush-bhatia 36 次、kurtStirewalt 31 次、karanasher 19 次、sfc-gh-kbhatia 16 次、baruchoxman 15 次,贡献并非完全由单一账号承担。最近提交覆盖 Omni、OrionBelt、dbt、表达式语言、许可证与 ASF 模板,说明热度背后有真实的规范和适配器推进,而不只是 README 宣传。

风险同样明显:57 个 Open Issues、Draft 版本、没有正式 GitHub Release,以及大量核心语义仍在路线图中,意味着接口和模型可能继续变化。综合判断为:短期增长动能高,行业影响潜力高,规范稳定性中低,生产成熟度处于早期试点阶段。

今日 GitHub Trending 完整榜单

#项目同日 Stars主语言一句话定位
1apache/ossie1,056PythonAI、分析与 BI 的厂商中立语义交换规范
2Nutlope/hallmark11,393CSS面向编码 Agent 的反 AI 同质化设计 Skill
3OpenCut-app/OpenCut74,362TypeScript开源 CapCut 替代品
4PostHog/posthog35,980Python分析、回放、实验、日志与 AI 可观测平台
5openinterpreter/openinterpreter66,132Rust面向开放模型的本地 Coding Agent
6PrismML-Eng/Bonsai-demo1,617ShellPrismML Bonsai 演示项目
7hasaneyldrm/exercises-dataset15,231HTML1,324 个动作、六语言说明的健身数据集
8Shubhamsaboo/awesome-llm-apps123,226Python可运行的 Agent 与 RAG 应用合集
9lobehub/lobehub80,333TypeScriptAI 团队编排与持续运营平台
10YimMenu/YimMenuV21,532C++GTA 5 Enhanced 实验性菜单
11HKUDS/DeepTutor27,082Python终身个性化 AI 教学系统
12mattpocock/skills174,841Shell工程师编码 Skills 集合
13github/copilot-sdk9,716Java将 Copilot Agent 集成到应用的多平台 SDK
14ibelick/ui-skills4,503TypeScript面向设计工程师的 UI Skills
15Graphify-Labs/graphify89,509Python把代码、文档与媒体构造成可查询知识图谱
16codecrafters-io/build-your-own-x526,623Markdown从零重建技术系统的学习资源
17ossu/computer-science206,732HTML免费、自学型计算机科学课程路径

适用场景

场景为什么适合 Ossie落地建议
多 BI 平台指标治理用同一份指标、字段和关系定义减少口径漂移先选收入、活跃用户等少量核心指标试点
dbt / Warehouse / BI 迁移Hub 格式减少重复手写映射对转换前后模型做 round-trip 与结果回归
企业 Text-to-SQL / 数据 Agentai_context 提供同义词、说明与示例与权限网关、认证指标、查询审核共同使用
数据目录与语义资产管理YAML 可进 Git,Schema 可进 CI固定 schema commit,建立 Owner 和 PR 审批规则
软件厂商增加互操作能力接入一套 Ossie import/export 即可连接更多生态明确不支持能力与 custom_extensions 策略
行业标准与研究评估Apache 治理、公开路线图,适合参与规范讨论重点跟踪粒度、关系基数、表达式语言与 Registry

暂不建议直接采用的情况

  • 需要开箱即用的指标查询 API 或 SQL 执行引擎;
  • 强依赖复杂粒度、累计指标、非等值 Join、权限策略而无法接受自建扩展;
  • 无法锁定 schema 版本,却要求长期稳定兼容;
  • 只使用单一 BI 平台,且不存在跨工具语义迁移问题。

总结

Apache Ossie 的野心,是成为“语义层的 Parquet”:不是替代数据库、BI 或指标平台,而是让它们能交换同一套业务意义。它把数据集、关系、指标、多 SQL 方言、AI 上下文和厂商扩展组织成可审查、可验证、可版本化的中间模型,并用 Hub-and-Spoke 把 N 个工具之间的连接复杂度从平方级降为线性级。

今天最值得关注的是方向与生态协作,而不是版本号。八组转换器、50+ 组织名单、近 7 天 44 次提交和 Apache 治理证明项目正在加速;0.2.0.dev0 Draft、缺失的执行引擎、尚未定型的粒度与关系语义,则提醒我们不要把愿景当成完成度。对多平台数据团队,最佳策略不是立即全量迁移,而是锁定 commit,从一个高价值语义模型开始,建立验证、转换和结果回归闭环。


数据来源:GitHub Trending 快照(2026-07-17)、GitHub REST API、Apache Ossie README / docs / core spec / roadmap,以及对提交 cdf95904 的本地代码树与验证器实测。

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4