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

如何查看dbt Core中增量模型的Merge执行指令?

查看dbt增量模型的实际执行SQL命令

问题

按照dbt文档配置merge策略的增量模型:

{{
    config(
        materialized='incremental',
        incremental_strategy='merge',
        unique_key='date_day'
    )
}}
...
{% if is_incremental() %}
...
{% endif %}

但执行dbt compile --select <your_model>只能得到SELECT语句和is_incremental()块内的内容,看不到针对目标数据库的完整执行命令(比如MERGE语句)。想验证unique_key或incremental_predicates是否真正生效,使用dbt Core搭配BigQuery适配器,需要适配任意适配器的方法。

解决方法

1. 用dbt run --dry-run生成完整SQL(通用所有适配器)

这是适配所有dbt适配器的通用方案,执行后会输出完整的数据库原生执行SQL(包括MERGE/UPSERT这类增量逻辑),但不会实际运行:

dbt run --dry-run --select <your_model>

通过输出的内容,你可以直接看到unique_key如何被用于行匹配、incremental_predicates如何转化为过滤条件,完全适配所有dbt支持的数据库。

2. 查看target目录下的运行时SQL文件

dbt在执行dbt run(包括dry-run模式)时,会把最终生成的原生SQL写入到target/run/<你的项目名>/models/<模型路径>/<模型名>.sql文件里,直接打开这个文件就能看到完整的执行命令,包括MERGE逻辑的所有细节。

3. BigQuery适配器的额外验证细节

如果用的是BigQuery,还可以:

  • 检查dry-run输出的MERGE语句,确认ON子句是否包含你配置的unique_key
  • 查看target目录下的对应SQL文件,验证incremental_predicates是否被正确转换为BigQuery的过滤规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:27:36