Skip to main content

config

Overview#

The config variable exists to handle end-user configuration for custom materializations. Configs like unique_key can be implemented using the config variable in your own materializations.

For example, code in the incremental materialization like this:

{% materialization incremental, default -%}  {%- set unique_key = config.get('unique_key') -%}  ...

is responsible for handling model code that looks like this:

{{  config(    materialized='incremental',    unique_key='id'  )}}

config.get#

Args:

  • name: The name of the configuration variable (required)
  • default: The default value to use if this configuration is not provided (optional)

The config.get function is used to get configurations for a model from the end-user. Configs defined in this way are optional, and a default value can be provided.

Example usage:

{% materialization incremental, default -%}  -- Example w/ no default. unique_key will be None if the user does not provide this configuration  {%- set unique_key = config.get('unique_key') -%}
  -- Example w/ default value. Default to 'id' if 'unique_key' not provided  {%- set unique_key = config.get('unique_key', default='id') -%}  ...

config.require#

Args:

  • name: The name of the configuration variable (required)

The config.require function is used to get configurations for a model from the end-user. Configs defined using this function are required, and failure to provide them will result in a compilation error.

Example usage:

{% materialization incremental, default -%}  {%- set unique_key = config.require('unique_key') -%}  ...