You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DBT链式模型执行疑问:读取物化表还是重跑SQL?

DBT模型引用的执行逻辑解答

当所有模型都设置为materialized: table,且形成Query1 > Query2 > Query3 > Query4的依赖DAG时,Query2中{{ref('Query1')}}的行为规则如下:

  • 常规场景下(非首次运行、Query1的代码/配置未修改、未触发强制刷新),DBT会直接读取Query1已经物化完成的物理表,不会重新执行Query1的全部SQL。
  • 如果是首次运行整个DAG,或者Query1的代码/配置有变更,或者执行命令时添加了--full-refresh参数,DBT会先重新执行Query1的SQL并生成最新的物化表,之后Query2再引用这个更新后的表。

本质上,DBT的核心逻辑是复用已物化完成的模型成果,不会无意义地重复执行上游模型的SQL,仅在上游模型需要更新时才会重新生成其物化表。

内容的提问来源于stack exchange,提问作者LvP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:10:30