О переменной config
Переменная config
существует для обработки конфигурации конечного пользователя для пользовательских материализаций. Конфигурации, такие как unique_key
, могут быть реализованы с использованием переменной config
в ваших собственных материализациях.
Например, код в материализации incremental
, такой как этот:
{% materialization incremental, default -%}
{%- set unique_key = config.get('unique_key') -%}
...
отвечает за обработку кода модели, который выглядит так:
{{
config(
materialized='incremental',
unique_key='id'
)
}}
Просмотрите Конфигурации моделей для примеров и дополнительной информации о допустимых аргументах.
config.get
Аргументы:
name
: Имя конфигурационной переменной (обязательно)default
: Значение по умолчанию, которое будет использоваться, если эта конфигурация не предоставлена (необязательно)
Функция config.get
используется для получения конфигураций для модели от конечного пользователя. Конфигурации, определенные таким образом, являются необязательными, и может быть предоставлено значение по умолчанию.
Существует 3 случая:
- Конфигурационная переменная существует, она не
None
- Конфигурационная переменная существует, она
None
- Конфигурационная переменная не существует
Пример использования:
{% materialization incremental, default -%}
-- Пример без значения по умолчанию. unique_key будет None, если пользователь не предоставит эту конфигурацию
{%- set unique_key = config.get('unique_key') -%}
-- Пример с альтернативным значением. Используйте альтернативу 'id', если конфигурация 'unique_key' предоставлена, но она None
{%- set unique_key = config.get('unique_key') or 'id' -%}
-- Пример со значением по умолчанию. По умолчанию 'id', если конфигурация 'unique_key' не существует
{%- set unique_key = config.get('unique_key', default='id') -%}
...
config.require
Аргументы:
name
: Имя конфигурационной переменной (обязательно)
Функция config.require
используется для получения конфигураций для модели от конечного пользователя. Конфигурации, определенные с использованием этой функции, являются обязательными, и их отсутствие приведет к ошибке компиляции.
Пример использования:
{% materialization incremental, default -%}
{%- set unique_key = config.require('unique_key') -%}
...