DOSI + Databricks SQL

为 Databricks 数据和 AI Agent 构建语义层。

数据和计算仍留在 Databricks。团队先审核 Apache Ossie 模型中的指标定义,再由 DOSI 规划查询,向 Databricks SQL Warehouse 发送原生 SQL。

各部分如何协作
已有 SQL 与业务规则团队审核Apache Ossie 模型
Agent 与应用 · MCP / API / CLIDOSI通过 Statement Execution API 发送原生 SQL
Databricks SQL Warehouse
结果经 DOSI 返回给工具

定义独立于数仓;由配置的 Databricks SQL Warehouse 执行查询。

Apache Ossie 定义Databricks SQL WarehouseMCP · API · CLI
Datus 的作用

为 Agent 提供业务上下文的两种架构。

Genie Ontology 结合 Unity Catalog 中治理过的语义,以及从 Databricks 资产推断的上下文。DOSI 则使用独立于数仓、由团队审核的 Apache Ossie 模型,并把指标请求编译为 Databricks SQL。

Databricks + Genie Ontology

Unity Catalog Semantics + 从查询、仪表板和 Agent 推断的上下文
Genie Ontology
Genie One / Code / Agents · 外部 Agent 可通过 MCP 访问
Databricks SQL Warehouse

在 Databricks 平台内治理并推断上下文。

Databricks + Datus / DOSI

团队审核的 Apache Ossie 模型
DOSI 语义层
Agent 与应用 · MCP / API / CLI
Databricks SQL Warehouse

语义模型独立管理,并可在受支持的 SQL 后端复用。

DOSI 是语义层,而不是本体产品;两条路径都由 Databricks 执行查询。DOSI Databricks 连接器文档

先审核指标定义

在 Apache Ossie 模型中描述数据集、指标表达式、维度和关系。团队审核后,再供 Agent 或应用使用。

沿用现有工具

DOSI 通过 MCP、API 和 CLI 提供兼容模型的访问方式。底层 Databricks 表无需迁入另一个数仓。

看清执行过程

DOSI 将指标请求编译成 Databricks SQL,并发送给 SQL Warehouse。你可以在工作流中核查模型、SQL 和结果。

选择 Databricks 语义层

在 DOSI 统一定义指标,让多个 BI 复用。

保留 Databricks 的数据基础,用 Apache Ossie 模型统一定义指标,由 DOSI 编译并执行,再通过 API 集成向不同 BI 工作流提供结果。

01

Gold 表与语义定义如何分工?

继续使用现有流水线准备数据和可复用的表。语义模型描述如何基于这些输出计算指标、按维度分组。使用 DOSI 时,审核后的 Apache Ossie 定义引用 Databricks 数据,生成的 SQL 仍由 Databricks 执行。

查看语义模型示例
02

Power BI、Tableau 等 BI 共用一套指标

在 DOSI 使用的模型中定义一次计算。DOSI 根据请求的指标、维度和筛选条件,生成 Databricks SQL。集成适配层将 BI 请求映射为 DOSI API 请求,由 DOSI 在 Databricks 上执行查询并返回结果。指标计算保留在 DOSI,Power BI、Tableau 等 BI 负责展示数据;此方案需要为 BI 工具配置或开发适配层。

了解 DOSI 接口
03

在统一审核的模型中维护共享 KPI

数据团队在 Apache Ossie 模型中维护指标,DOSI 按这些定义规划和执行请求。集中审核变更,让各使用流程请求相同的指标,为报表和 Agent 提供共享计算来源,减少分别维护的公式。

了解语义层方案

一个共享模型,通过 DOSI 提供指标服务。

Apache Ossie(孵化中)定义共享模型。BI 适配层向 DOSI 发送指标请求;DOSI 将兼容定义编译为 SQL,在 Databricks 上执行并返回结果。

Apache Ossie共享指标 · 维度 · 关系
BI 与报表Power BI
Tableau
BI 集成适配层映射指标、维度与筛选条件REST API
DOSI验证 · 编译 · 执行
Databricks执行原生 SQL
← 结果经 DOSI 与适配层返回

集成方案示意:需为目标 BI 工具配置或开发适配层,处理认证、请求映射和刷新;此处不代表已有内置 Power BI 或 Tableau 连接器。

了解开放语义层
具体流程

从审核过的指标到数仓查询。

配置 SQL Warehouse、验证 Apache Ossie 模型,再请求“按订单状态统计收入”等指标。

dosi-connections.yaml

dosi-connections.yamlYAML
datasources:
  databricks:
    type: databricks
    host: ${DATABRICKS_HOST}
    warehouse: ${DATABRICKS_WAREHOUSE_ID}
    password: ${DATABRICKS_TOKEN}
    catalog: analytics
    schema: reporting

DOSI CLI · 示例请求

dosiCLI
dosi query --model model.yaml \
  --metrics revenue --group-by orders.status \
  --execute --connection databricks

命令需要你自己的、已验证的 model.yaml,以及正在运行的 SQL Warehouse。本页面没有执行 Databricks 查询,也没有展示虚构结果。

连接 Databricks SQL

由 SQL Warehouse 执行查询。

DOSI 通过 Databricks Statement Execution API 连接。需要工作空间主机名、SQL Warehouse ID、令牌及相应的数据访问权限。

DOSI Databricks 连接器文档
  1. 01

    选择 SQL Warehouse

    从 Databricks 连接信息中复制 Warehouse ID。确保令牌持有者有权访问 Warehouse,以及模型引用的 catalog 和 schema。

  2. 02

    把凭据放在模型外

    在 DOSI 连接配置中填写主机名、Warehouse ID 和令牌。用环境变量引用令牌,不要把它提交进代码库。

  3. 03

    验证并执行指标

    审核模型,使用 --connection databricks 运行示例请求,再检查 SQL 和结果。已停止的 Warehouse 可能需要启动时间。

DOSI 通过 Statement Execution API 连接你的 Databricks SQL Warehouse,查询使用配置令牌对应的访问权限。

团队如何使用

同一业务含义,供多个工具调用。

让团队审核过的业务定义出现在人和 Agent 提问的地方。

Agent 辅助分析

Agent 可以向 DOSI 请求已命名的指标,不必仅凭表名和列名猜测业务含义。

共享报表逻辑

应用和分析师可以引用同一模型;Databricks 仍是查询引擎和结果来源。

常见问题

Databricks 语义层常见问题

连接前需要了解的范围与配置。

DOSI 会取代 Databricks SQL 吗?

不会。DOSI 读取兼容的语义模型、编译指标请求,并将 SQL 发送到你配置的 Databricks SQL Warehouse;查询仍由 Databricks 执行。

DOSI 与 Genie Ontology 有什么区别?

Genie Ontology 结合 Unity Catalog 中治理过的语义和推断的上下文,供 Genie 体验及通过 MCP 接入的外部 Agent 使用。DOSI 则使用独立管理、由团队审核的 Apache Ossie 语义模型,在受支持的 SQL 后端规划指标查询。DOSI 不是本体产品;在本页面的架构中,Databricks 仍负责执行查询。

可以复用现有 Databricks 指标定义吗?

可以,从导出的定义文件开始。Metric View YAML 包含数据源、维度或字段、度量、筛选条件和关联;DESCRIBE TABLE EXTENDED <catalog.schema.metric_view> AS JSON 可在 view_text 中返回 YAML。SQL 文件和导出的仪表板 .lvdash.json 文件也能提供计算依据。将这些文件与相关源数据表结构交给 Datus Agent,作为起草 Apache Ossie 语义模型的上下文。受支持的 Metric View 定义还可使用 Apache Ossie Databricks 转换器。审核映射、计算粒度和未支持的功能后,用 DOSI 验证模型,并在 Databricks 中核对代表性查询结果。这是基于文件的转换流程,不是自动实时同步。

Unity Catalog 中的元数据已经是语义层了吗?

数据目录元数据与语义计算承担不同职责。Unity Catalog Metric Views 提供可复用的度量与维度,表名和说明本身不足以定义所有 KPI。DOSI 使用独立的兼容 Apache Ossie 模型明确指标计算,再编译为 Databricks SQL 查询。

语义层会替代 Gold 层或 dbt 转换吗?

不会。整理好的 Gold 表与 View 仍可作为数据来源,语义模型在此基础上定义业务计算、维度和关系。需要明确哪些转换应在数据准备阶段完成,哪些计算需要随查询分组复用。

只提供数据目录说明,AI Agent 就能正确使用指标吗?

说明有助于理解,但 Agent 还需要明确的计算定义,以及受支持的指标请求方式。在 DOSI 流程中,通过受支持的 Agent 接口提供审核后的模型,并检查生成的 SQL。数仓连接本身不会让 Agent 自动使用该模型,也不保证答案正确。

从团队信任的一个指标开始。

把定义整理为可审核的模型,再将 DOSI 连接到 Databricks SQL Warehouse。