dbt运行编译错误:找不到源psa.emissionsbycountry求助排查
问题原因与解决方法
核心问题是schema.yml中定义的数据源名称与模型里引用的不匹配,导致dbt无法找到对应的源表。
具体问题点
模型stg_table.sql里引用的是{{ source('psa', 'emissionsbycountry') }},第一个参数psa是数据源的名称,但你的schema.yml里定义的数据源名称是EMISSIONSBYCOUNTRY,两者完全不匹配,dbt自然找不到对应的源。
修改步骤
修改models/staging/schema.yml中的数据源配置,将name改为psa,同时调整表名匹配引用的名称:
version: 2 sources: - name: psa # 改为模型里引用的数据源名称 database: DATABASE schema: PSA tables: - name: emissionsbycountry # 匹配模型里引用的表名,Snowflake未加引号的表名默认不区分大小写 models: - name: stg_table
额外检查项
- 确认
DATABASE是Snowflake中实际存在的数据库名称(如果是创建时加了双引号的大小写敏感名称,需要在配置中用引号包裹) - 确保dbt连接的Snowflake角色有权限访问
DATABASE.PSA.EMISSIONSBYCOUNTRY表
内容的提问来源于stack exchange,提问作者Sam777
相关产品推荐
相关产品推荐

