如何引用从view1
到view2
using的相对路径ref('package_name', 'model_name')
?
/root_folder
/ project1
/models
view1.sql
dbt_project.yml
/ project2
/models
view2.sql
dbt_project.yml
文档中没有代码示例。
谢谢你。
project2
了解模型的唯一方法project1
是将其作为包project2
包含在其文件中。然后你可以参考as in 。project1
packages.yml
view1
ref('project1', 'view1')
project2
您必须在此处检查语法,但您可以像这样包含project1
在内:project2
packages.yml
在project2\packages.yml
:
packages:
- local: ../project1
不用说,您只需不拆分项目就可以省去很多麻烦。在大多数情况下,您不需要这样做,简单的文件夹化可以完成您可能需要的大部分工作。
要尝试更多地关注您的评论来回答问题:
我在 bigquery 上拥有的每个数据集都有一个文件夹。我可以在一个文件夹中为多个数据集编写模型吗?
是的你可以!
如果您不使用 bigquery,请快速注意 dbt 文档“BigQuery 配置”中的术语。
- 架构可与 BigQuery 概念数据集互换
- database 可与项目的 BigQuery 概念互换
这对我来说是这样的:
project-dir
| analysis
| data
| macros
| models
|> sources
- dataset1.yml
- dataset2.yml
| seed
| dbt_project.yml
| packages.yml
dataset.yml 的内容在哪里:
version: 2
sources:
- name: fivetran_log
database: my-bigquery-project-id
loader: fivetran
tables:
- name: account
- name: log
- name: user
dbt_project.yml 中不需要引用即可立即使用这些源。相反,您可以直接从以下模型中引用它:
select *
from {{ source('fivetran_log', 'user') }}
这应该允许您拥有多个数据集源,但您的所有视图只有一个 dbt 项目目录。
但是,如果您引用的数据集在不同的 bigquery 区域或不同的计费项目中,我相信您会遇到一些错误。
dbt-verse 相关问题/资源的附录: