创建 dbt 项目

dbt 入门

Mike Metzger

Data Engineer

什么是 dbt 项目

  • 包含在 dbt 中处理数据的组件

    • 项目配置
    • 数据源与目标
    • SQL 查询
    • 模板
    • 文档
  • 以文件夹结构实现

dbt 文件夹结构

dbt 入门

如何创建新项目

  • 使用 dbt init 命令
    • 询问项目名称
    • 询问数据库/数据仓库类型
  • 可用 dbt init <projectname> 合并步骤
  • 创建顶层项目文件夹及所需结构
repl:~/workspace$ dbt init
16:38:37  Running with dbt=1.8.4
Enter a name for your project (letters, digits, underscore): test_project
Which database would you like to use? [1] duckdb
Enter a number: 1
...
dbt 入门

用项目配置文件定义配置

  • 配置文件表示一种部署场景
    • 开发
    • 预发布/测试
    • 生产
  • 一个 dbt 项目可有多个配置文件
  • profiles.yml 中定义
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt 入门

YAML

  • Yet Another Markup Language
  • 文本文件,但缩进很重要(类似 Python)
  • 广泛用于配置场景
  • 规则易踩坑,主要按示例对齐条目
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt 入门

DuckDB

  • 开源无服务器数据库
    • 类似 sqlite
  • 为分析而生
  • 向量化(非常快)
  • 易用

duckdb 标志

dbt 入门

开始练习吧!

dbt 入门

Preparing Video For Download...