Appearance
与dbt集成
概述
OraAI 专为与 dbt(数据构建工具)项目深度集成而设计,能够轻松将现有数据模型转化为语义模型,大幅减少重复工作。这种集成打造了一个高效的工作流,充分发挥 dbt 的数据转换优势与 OraAI 的 AI 智能分析能力,实现双向增强。
集成工作原理
OraAI CLI提供与dbt的原生集成,通过以下关键机制工作:
1. 项目发现
当您在包含dbt项目的目录中运行orai-cli init时:
- OraAI自动检测
dbt_project.yml的存在 - 它使用dbt项目名称作为默认数据源名称
- 它根据您的dbt项目配置识别模型路径
- 它使用dbt配置文件中的设置配置数据库连接
- 它可以选择性地从您的dbt目录生成初始语义模型
# 自动检测dbt项目设置并可选择性地生成语义模型
orai-cli init2. 目录利用
orai-cli init和orai-cli generate都使用dbt的catalog.json作为数据模型的真实来源:
- 它们会查找由
dbt docs generate生成的现有catalog.json文件 - 如果没有目录存在,它们可以为您触发目录生成
- 目录提供关于您的模型、列和文档的全面元数据
# 从dbt目录生成语义模型
orai-cli generate3. 语义模型生成
当将dbt模型转换为OraAI语义模型时:
- 每个dbt模型在OraAI中成为一个语义模型
- 列类型被智能地映射为维度或度量:
- 数字列成为具有适当聚合的度量
- 文本、日期、布尔列成为维度
- dbt中的描述在语义层中得到保留
- 在可能的情况下推断主键和关系
设置过程
要使用现有dbt项目设置OraAI项目:
- 导航到您的dbt项目目录:
cd your-dbt-project- 初始化您的OraAI项目:
orai-cli initCLI将:
- 自动检测您的dbt项目
- 建议适当的设置
- 可选择性地从您的dbt目录生成初始语义模型
- 生成或更新语义模型:
orai-cli generate此命令:
- 可以随时运行以更新语义模型
- 在添加新模型或列时很有用
- 保留现有的自定义设置,同时添加新元素
- 如果dbt目录不存在,将生成dbt目录
目录结构集成
OraAI在如何与您的dbt目录结构集成方面很灵活:
your-dbt-project/
├── dbt_project.yml
├── models/
│ ├── marts/
│ │ └── core/
│ │ ├── orders.sql
│ │ └── orders.yml # dbt YAML
│ └── staging/
│ └── ...
├── orai.yml # 由orai init创建
└── semantic_models/ # 由orai generate创建
├── marts/
│ └── core/
│ └── orders.yml # OraAI语义模型
└── staging/
└── ...您可以选择:
- 在SQL文件旁生成语义模型
- 为语义模型使用单独的目录
- 自定义路径以适应您的项目结构
更新模型
当您的dbt模型发生变化时:
- 生成更新的语义模型:
shell
$ orai-cli generate这会在添加新列或模型的同时保留您的自定义增强。
- 部署您更新的模型:
shell
$ orai-cli deploy
🚀 开始部署语义模型...
......
✅ 所有模型已成功部署!调试dbt集成
如果您在dbt集成方面遇到问题:
- 如果
dbt docs generate不工作,请先尝试运行dbt clean以确保您的dbt目录是最新的 - 检查您的dbt profiles.yml是否有有效的数据库凭据
- 检查dbt和OraAI配置中的架构和数据库设置