全部数据库Datus + Snowflake

为 Snowflake 构建语义层,让 AI Agent 理解业务。

Snowflake 继续承担数据存储和查询执行。让 Agent 使用经过团队审核的业务定义,再由 DOSI 将受支持的指标请求编译为 Snowflake 原生 SQL。

已在使用 Snowflake Semantic Views?了解两种方式如何配合。
各部分如何连接
已有 SQL 与文档Datus Agent + 团队审核Apache Ossie 模型
AI Agent 与应用MCP · API · CLI
DOSI
指标查询规划
Snowflake 数仓原生 SQL
结果经 DOSI 返回 Agent 与应用

DOSI 规划查询,由配置好的 Snowflake 数仓执行。

Apache Ossie 定义原生 SQL 下推MCP · API · CLI
Datus 如何配合 Snowflake

已经在使用 Snowflake Semantic Views?

Semantic Views 是 Snowflake 内的原生业务定义。Datus 使用独立的 Apache Ossie 模型,经过团队审核后,由 DOSI 提供给 Agent 和应用使用。两种方式可以并行;当前流程不会自动导入或替代 Snowflake Semantic Views。

数仓原生定义

Snowflake + Semantic Views

Cortex Agents · BI · SQL
Snowflake 内部
Semantic ViewSchema 级对象
数据表与数仓

业务定义存于 Snowflake,查询也由 Snowflake 执行。

可复用的模型定义

Snowflake + Datus

AI Agent 与应用 · MCP / API / CLI
Snowflake 外部
Apache Ossie 模型经过团队审核
DOSI编译原生 SQL
Snowflake 内部
数据表与数仓

DOSI 使用独立模型,由 Snowflake 执行 SQL。

两种方式可以并行。Datus 当前不会自动导入、查询或替代 Snowflake Semantic Views。了解 Snowflake Semantic Views了解 Snowflake 的 Ossie 转换方式

从已有知识开始

Datus Agent 辅助从已有 SQL、业务文档和数仓表结构中整理候选定义。团队审核模型后,再供 Agent 复用。

让模型跨工具使用

Apache Ossie(孵化中)是开放规范。DOSI 可以在 Snowflake 和其他受支持的 SQL 方言中执行兼容的模型,Agent 无需依赖同一个数仓原生语义对象。

核查原生 SQL 执行

DOSI 将受支持的指标请求转为 Snowflake SQL。你可以核查定义、生成的 SQL 与血缘;查询由配置好的 Snowflake 数仓执行。

从业务含义到 SQL

一份定义,一条可以核查的查询。

通过一个简短示例,查看 Apache Ossie 定义、DOSI 生成的 SQL,以及 Snowflake 连接配置。

1 / 3
下载完整示例模型

用 Apache Ossie 定义业务含义。

为指标命名,并映射到源数据字段。示例使用订单模型;团队维护业务逻辑,并在复用前审核变更。

orders-model.yaml · 节选YAML
semantic_model:
  - name: orders_model
    datasets:
      - name: orders
        source: main.orders
        # Fields and relationships omitted.
    metrics:
      - name: revenue
        expression:
          dialects:
            - dialect: ANSI_SQL
              expression: SUM(orders.amount)

SQL 由本地 DOSI 根据所链接的模型生成,本页面不执行 Snowflake 查询。YAML 节选省略了字段与关系;运行命令前请下载完整模型。

复现 SQL 编译结果
dosiCLI
dosi query --model orders-model.yaml \
  --metrics revenue --group-by orders.status \
  --dialect snowflake
连接你的数仓

从接入到第一次查询,路径清晰。

团队可以从 Studio 工作空间开始,也可以直接配置 DOSI 进行语义执行。以下步骤针对独立使用的 DOSI 连接器。

阅读 Snowflake 接入指南
  1. 01

    准备访问权限

    选择 Snowflake 用户,并授予工作负载所需的数仓和数据访问权限。为该用户注册密钥对,将私钥和口令保存在共享源码之外。

  2. 02

    添加连接配置

    设置账号、用户、数仓和数据命名空间。将 private_key_file 指向 PKCS#8 私钥,使用环境变量或团队认可的密钥管理方式保存凭据。

  3. 03

    先核查,再执行

    先编译模型并检查 SQL。启用相应连接器后,使用 --execute --connection snowflake,将受支持的查询提交给数仓。

执行能力取决于 DOSI 构建所包含的连接器,以及所配置 Snowflake 用户的权限。目前存在大规模多分区结果和部分窗口计算等限制,接入具体工作负载前请查看连接参考。

需要配置 Datus Agent 的 Snowflake 适配器?
共享上下文,支持不同工作方式

让 Snowflake 业务上下文服务更多工作。

按工作需要选择界面,底层复用共享定义与可核查的执行过程。

01

数据团队

在 Studio 中整合文件、SQL、结果与 Agent 对话。使用 Datus Agent 开展数据工程与分析,语义建模是其能力之一。

了解 Datus Studio
02

Agent 与开发者

通过受支持的 DOSI MCP、API 与 CLI 接口发现模型、查询指标。Snowflake 执行受支持的 SQL,应用决定如何呈现结果。

了解 Agent 接入
常见问题

关于 Snowflake 接入,你可能想了解这些。

连接方式、执行位置与产品之间的关系。

语义层为 Snowflake 增加了什么?

语义层将表和字段连接到共享的业务定义,包括指标、维度、计算与关系。Datus 帮助团队审核上下文,并让 Agent 在工作中使用。DOSI 将兼容的 Apache Ossie 定义编译为 Snowflake 原生 SQL。

查询在哪里执行?

独立使用的 DOSI Snowflake 连接器通过 Snowflake SQL API 提交原生 SQL,由所配置的 Snowflake 数仓执行。DOSI 负责查询规划与结果规范化,这不意味着查询结果永远不会离开 Snowflake。

Datus 能直接使用现有的 Snowflake Semantic Views 吗?

当前流程不会自动导入、查询或发布 Snowflake Semantic Views。它们是 Snowflake 的原生对象;Datus 使用独立的 Apache Ossie 模型,由 DOSI 将其编译为 Snowflake SQL。团队可以核对定义,再决定如何并行使用这两种方式。

DOSI 使用什么认证方式?

文档中的独立 Snowflake 连接器使用密钥对 JWT 认证,需要 PKCS#8 私钥。配置包括 account、username 和 private_key_file,也可设置数仓、数据库、Schema、角色与私钥口令。Datus Agent 适配器另有接入文档。

Open 是否意味着 DOSI 是开源项目?

Open 指 Apache Ossie 的开放规范,以及可审核、可复用的业务定义。DOSI 采用 Elastic License 2.0 许可。Datus Agent 是开源的数据 Agent,两者采用不同的许可。

权限与工作负载限制仍然适用吗?

适用。请求使用所配置 Snowflake 用户的身份和权限。DOSI 文档说明了连接器的限制,包括大规模多分区结果集与部分窗口操作。跨数据源复用模型,并不意味着可以执行任意跨数仓联邦查询。

让 Snowflake 业务上下文投入使用。

从 Datus Studio 开始,或将独立的 DOSI 运行时连接到你的数仓。