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

DBT YAML文件(如dbt_project.yml)中元素前+/-符号的含义

dbt YAML配置文件中+/-符号的含义解析

+符号的作用

带+前缀的配置是向下传递的继承式配置,用来给当前层级(及所有子层级)的每个模型节点设置配置参数,而非针对当前的模型组本身。

拿你给出的示例来说:

  • events是对应models/events/目录的模型组,+enabled: true会把enabled参数设为true,应用到这个目录下的所有模型;+materialized: view则会让这些模型默认生成为视图。
  • 子层级的base组(对应models/events/base/)里的+materialized: ephemeral会覆盖上层配置,所以这个子目录里的模型会使用临时表(ephemeral)的物化方式,而非上层的视图。

简单说,+就是把配置“下发”给组内所有模型,子层级可以用同样的方式覆盖上层配置。

-符号的作用

带-前缀的配置是移除继承的配置,用来取消上层传递下来的某个参数,让模型使用该参数的默认值。

举个实际场景:如果上层模型组设置了+materialized: view,但某个子组不想用这个配置,想回到dbt默认的table物化方式,就可以这么写:

models:
  dbt_labs:
    events:
      +materialized: view
      base:
        -materialized: null  # 移除继承的view配置,恢复默认值

这样base组里的模型就不会再继承上层的view物化配置,而是使用dbt默认的表(table)作为物化方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:45:35