You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dbt source()函数报错:未找到指定数据源求助

解决dbt source()函数找不到数据源的问题

可能的原因及解决步骤

1. 检查source配置文件的存放路径

dbt默认只会加载models目录下的YAML配置文件。如果你的source.yml不在models目录中,dbt无法识别该数据源配置。

  • 解决方法:将source.yml移动到models目录下;或者在dbt_project.yml中添加source-paths配置,指定配置文件的存放路径,示例:
source-paths: ["models", "sources"]  # 假设source.yml放在sources目录

2. 核对数据源对象的大小写匹配

Snowflake对未加双引号的对象名(数据库、Schema、表)会自动转为大写,需确保配置与实际对象名一致:

  • 检查source.yml中的database字段:Snowflake官方示例数据库名为SNOWFLAKE_SAMPLE_DATA,将配置中的database: snowflake_sample_data改为大写database: SNOWFLAKE_SAMPLE_DATA;
  • 确认schema: TPCDS_SF10TCL确实存在于上述数据库中,且大小写匹配;
  • 确认表名:tables.name需与实际表名一致(未加引号的表名默认是STORE,可改为name: STORE)。

3. 验证数据源是否被dbt识别

运行以下命令查看dbt能识别的数据源列表:

dbt source list

如果能看到snowflake_sample_data.store(或大写形式),说明配置已被识别;若看不到,回到前两步排查路径或名称问题。

4. 清理缓存并重新编译

缓存可能导致配置未生效,执行以下命令:

dbt clean
dbt compile

之后再运行你的模型。

关于profile.yml的目标Schema

你提到profile中的目标Schema不同,这点不会影响source的引用——source是直接指向指定的数据库和Schema,与dbt的目标输出Schema无关,无需担心。

内容的提问来源于stack exchange,提问作者gokul goku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:35:16