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

О функции var

Переменные могут быть переданы из файла dbt_project.yml в модели на этапе компиляции. Эти переменные полезны для настройки пакетов при развертывании в нескольких окружениях или для определения значений, которые должны использоваться в нескольких моделях внутри одного пакета.

Чтобы добавить переменную в модель, используйте функцию var():

my_model.sql
select * from events where event_type = '{{ var("event_type") }}'

Если вы попытаетесь запустить эту модель, не передав переменную event_type, вы получите ошибку компиляции, которая будет выглядеть примерно так:

Encountered an error:
! Compilation error while compiling model package_name.my_model:
! Required var 'event_type' not found in config:
Vars supplied to package_name.my_model = {
}

Чтобы определить переменную в вашем проекте, добавьте конфигурацию vars: в файл dbt_project.yml. Подробнее о том, как определять переменные в dbt‑проекте, см. документацию по использованию переменных.

dbt_project.yml
name: my_dbt_project
version: 1.0.0

config-version: 2

# Define variables here
vars:
event_type: activation

Значения переменных по умолчанию

Функция var() принимает необязательный второй аргумент — default. Если этот аргумент указан, он будет использоваться как значение переменной по умолчанию, если переменная не определена явно.

my_model.sql
-- Use 'activation' as the event_type if the variable is not defined.
select * from events where event_type = '{{ var("event_type", "activation") }}'

Нашли ошибку?

0
Loading