Presets¶
Presets are used to define common task configuration. If a task
specifies a preset
attribute, it
will then inherit all attributes from the referred preset
. This makes presets
great to avoid
repetition.
Defining The preset
¶
Preset
presets:
modelling:
type: autosql
materialisation: table
destination:
tmp_schema: analytics_staging
schema: analytics_models
table: '{{task.name}}'
The above defines a preset called modelling
. Every task
referring to it will be an autosql
task and inherit all other attributes from it. For a task to use this configuration, we use the preset
property in the task.
tasks/base.yaml
tasks:
task_name:
preset: modelling
#other task properties
Presets can be defined both in project.yaml
and in any task group file (files in the tasks
folder).
Preset Inheritance¶
Presets can reference other presets, the behaviour of this reference being exactly as it works for task.
project.yaml
presets:
modelling:
type: autosql
materialisation: table
destination:
tmp_schema: analytics_staging
schema: analytics_models
table: '{{task.name}}'
modelling_view:
preset: modelling
materialisation: view
In the above example, modelling_view
is a preset with exactly the same properties as preset modelling
except it will generate a view when materialising an autosql task.