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

Свойства функций

💡Полезно знать
Доступно начиная с dbt v1.11 или в канале релизов v1 Latest.

Свойства функций можно объявлять в .yml‑файлах под ключом functions.

Мы рекомендуем размещать их в директории functions/. Эти файлы можно называть schema.yml или как угодно (whatever_you_want.yml), а также вкладывать их в поддиректории внутри этой директории.

functions/<filename>.yml

functions:
- name: <string> # обязательно
description: <markdown_string> # необязательно
config: # необязательно
<function_config>: <config_value>
type: scalar | aggregate # необязательно, по умолчанию scalar.
volatility: deterministic | stable | non-deterministic # необязательно
runtime_version: <string> # обязательно для UDF на Python
entry_point: <string> # обязательно для UDF на Python
packages: [<string>] # необязательно, только для UDF на Python
docs:
show: true | false
node_color: <color_id> # Используйте название цвета (например, node_color: purple) или шестнадцатеричный код в кавычках (например, node_color: "#cd7f32")
arguments: # необязательно
- name: <string> # обязательно, если указан arguments
data_type: <string> # обязательно, если указан arguments; зависит от хранилища данных
description: <markdown_string> # необязательно
default_value: <string | boolean | integer> # необязательно, доступно в Snowflake и Postgres
- name: ... # объявите дополнительные аргументы
returns: # обязательно
data_type: <string> # обязательно; зависит от хранилища данных
description: <markdown_string> # необязательно
overloads: # необязательно, для UDF на SQL (Snowflake и Postgres) и UDF на Python (Snowflake), доступно в v1.12+
- defined_in: <string> # обязательно, имя SQL-файла или Python-файла, содержащего тело этой перегрузки
arguments: # необязательно
- name: <string> # обязательно, если указан arguments
data_type: <string> # обязательно, если указан arguments; зависит от хранилища данных
description: <markdown_string> # необязательно
default_value: <string | boolean | integer> # необязательно, доступно в Snowflake и Postgres
- name: ... # объявите дополнительные аргументы
returns: # необязательно, если не указано, наследуется от корневой функции
data_type: <string> # обязательно, если указан returns; зависит от хранилища данных
description: <markdown_string> # необязательно
- defined_in: ... # объявите дополнительные перегрузки

- name: ... # объявите свойства дополнительных функций

Пример​

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: Строка, которую нужно проверить, представляет ли она положительное целое число (например, "10")
returns:
data_type: boolean
description: Возвращает true, если входная строка представляет собой положительное целое число, и false в противном случае
overloads:
- defined_in: is_positive_int_numeric
arguments:
- name: a_num
data_type: numeric
description: Число, которое нужно проверить на то, является ли оно положительным целым числом
returns:
data_type: boolean

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

0
Loading