dbt依赖于找不到的源



你能帮我解决这个问题吗?

Encountered an error:
Compilation Error in model metrics_model (modelsexamplemetrics_model.sql)
Model 'model.test_project.metrics_model' (modelsexamplemetrics_model.sql) depends on a source named 'automate.metrics' which was not found

我犯了一个单调的错误,一直没能解决。

非常感谢!

对于PostgreSQL数据库,请检查sources.yml文件是否定义如下:

version: 2
sources:
- name: name_of the source
schema: name_of_the_schema
quoting:
database: false
schema: false
identifier: false
loader: stitch
tables:
- name: name_of_table1
- name: name_of_table2

这是由于数据库中缺少automate.metrics表(dbt项目的目标数据库或同一服务器上的其他数据库(。项目中应该有一个source.ymlautomate.yml文件来定义源。仅供参考,automate是架构名称,metrics是表名称。

  1. 如果源yml文件为automate模式指定了一个数据库,请查询该数据库以确保metrics表存在于automate模式中
  2. 如果源yml文件没有列出数据库,那么该模式/表应该存在于dbt项目的目标数据库中。您可以通过查看~/.dbt/profiles.yml中项目设置的概要文件来查看目标数据库是什么

您在开发环境中看到这一点了吗?在创建automate.metrics之后,您可能没有运行dbt run,这会阻止metrics_model引用它。

检查是否将源配置放在正确的yaml文件中。我遇到了这个问题,并尝试了所有的解决方案,包括上面的一个。最后我忘了在源文件中放后缀.yml,当dbt在该文件中找不到源配置时。

最新更新