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

Конфигурации функций

💡Did you know...
Available from dbt v1.11 or with the dbt "Latest" release track.

Доступные конфигурации

Конфигурации, специфичные для функций

Конфигурации, специфичные для ресурса, применимы только к одному типу ресурса dbt, а не к нескольким типам ресурсов. Вы можете определить эти настройки в файле проекта (dbt_project.yml), в файле свойств (models/properties.yml для моделей, аналогично для других ресурсов) или внутри файла ресурса, используя макрос {{ config() }}.

Следующие конфигурации, специфичные для ресурса, доступны только для Functions:

dbt_project.yml
functions:
<resource-path>:
# Конфигурации, специфичные для функций, задаются в properties YAML файле
# См. примеры functions/schema.yml ниже

Общие конфигурации

Общие конфигурации предоставляют более широкие операционные настройки, применимые к нескольким типам ресурсов. Как и конфигурации, специфичные для ресурсов, они также могут быть заданы в файле проекта, файлах свойств или в файлах, специфичных для ресурсов.

Конфигурации database, schema и alias

Функции поддерживают конфигурации database, schema и alias так же, как и модели. Они определяют, где именно функция будет создана в вашем хранилище данных. Для функций применяется стандартный приоритет конфигураций dbt (более специфичная конфигурация > конфигурация проекта > значения по умолчанию из target-профиля).

dbt_project.yml
functions:
<resource-path>:
+enabled: true | false
+tags: <string> | [<string>]
+database: <string>
+schema: <string>
+alias: <string>
+meta: {<dictionary>}

Настройка функций

Функции настраиваются в YAML-файлах — либо в dbt_project.yml, либо в индивидуальном properties YAML файле конкретной функции. Тело функции при этом определяется в SQL-файле, расположенном в директории functions/.

Конфигурации функций, как и конфигурации моделей, применяются иерархически. Подробнее см. в разделе наследование конфигураций.

Функции используют те же макросы генерации имён, что и модели: generate_database_name, generate_schema_name и generate_alias_name.

Примеры

Применение конфигурации schema ко всем функциям

Чтобы применить конфигурацию ко всем функциям, включая функции из любых установленных пакетов, вложите конфигурацию непосредственно под ключ functions:

dbt_project.yml

functions:
+schema: udf_schema

Применение конфигурации schema ко всем функциям в вашем проекте

Чтобы применить конфигурацию только к функциям вашего проекта (то есть исключая функции из установленных пакетов), укажите имя проекта как часть пути ресурса.

Для проекта с именем jaffle_shop:

dbt_project.yml

functions:
jaffle_shop:
+schema: udf_schema

Аналогичным образом можно использовать имя установленного пакета, чтобы настраивать функции в этом пакете.

Применение конфигурации schema только к одной функции

Чтобы применить конфигурацию только к одной функции в properties файле, укажите её в блоке config этой функции:

functions/schema.yml

functions:
- name: is_positive_int
config:
schema: udf_schema

Чтобы применить конфигурацию только к одной функции в dbt_project.yml, укажите полный путь ресурса (включая имя проекта и поддиректории). Для проекта с именем jaffle_shop и файлом функции functions/is_positive_int.sql:

dbt_project.yml
functions:
jaffle_shop:
is_positive_int:
+schema: udf_schema

Пример конфигурации функций

Следующий пример показывает, как настроить функции в проекте с именем jaffle_shop, в котором есть два файла функций:

  • functions/is_positive_int.sql
  • functions/marketing/clean_url.sql
dbt_project.yml
name: jaffle_shop
...
functions:
jaffle_shop:
+enabled: true
+schema: udf_schema
# Эта конфигурация применяется к functions/is_positive_int.sql
is_positive_int:
+tags: ['validation']
marketing:
+schema: marketing_udfs # это значение будет иметь приоритет
functions/schema.yml

functions:
- name: is_positive_int
description: Определяет, представляет ли строка положительное целое число
config:
type: scalar
volatility: deterministic
database: analytics
schema: udf_schema
arguments:
- name: a_string
data_type: string
description: Строка для проверки
returns:
data_type: boolean
description: Возвращает true, если строка представляет положительное целое число

Нашли ошибку?

0
Loading