如何解决dbt:模型“ bar”取决于未找到或被禁用的模型“ foo”
我正在使用名为dbt的命令行工具。整个项目有些复杂,因此我将尝试描述基本布局。
这是我的缩写文件树;
dbt_project.yml
.user.yml
dbt_modules
models/baz/subdir/baz_mytable.sql
models/sources/baz/baz_myinfo.sql
profiles.yml
以下是dbt_project.yml
的缩写内容。已引用两个相关.sql文件的目录,并且正在拾取并行文件夹结构内的依赖项。
name: 'my_proj'
version: '1.0'
source-paths: ["models"]
modules-path: "dbt_modules"
...
models:
my_proj:
...
baz:
subdir:
materialized: table
schema: baz_final
sources:
baz:
materialized: view
schema: baz_cleaned
...
以下是baz_myinfo.sql
的缩写内容;
{{ config(alias='myinfo') }}
SELECT ...
以下是baz_mytable.sql
的缩写内容;
WITH sometable AS (
SELECT ... FROM {{ ref('myinfo') }} ...
鉴于所有这些,当我运行dbt命令时,出现错误Model 'model.my_proj.baz_mytable' depends on model 'myinfo' which was not found or is disabled
,我的所有模型均未禁用。 dbt为什么不选择依赖项?
解决方法
根据dbt docs,对ref
的调用应使用模型的文件名,而不是该文件中模型的别名。所以baz_mytable.sql
的内容应该看起来像
WITH sometable AS (
SELECT ... FROM {{ ref('baz_myinfo') }} ...
因为文件名为baz_myinfo.sql
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。