用 dbt build 实现自动化

dbt 中级

Mike Metzger

Data Engineer

回顾

  • sourcesseeds 向 dbt 提供初始数据
  • models 为下游用户进行数据转换(通常来自 sources/seeds
  • tests 可验证 sourcesseedsmodels
    • 内置(uniquenot_nullrelationaccepted_values
    • 单一
    • 通用/可复用
  • dbt build 执行以上所有任务,通常用于生产环境
dbt 中级

dbt build

dbt build

  • 多个任务的组合
  • 运行模型(dbt run
  • 通过测试进行验证(dbt test
  • 处理 seeds(dbt seed
  • 其他可用选项(dbt snapshot
  • 不执行 dbt docs 操作

也可分别运行各命令

施工中

1 照片作者:Randy Fath(来自 Unsplash)
dbt 中级

为何使用 dbt build?

  • 各子命令可单独使用,但无法覆盖所有潜在问题
    • dbt run 不会先做验证(即不运行测试)
    • dbt seed 对某些查询可能不完整
  • dbt build 会解析依赖,并在生产变更前运行所有测试
  • 仅测试或小型增量变更时,dbt build 可能过度
  • 如需,可改为手动逐步运行
dbt 中级

dbt build 选项

  • dbt build --select <object>
  • dbt build -d
  • dbt build --exclude <object>
dbt 中级

¡Vamos a practicar!

dbt 中级

Preparing Video For Download...