创建要由 dbt 中的模型引用的源文件的问题
Issues creating a source file to be referenced by models in dbt
我是 DBT 的新手,我了解如何创建 src.yml
我在 snowflake(database/schema/table) 中的数据源所在的位置以供我的模型引用。但是我不确定当数据源是模型时该怎么做。下面的代码成功引用了我的源(数据模型)并运行。但是 objective 是创建一个 src.yml
,包括我的源(数据模型)和其他可以引用它的模型的详细信息。
我的模型引用了它的来源:'mark', 'A_mark_Properties'
with cats(
select "iD",
"Val",
"Set",
ROW_NUMBER()OVER ( PARTITION BY "iD" order by "Set" desc ) as num
from {{ ref('mark', 'A_mark_Properties') }} --refernece the model
)
objective 是创建一个 src.yml
并添加我的源数据模型的详细信息。当创建用于引用 table 的源文件时,通常是这样,但是当涉及到数据模型作为源时,我不确定如何创建类似的东西。
version: 2
sources:
- name: jaffle_shop
tables:
- name: orders
- name: customers
- name: stripe
tables:
- name: payments
您不需要添加 a_mark_properties
作为来源。如果它是同一 dbt 项目中的模型,那么您需要做的就是从新模型中编写 {{ ref('a_mark_properties') }}
。
按照您编写 ref()
的方式,您似乎正试图从添加到当前项目的包中提取模型(参见 advanced ref usage)。
但是,我的猜测是您认为必须将 mark.a_mark_properties
添加到 src.yml
文件,而实际上您不需要。我很惊讶你的模型 运行 除非你确实添加了一个名为 mark 的包(另一个 dbt 项目)并且其中有一个名为 a_mark_properties 的模型。
如果您确实有一个与现有 dbt 模型无关的 table,那么您已将其添加到您的 src.yml 文件中(注意:没有将数据库添加到源中,默认是你的目标数据库,根据 dbt 教程应该是 analytics
)...
--src.yml
version: 2
sources:
- name: mark
tables:
- name: a_mark_properties
你会这样引用它...
select *
from {{ source('mark','a_mark_properties') }}
很难回答你的问题,因为我不确定你如何正确地运行完成你目前的工作。
我是 DBT 的新手,我了解如何创建 src.yml
我在 snowflake(database/schema/table) 中的数据源所在的位置以供我的模型引用。但是我不确定当数据源是模型时该怎么做。下面的代码成功引用了我的源(数据模型)并运行。但是 objective 是创建一个 src.yml
,包括我的源(数据模型)和其他可以引用它的模型的详细信息。
我的模型引用了它的来源:'mark', 'A_mark_Properties'
with cats(
select "iD",
"Val",
"Set",
ROW_NUMBER()OVER ( PARTITION BY "iD" order by "Set" desc ) as num
from {{ ref('mark', 'A_mark_Properties') }} --refernece the model
)
objective 是创建一个 src.yml
并添加我的源数据模型的详细信息。当创建用于引用 table 的源文件时,通常是这样,但是当涉及到数据模型作为源时,我不确定如何创建类似的东西。
version: 2
sources:
- name: jaffle_shop
tables:
- name: orders
- name: customers
- name: stripe
tables:
- name: payments
您不需要添加 a_mark_properties
作为来源。如果它是同一 dbt 项目中的模型,那么您需要做的就是从新模型中编写 {{ ref('a_mark_properties') }}
。
按照您编写 ref()
的方式,您似乎正试图从添加到当前项目的包中提取模型(参见 advanced ref usage)。
但是,我的猜测是您认为必须将 mark.a_mark_properties
添加到 src.yml
文件,而实际上您不需要。我很惊讶你的模型 运行 除非你确实添加了一个名为 mark 的包(另一个 dbt 项目)并且其中有一个名为 a_mark_properties 的模型。
如果您确实有一个与现有 dbt 模型无关的 table,那么您已将其添加到您的 src.yml 文件中(注意:没有将数据库添加到源中,默认是你的目标数据库,根据 dbt 教程应该是 analytics
)...
--src.yml
version: 2
sources:
- name: mark
tables:
- name: a_mark_properties
你会这样引用它...
select *
from {{ source('mark','a_mark_properties') }}
很难回答你的问题,因为我不确定你如何正确地运行完成你目前的工作。