DOSI 以 Apache Ossie 为核心模型规范提供执行能力。数仓、文档、SQL 与 ETL 提供建模依据,形成包含指标与本体关系的共享语义模型,供 Agent、应用和 BI 复用。
语义层解决方案

让团队与 Agent 共用业务定义的语义层。

语义层集中定义业务指标、维度与关系,让团队、BI 工具和 AI Agent 使用同一套业务口径。DOSI 校验兼容的 Apache Ossie 模型,将受支持的指标查询编译成数仓原生 SQL,让团队能够审核定义,并核查结果的生成依据。

统一定义业务含义,在不同工具中复用。

语义模型将业务逻辑与数据映射放在一起,让团队、BI 工具和 Agent 在回答不同问题时,使用同一套业务定义。

Datus Studio语义模型工作流程示意
Apache Ossie

指标

booked_revenueSUM((lines.gross_sales_cents-lines.discount_cents)*0.01)
order_countCOUNT(DISTINCT orders.order_id)
order_return_ratereturned_order_count*1.0/NULLIF(order_count,0)

维度

citycustomers.cityString
categoryproducts.categoryString
delivered_atorders.delivered_atDate

在同一份模型中,探索指标与维度、业务关系及数据源映射。

让业务定义独立于单一技术栈。

从已有 SQL、受支持的 BI 看板及新需求中整理业务定义,以 Apache Ossie 格式保存。这一标准开放、厂商中立,便于团队审核、维护和复用。

从日常数据工作中,沉淀业务定义。

已有 SQL、BI 看板和新的业务问题,都包含建模所需的知识。Datus Agent 帮你将它们整理为可复用的语义定义。

已有 SQL

从历史 SQL 提炼

以历史查询和 SQL 文件为依据,将可复用的计算、筛选条件、维度与数据源映射整理为语义模型。

计算逻辑、筛选条件与分组方式
看板查询逻辑

从 BI 看板梳理

从受支持的 BI 看板中选择查询,梳理图表背后的计算逻辑,将分散的业务定义汇入共享模型。

图表查询与源数据
新的业务需求

在新需求开发中沉淀

描述新的业务需求,与 Datus Agent 在开发过程中一起定义数据集、业务关系与指标,再校验模型,让定义随工作成果一起沉淀。

业务需求与实时表结构

共享的语义定义

  • 数据集
  • 指标
  • 维度
  • 业务关系

由 Datus Agent 辅助起草,团队审核定义、校验模型后再使用。

查看建模流程

开放的定义,原生的执行。

Apache Ossie 是 DOSI 语义执行的核心规范。DOSI 读取兼容的 Ossie 模型,校验业务定义,再将语义查询编译为已配置数仓的原生 SQL。

选择一个环节,了解它的作用。

1 / 4
共享定义

从 SQL、看板查询或新业务需求中整理并审核定义,将数据集、维度、指标与关系统一保存在兼容的 Ossie 模型中。

指标维度业务关系

以已有的业务定义,开始使用 Datus。

将审核后的 Ossie 模型作为 Datus 的起点,为团队和 Agent 构建开放、厂商中立的语义层,并持续完善业务上下文。

免费开始使用

Apache Ossie(孵化中)提供开放规范。DOSI 采用 Elastic License 2.0 许可。Datus Agent 是开源项目。

让团队共同审核和完善业务上下文。

将数仓、文档、SQL 与 ETL 中的知识带入共享的建模流程。Datus Agent 辅助起草定义,团队在 Datus Studio 中核查、完善并验证模型。

利用已连接的数据源,以及所选的 SQL 或文档,初始化项目上下文。

Datus Studio建模工作区工作流程示意

初始化项目上下文

基于 SQL 逆向生成文档。只读 —— 不写入数据库。

已选 2 个工作区勾选与上传的文件会合并使用。

Northstar
1选择来源2确认并运行

一份语义模型,供 BI、应用与 AI Agent 复用。

在团队工作的地方提供审核后的定义,为不同消费方选择合适且受支持的接口。

northstar_premier.yaml节选
version: 0.2.0.dev0semantic_model:- name: northstar_premier  # …  datasets:  - name: customers    source: northstar_living.dim_customer    primary_key:    - customer_id    # …  metrics:  - name: booked_revenue    expression:      dialects:      - dialect: ANSI_SQL        expression: SUM((lines.gross_sales_cents-lines.discount_cents)*0.01)  # …
Apache Ossie 语义模型
DOSI语义执行

BI 与分析

SQL 与结果
Metabase
Superset
Tableau

AI Agent

MCP
Claude Code
Codex
Datus Agent

应用

REST / Python
Python
JavaScript
Datus Studio
常见问题

关于语义层的常见问题

语义层与语义模型有什么区别?

语义模型记录数据集、维度、关系和指标等业务定义,语义层则让消费方能够使用这些定义。在 Datus 中,DOSI 校验兼容的 Apache Ossie 模型,将受支持的指标查询编译为 SQL,再通过接口供团队、应用和 Agent 使用。

DOSI 的语义查询在哪里执行?

DOSI 校验兼容的模型,将所需指标编译为原生 SQL,由已配置的数仓对其数据执行。团队可以核查生成的查询与数据源映射,再通过 CLI、REST、Python 或 MCP 接口访问结果。

更换数仓时,哪些内容可以复用?

兼容的 Apache Ossie 定义可以复用,由 DOSI 为受支持的目标方言编译查询。切换数据源时仍需检查连接配置、源数据映射、SQL 表达式与功能支持。多个数仓共享定义,不代表查询会自动关联多个数仓中的实时数据。

AI Agent 如何使用语义层?

Agent 可以通过 MCP 工具发现指标与维度、编译受支持的查询,并获取已配置数据源中的结果。团队审核底层业务定义,也可以核查生成的 SQL。具体连接方式与可用工具见 MCP 指南。

DOSI 是开源软件吗?

DOSI 采用 Elastic License 2.0 许可。Apache Ossie(孵化中)为兼容语义模型提供开放规范,Datus Agent 则是开源项目。开放的模型格式与软件许可适用于系统中的不同部分,选择部署方式和工作流程时,需要分别了解。

深入了解概念,开始实际使用。

什么是语义层?语义模型示例Apache Ossie 与 DOSI 快速开始

让共享的业务上下文进入实际工作。

让团队与 Agent 使用可以理解、审核和复用的语义模型。

免费开始使用