var
Variables can be passed from your dbt_project.yml
file into models during compilation.
These variables are useful for configuring packages for deployment in multiple environments, or defining values that should be used across multiple models within a package.
To add a variable to a model, use the var()
function:
select * from events where event_type = '{{ var("event_type") }}'
If you try to run this model without supplying an event_type
variable, you'll receive
a compilation error that looks like this:
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 = {}
To define a variable in your project, add the vars:
config to your dbt_project.yml
file.
See the docs on using variables for more information on
defining variables in your dbt project.
name: my_dbt_projectversion: 1.0.0config-version: 2# Define variables herevars:event_type: activation
Variable default values
The var()
function takes an optional second argument, default
. If this
argument is provided, then it will be the default value for the variable if one
is not explicitly defined.
-- Use 'activation' as the event_type if the variable is not defined.select * from events where event_type = '{{ var("event_type", "activation") }}'