我将模型拆分为4个子文件夹,每个子文件夹都有特定的sql模型。
model1 - schema STG_dev
model2 - schema ODS_dev
model3 - schema DWH_dev
model4 - schema FIN_dev
每个文件夹/模型需要不同的模式,我不想在sql脚本开头的config()中将模式名称写为硬编码值。
考虑到模型子文件夹的名称,我该如何计算模式值作为一个变量?
您可以在dbt_project.yml中的模型配置中使用+
语法进行定义。
示例:
models:
project_name:
STG_dev:
+schema: STG_dev
ODS_dev:
+schema: ODS_dev
DWH_dev:
+schema: DWH_dev
STG_dev:
+schema: STG_dev
FIN_dev:
+schema: FIN_dev
现在,对应目录下的所有模型都将应用该模式名称。例如,models/STG_dev
下的模型将具有STG_dev
模式。
在运行dbt compile
之后,可以通过检查target/manifest.json
文件进行验证。