请帮我解决这个问题:下面是我的源定义在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') }}

现在当我 run 的时候-->

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

推荐答案

我正在回答我自己的问题.但问题是人为错误,其他人也可以面对它.下面是我做错的三件事引起的问题.

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

    版本:2

    资料来源:

    • 姓名:SRC_PIZE 数据库:test_db 模式:披萨 描述:源系统模式描述 以下表格可用:
        • 名称:SRC_SQLSERVER_PIZAS ……

      型号:

      • 名称:Transform_Pizzas 描述:DBT转换层,所有CLUM大写以及添加的日期和时间列 列:
        • 名称:大小 ......
    • 缩进也导致了schema.yml中的问题

    • 这很愚蠢,但我在DBT运行之前进行了更改并运行了DBT测试.我认为(当然是错误的),DBT应该允许我先测试它,然后再运行它.DBT针对作为DBT运行结果而创建的VIEWS表运行测试.所以按这个顺序来做

Postgresql相关问答推荐

优化PostgreSQL查询以将用户插入数据库

使用多个分隔符拆分SQL

org.postgresql. util.PSQLException:使用docker + docker—compose + kafka + springboot时try 连接失败

横向联接返回的行数太多

ANTLR4 PostgreSQL语法被 destruct 了吗?

如何在Postgres中对分区表使用Hibernate验证?

将整数(以毫秒为单位的epoch时间)转换为PrimitiveDateTime

忽略 split_part 的第 n 个分隔符之后

如何重新格式化已获取的 psql 查询输出?

是否可以短时间运行 VACUUM FULL 并获得一些好处?

postgres 的密码

Java - 日期保存为前一天

INSERT RETURNING 是否保证以 right的顺序返回?

如何在 Postgresql 中正确使用 FETCH FIRST?

我应该同时指定 INDEX 和 UNIQUE INDEX 吗?

Postgres - 如果找不到记录,则在更新时返回错误

使用 pg-promise 插入多条记录

如何使用 Node.js 和 Postgresql 找到最后一个插入 ID?

null 计算结果为 false 的情况

使用 PostgreSQL 进行字母数字排序