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

О функции 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

# Определите переменные здесь
vars:
event_type: activation

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

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

my_model.sql
-- Использовать 'activation' в качестве event_type, если переменная не определена.
select * from events where event_type = '{{ var("event_type", "activation") }}'
0