修改种子数据在仓库中的实体化名称(-prefix)



目前种子是在数据仓库中自动生成的,名称为dbt_{schema_name}_seed_data,其中{schema_name}是profile .yml中指定的模式名称。

我想指定一个不同的名称,例如dbt_processing_seed_data,而不更改配置文件中的模式名称。

这一切背后的原因,不同的开发人员希望有自己的模式,这样他们就不会互相干扰。但是没有必要将(相同的)种子数据多次存储在仓库中。

您可以在dbt_project.yml文件中为种子设置模式。参考文档

要获得您所描述的行为,其中目标名称未添加到模式前,您需要通过在项目中创建具有该名称的新宏来覆盖generate_schema_name宏。这里有相关的医生。您可以使用节点的资源类型,使此行为仅应用于种子。

{% macro generate_schema_name(custom_schema_name, node) -%}
{%- set default_schema = target.schema -%}
{%- if custom_schema_name is none -%}{{ default_schema }}
{%- elif node.resource_type == "seed" -%}{{ custom_schema_name | trim }}
{%- else -%}{{ default_schema }}_{{ custom_schema_name | trim }}
{%- endif -%}
{%- endmacro %}
不过,我还是要提醒大家不要这样做。种子是版本控制的,实际上并不打算用于大型原始数据集(再次查看文档)。由于它们与代码一起检入,因此它们应该真正共享与代码相同的分离环境。

最新更新