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
相关产品推荐
相关产品推荐

