gpt4 book ai didi

dbt 无法创建两个具有相同数据库表示的资源

转载 作者:行者123 更新时间:2023-12-04 14:11:49 26 4
gpt4 key购买 nike

我这里的情况如下:
我的dbt项目中有两个模型

  • A型
  • {{ config(
    materialized='ephemeral',
    alias='A_0001',
    schema=var('xxx_yyy_dataset')
    ) }}
  • B型
  • {{ config(
    materialized='ephemeral',
    alias='B_0002',
    schema=var('xxx_yyy_dataset')
    ) }}
    这些在与 xxx_yyy_dataset.Table_DDD 相同的模式中作为增量实现
    {{ config(
    materialized='incremental',
    alias='Table_DDD',
    schema=var('xxx_yyy_dataset')
    ) }}
    SELECT * FROM {{ref('A_0001')}}
    UNION ALL
    SELECT * FROM {{ref('B_0002')}}
    这工作正常,并且正在将记录摄取到目标表中。
    现在我介绍了另一种模型——model-C ind不同的包
    C型
    {{ config(
    materialized='incremental',
    alias='Table_DDD',
    schema=var('xxx_yyy_dataset')
    ) }}
    这给了我以下错误:
    $ dbt compile --profiles-dir=profile --target ide
    Running with dbt=0.16.0
    Encountered an error:
    Compilation Error
    dbt found two resources with the database representation "xxx_yyy_dataset.Table_DDD".
    dbt cannot create two resources with identical database representations. To fix this,
    change the "schema" or "alias" configuration of one of these resources:
    - model.eplus_rnc_dbt_project.conrol_outcome_joined (models/controls/payment/fa-join/conrol_outcome_joined.sql)
    - model.eplus_rnc_dbt_project.dq_control_outcome_joined (models/controls/dq/dq-join/dq_control_outcome_joined.sql)
    我已经为自定义宏配置了宏,如下所示:
    {% macro generate_schema_name(custom_schema_name, node) -%}
    {%- set default_schema = target.schema -%}
    {%- if custom_schema_name is none -%}
    {{ default_schema }}
    {%- else -%}
    {{ custom_schema_name }}
    {%- endif -%}
    {%- endmacro %}


    {% macro generate_alias_name(custom_alias_name=none, node=none) -%}
    {%- if custom_alias_name is none -%}
    {{ node.name }}
    {%- else -%}
    {{ custom_alias_name | trim }}
    enter code here
    {%- endif -%}
    {%- endmacro %}

    最佳答案

    dbt 在这里完成它的工作!
    您有两个共享完全相同配置的模型 — conrol_outcome_joineddq_control_outcome_joined .
    这意味着他们都将尝试写入同一个表:xxx_yyy_dataset.Table_DDD .
    dbt 是(理所当然地)在此处抛出错误以避免出现问题。
    正如错误消息所暗示的那样,您应该更新您的模型之一以使用不同的架构或别名,以便它在您的 BigQuery 项目中作为单独的表表示。

    关于dbt 无法创建两个具有相同数据库表示的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63677530/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com