让DBT选择dbt_project.yml中的模式,而不是源的名称

0 投票
1 回答
33 浏览
提问于 2025-04-13 14:29

这是我格式化的 dbt_project.yml 文件的样子。

name: 'project_name'
version: '0.1.0'
config-version: 2

profile: 'project_name'

model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]
macro-paths: ["macros"]
snapshot-paths: ["snapshots"]

target-path: "target"
clean-targets:         # directories to be removed by `dbt clean`
  - "target"
  - "dbt_packages"


sources:
  dbt_proj:
    business-unit-x:
      +database: "BUSINESS_UNIT_X_{{ env_var('SF_ENV')}}"
      gold:
        +schema: GOLD
      silver:
        +schema: SILVER
      bronze:
        +schema: BRONZE

这里是一个示例,展示了在 business-unit-x/silver 文件夹中的一个数据源:

version: 2    
sources:
  - name: I_DONT_WANT_TO_BE_USED_AS_SCHEMA
    tables:
      - name: table_name
        columns:
        - name: column_name

有没有办法让 DBT 从我的 dbt_project.yml 文件中选择模式,而不是从我的数据源中的模式或名称属性中选择?

如果没有,那我该如何配置模式属性,以便与 dbt_project.yml 文件同步呢?

1 个回答

1

根据这个问题的评论,在dbt_project文件中没有办法解析jinja。

所以你最好的选择可能是

version: 2

sources:
  - name: <source_name>
    database: "BUSINESS_UNIT_X_{{ env_var('SF_ENV')}}"
    tables:
      - name: <table_name>
      - ...

撰写回答