postgresql DBT- dbt依赖于未找到的源

lg40wkob  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(2)|浏览(165)

请帮助我解决这个问题:下面是我的源代码定义在 schema.yml 下(沿着两个其他模型)-->

sources:
  - name: src_pizzas
    database: test_db
    schema: pizza
    tables:
      - name: src_sqlserver_pizzas
        columns:
          - name: size
            description: "The size of the pizza"
          - name: price
    .......

字符串
然后我在models/example目录下将此模型作为 tsnfrmed_sqlserver_pizzas.sql

{{ config(materialized='view') }}

SELECT 
UPPER(size) AS size, 
UPPER(price) AS price, 
UPPER(pizza_id) AS pizza_id, 
UPPER(pizza_type_id) AS pizza_type_id 
FROM {{ source('src_pizzas', 'src_sqlserver_pizzas') }}


现在当我跑的时候-->

dbt run --select "tsnfrmed_sqlserver_pizzas"


我得到下面的错误(表名和连接都很好,因为我有其他模型进行连接,我不能排除这里的错字类型问题):

Model 'model.pizza_data.tsnfrmed_sqlserver_pizzas' (models\example\tsnfrmed_sqlserver_pizzas.sql) depends on a source named 'pizza.src_sqlserver_pizzas' which was not found

hyrbngr7

hyrbngr71#

我正在回答我自己的问题。但问题是人为错误,其他人也可以面对它。下面是我做错的三件事导致了这个问题。

  • 在模型的目录中-我没有子目录,我将所有模型引用到一个单一的schema.yml文件中,如下所示(我认为dbt不喜欢在一个单一的schema.yml文件中提到源代码和模型-我后来为源代码和模型创建了一个单独的目录,并为源代码和模型定义了单独的schema.yml。

版本:2
资料来源:

  • 名称:src_pizza数据库:test_db模式:pizza描述:源系统模式描述表:
  • 名称:src_sqlserver_pizzas.

型号:

  • 名称:transformed_pizzas描述:DBT转换层,所有列大写和日期和时间列添加列:
  • 产品名称:尺寸.......
  • 缩进也会在schema.yml中引起问题
  • 这是愚蠢的,但我做了我的变化,并运行dbt测试之前dbt运行.我的意见(和错误的小康当然),dbt应该允许我先测试它,然后再运行它. DBT运行测试对视图表,这是创建作为dbt运行的结果.所以这样做的顺序
sbtkgmzw

sbtkgmzw2#

该模式中似乎没有名为src_sqlserver_pizzas的表。您需要向YML添加identifier:以指定源的表名。

tables:
      - name: src_sqlserver_pizzas
        identifier: "pizzas"
        columns:

字符串

相关问题