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

如何在dbt模型中引用Dagster外部资产dld_sales?

如何在dbt模型中正确引用Dagster独立资产?

问题背景

我的dbt模型需引用Dagster中独立于dbt的资产dld_sales,该Dagster资产定义如下:

@asset(
    group_name=". .... ",
    io_manager_key="..   ",
)
def dld_sales():

我尝试在dbt模型中通过ref函数引用:

with source as (
    select * from {{ ref("dld_sales") }}
),

执行后出现错误:

Model ‘model.dbt_project.stg_dld_sales’ (models/staging/stg_dld_sales.sql) depends on a node named ‘dld_sales’ which was not found

正确解决方法

方法一:通过dbt数据源(Source)配置引用

  1. 在dbt项目的数据源配置文件(通常是models/schema.yml)中,将Dagster的dld_sales资产定义为外部数据源:
    sources:
      - name: dagster_external_assets
        schema: <目标数据库schema>  # 替换为dld_sales实际所在的数据库schema
        tables:
          - name: dld_sales
    
  2. 在dbt模型中使用source()函数引用该资产:
    with source as (
        select * from {{ source('dagster_external_assets', 'dld_sales') }}
    ),
    

方法二:直接使用完整表路径引用

若无需配置数据源,可直接写出dld_sales的完整数据库标识路径:

with source as (
    select * from <数据库名称>.<schema名称>.dld_sales
),

核心原因

{{ ref() }}仅能识别dbt自身管理的节点(如模型、快照、种子等),而Dagster独立资产属于外部数据源,不在dbt的节点注册表内,因此用ref引用会触发“节点未找到”的错误。

内容的提问来源于stack exchange,提问作者Remis Haroon - رامز

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:25:58