本包目录(311 条)
管道基础52 条
Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条CDC 与同步53 条

dbt 转换模型基础

dbt 用 SQL + 配置管理数仓内转换:模型之间用 ref() 表达依赖,dbt 负责编译、按依赖顺序执行、跑测试与生成文档;调度仍交给外部调度器。

模型models/ 下每个 .sql 文件是一个模型,SELECT 即定义
依赖{{ ref('upstream_model') }} 自动推导 DAG
命令dbt run / dbt test / dbt build / dbt docs generate

增量模型示例

增量模型示例
{{ config(materialized='incremental', unique_key='order_id') }}
SELECT order_id, amount, updated_at
FROM {{ ref('ods_orders') }}
{% if is_incremental() %}
WHERE updated_at > (SELECT max(updated_at) FROM {{ this }})
{% endif %}

执行与测试

执行与测试
dbt run --select dwd_orders+
dbt test --select dwd_orders
dbt build --select +ads_sales_daily
dbt 管转换质量,不含调度与告警;生产上通常由 Airflow/DolphinScheduler 调用 dbt 命令并串联上下游。

易错点

  • is_incremental() 在首次全量时不生效,逻辑要能同时适配首跑与增量
  • 模型依赖跨库引用要用 source()/ref() 声明,直接写物理库名会绕过依赖图

数据来源与参考

  • dbt 官方文档:Models、Incremental Models、ref 函数
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌