从已有知识开始
Datus Agent 辅助从已有 SQL、业务文档和数仓表结构中整理候选定义。团队审核模型后,再供 Agent 复用。
Snowflake 继续承担数据存储和查询执行。让 Agent 使用经过团队审核的业务定义,再由 DOSI 将受支持的指标请求编译为 Snowflake 原生 SQL。
已在使用 Snowflake Semantic Views?了解两种方式如何配合。DOSI 规划查询,由配置好的 Snowflake 数仓执行。
Semantic Views 是 Snowflake 内的原生业务定义。Datus 使用独立的 Apache Ossie 模型,经过团队审核后,由 DOSI 提供给 Agent 和应用使用。两种方式可以并行;当前流程不会自动导入或替代 Snowflake Semantic Views。
业务定义存于 Snowflake,查询也由 Snowflake 执行。
DOSI 使用独立模型,由 Snowflake 执行 SQL。
Datus Agent 辅助从已有 SQL、业务文档和数仓表结构中整理候选定义。团队审核模型后,再供 Agent 复用。
Apache Ossie(孵化中)是开放规范。DOSI 可以在 Snowflake 和其他受支持的 SQL 方言中执行兼容的模型,Agent 无需依赖同一个数仓原生语义对象。
DOSI 将受支持的指标请求转为 Snowflake SQL。你可以核查定义、生成的 SQL 与血缘;查询由配置好的 Snowflake 数仓执行。
通过一个简短示例,查看 Apache Ossie 定义、DOSI 生成的 SQL,以及 Snowflake 连接配置。
为指标命名,并映射到源数据字段。示例使用订单模型;团队维护业务逻辑,并在复用前审核变更。
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)DOSI 将选定的指标与维度编译为 Snowflake SQL。先核查查询,再通过已启用执行能力的连接运行。
SELECT
orders.status AS status,
SUM(orders.amount) AS revenue
FROM main.orders AS orders
GROUP BY orders.status明确选择账号、数仓、数据库和 Schema。DOSI 通过 Snowflake SQL API 连接,使用密钥对认证。
datasources:
snowflake:
type: snowflake
account: ${SNOWFLAKE_ACCOUNT}
username: ${SNOWFLAKE_USER}
warehouse: COMPUTE_WH
database: ANALYTICS
schema: MAIN
private_key_file: /path/to/snowflake_key.p8SQL 由本地 DOSI 根据所链接的模型生成,本页面不执行 Snowflake 查询。YAML 节选省略了字段与关系;运行命令前请下载完整模型。
dosi query --model orders-model.yaml \
--metrics revenue --group-by orders.status \
--dialect snowflake团队可以从 Studio 工作空间开始,也可以直接配置 DOSI 进行语义执行。以下步骤针对独立使用的 DOSI 连接器。
选择 Snowflake 用户,并授予工作负载所需的数仓和数据访问权限。为该用户注册密钥对,将私钥和口令保存在共享源码之外。
设置账号、用户、数仓和数据命名空间。将 private_key_file 指向 PKCS#8 私钥,使用环境变量或团队认可的密钥管理方式保存凭据。
先编译模型并检查 SQL。启用相应连接器后,使用 --execute --connection snowflake,将受支持的查询提交给数仓。
执行能力取决于 DOSI 构建所包含的连接器,以及所配置 Snowflake 用户的权限。目前存在大规模多分区结果和部分窗口计算等限制,接入具体工作负载前请查看连接参考。
按工作需要选择界面,底层复用共享定义与可核查的执行过程。
在 Studio 中整合文件、SQL、结果与 Agent 对话。使用 Datus Agent 开展数据工程与分析,语义建模是其能力之一。
了解 Datus Studio通过受支持的 DOSI MCP、API 与 CLI 接口发现模型、查询指标。Snowflake 执行受支持的 SQL,应用决定如何呈现结果。
了解 Agent 接入连接方式、执行位置与产品之间的关系。
语义层将表和字段连接到共享的业务定义,包括指标、维度、计算与关系。Datus 帮助团队审核上下文,并让 Agent 在工作中使用。DOSI 将兼容的 Apache Ossie 定义编译为 Snowflake 原生 SQL。
独立使用的 DOSI Snowflake 连接器通过 Snowflake SQL API 提交原生 SQL,由所配置的 Snowflake 数仓执行。DOSI 负责查询规划与结果规范化,这不意味着查询结果永远不会离开 Snowflake。
当前流程不会自动导入、查询或发布 Snowflake Semantic Views。它们是 Snowflake 的原生对象;Datus 使用独立的 Apache Ossie 模型,由 DOSI 将其编译为 Snowflake SQL。团队可以核对定义,再决定如何并行使用这两种方式。
文档中的独立 Snowflake 连接器使用密钥对 JWT 认证,需要 PKCS#8 私钥。配置包括 account、username 和 private_key_file,也可设置数仓、数据库、Schema、角色与私钥口令。Datus Agent 适配器另有接入文档。
Open 指 Apache Ossie 的开放规范,以及可审核、可复用的业务定义。DOSI 采用 Elastic License 2.0 许可。Datus Agent 是开源的数据 Agent,两者采用不同的许可。
适用。请求使用所配置 Snowflake 用户的身份和权限。DOSI 文档说明了连接器的限制,包括大规模多分区结果集与部分窗口操作。跨数据源复用模型,并不意味着可以执行任意跨数仓联邦查询。
从 Datus Studio 开始,或将独立的 DOSI 运行时连接到你的数仓。