dbt_constraints包条件参数配置失效问题求助
解决dbt_constraints包条件配置不生效的问题
问题核心
你通过Jinja模板生成的dbt_constraints_enabled值是字符串类型("false"或"true"),但dbt_constraints包需要的是原生布尔类型的false/true。模型中显示的内容只是字符串形式的结果,包内部会把字符串"false"判定为真值,所以约束始终会运行。
修复配置
直接在Jinja逻辑中返回布尔值,不要输出字符串:
vars: dbt_constraints_enabled: {% if target.name in ['dev_airflow','dev_local'] %}false{% else %}true{% endif %}
也可以用更简洁的逻辑写法:
vars: dbt_constraints_enabled: {{ not (target.name in ['dev_airflow','dev_local']) }}
验证方式
在任意dbt模型中添加以下代码,验证变量的类型是否为布尔型:
select '{{ var("dbt_constraints_enabled") }}' as variable_value, '{{ type(var("dbt_constraints_enabled")) }}' as variable_type
修复后查询结果里的variable_type应该显示为boolean,而不是string。
内容的提问来源于stack exchange,提问作者Jaxsss
相关产品推荐
相关产品推荐

