首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DBT:为dev/stage/prod环境服务的相同代码

DBT:为dev/stage/prod环境服务的相同代码
EN

Stack Overflow用户
提问于 2022-05-15 06:30:12
回答 1查看 196关注 0票数 0

我试图用相同的代码来设置DBT,用于开发/阶段/产品环境,我们的dev数据库类似于EDW_TEL_ETL_DB _TEL_ETL_DB_DV1/EDW_TEL_ETL_DB_DV3,而stage/qa数据库类似于EDW_TEL_ETL_DB_TS1/EDW_TEL_ETL_DB_ as _3,为了实现这个目的,我有如下sources.yml:

代码语言:javascript
运行
复制
sources:
  - name: EDW_TEL_ETL_DB_SS 
    database:  |
      {%- if   target.name == "dev1" -%}   EDW_TEL_ETL_DB{{ env_var("DBT_DATABASE_LIFECYCLE_SUFFIX_1","") }}
      {%- elif target.name == "dev2" -%}   EDW_TEL_ETL_DB{{ env_var("DBT_DATABASE_LIFECYCLE_SUFFIX_3","") }}
      {%- elif target.name == "qa1"  -%}   EDW_TEL_ETL_DB{{ env_var("DBT_DATABASE_LIFECYCLE_SUFFIX_1","") }}
      {%- elif target.name == "qa3"  -%}   EDW_TEL_ETL_DB{{ env_var("DBT_DATABASE_LIFECYCLE_SUFFIX_3","") }}
      {%- elif target.name == "prod" -%}   EDW_TEL_ETL_DB
      {%- else -%} invalid_database
      {%- endif -%}
    schema: SS
    tables:
    - name: ACCOUNTS_USAGE

在profiles.yml中为:

代码语言:javascript
运行
复制
snowflake-profile:
  target: dev1
  outputs:
    dev1:
      type: snowflake

示例sql:

代码语言:javascript
运行
复制
FROM {{source('EDW_TEL_ETL_DB_SS', 'ACCOUNTS_USAGE') }}

但是,在编译模型数据库后,解析为"invalid_database“而不是EDW_TEL_ETL_DB_DV1,在调用dbt时,我尝试将"dev1”作为args传递,并创建了一个作业,并将目标名称设置为"dev1“,这两种方法都不起作用。

EN

回答 1

Stack Overflow用户

发布于 2022-05-17 06:07:16

通过更新“开发凭据”部分下的“目标名称”、配置文件>凭据>选择项目>开发Credentials> Edit>更新“目标名称”解决了这一问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72246018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档