无论如何,对模型中的所有列应用列引用



我使用DBT,雪花作为我的目标,表和列名是Pascal case。我注意到,在persist_docs或添加测试时,您需要像下面的模型示例一样将quote: true属性添加到每列。

如果没有提供quote: true或者名称没有用单引号括起来,则用双引号括起来(例如,ColumnName)然后DBT不引用列时创建sql测试或alter列的注释语句。

是否有任何设置可以在模型级别或更高级别完成,默认情况下将引用所有列,或者我只需要为所有列设置quote: true?

models:
- name: tablename
description: '....' 
columns: 
- name: ColumnName
quote: true
description: '{{ doc("ColumnName") }}'

我也有同样的需求,但还不能资助解决方案。我的解决方法是定义一个宏来调用dbt_utils。然后这样做:

{% for col in dbt_utils.star(table_relation, exclued_cols) %}
{% do columns_list.append('"' ~ col ~ '"') %}
{% endfor %}
return (columns_list)

你可以调用这个宏把引号放在你所有的列上。

最新更新