Перейти к основному содержимому

Как создать зависимости между моделями?

Когда вы используете функцию ref function, dbt автоматически определяет зависимости между моделями.

Например, рассмотрим модель customer_orders, которая выглядит следующим образом:

models/customer_orders.sql
select
customer_id,
min(order_date) as first_order_date,
max(order_date) as most_recent_order_date,
count(order_id) as number_of_orders
from {{ ref('stg_orders') }}
group by 1

Нет необходимости явно определять эти зависимости. dbt поймет, что модель stg_orders должна быть построена перед вышеуказанной моделью (customer_orders). Когда вы выполняете dbt run, вы увидите, что они строятся в порядке:

$ dbt run
Running with dbt=0.16.0
Found 2 models, 28 tests, 0 snapshots, 0 analyses, 130 macros, 0 operations, 0 seed files, 3 sources

11:42:52 | Concurrency: 8 threads (target='dev_snowflake')
11:42:52 |
11:42:52 | 1 of 2 START view model dbt_claire.stg_jaffle_shop__orders........... [RUN]
11:42:55 | 1 of 2 OK creating view model dbt_claire.stg_jaffle_shop__orders..... [CREATE VIEW in 2.50s]
11:42:55 | 2 of 2 START relation dbt_claire.customer_orders..................... [RUN]
11:42:56 | 2 of 2 OK creating view model dbt_claire.customer_orders............. [CREATE VIEW in 0.60s]
11:42:56 | Finished running 2 view models in 15.13s.


Done. PASS=2 WARN=0 ERROR=0 SKIP=0 TOTAL=2

Чтобы узнать больше о создании проекта dbt, мы рекомендуем вам пройти руководство по быстрому старту.

0