在DBT中,每当我们部署模型时,数据库名称都会在数据库中的SQL定义中的每个部署模型前缀。
我需要以不将数据库名称的方式配置DBT项目。
ref
对象,因此我们可以像这样操纵其输出:
Relation
,从那里开始,使用{% macro ref(model_name) %}
{% do return(builtins.ref(model_name).include(database=false)) %}
{% endmacro %}
函数的所有模型都将返回
ref
对象,而无需
Relation
规范。
database
Edit:当您要求的是,以下是从来源删除数据库名称的示例:
dbt code:
select * from {{ ref('model') }}
compiled code:
select * from schema_name.model
{% macro source(source_name, table_name) %}
{% do return(builtins.source(source_name, table_name).include(database=false)) %}
{% endmacro %}
{% macro source(source_name, table_name, include_database = False) %}
{% do return(builtins.source(source_name, table_name).include(database = include_database)) %}
{% endmacro %}
更多详细信息可以在“官方文件”中找到
你的意思是:finance.modelname
dbname_finance.modelname
)而不是三部分名称(
schema.modelname
IF#1,我建议您阅读整个Custom架构名称文档页面,特别是有关
高级自定义架构配置的零件如果是#2,这是适配器级别所需的更改。由于您已经标记了
database.schema.modelname
创建一个宏SQL文件(您可以命名'custom_schema.sql),内容如下,然后将删除默认的prefix.