type
functions:
- name: function_name
config:
type: scalar | aggregate
В будущем мы рассматриваем возможность добавления поддержки типа table. Следите за прогрессом и оставляйте обратную связь в этом issue.
Определение
Конфигурация type определяет тип пользовательской функции (UDF), которую вы создаёте. Этот параметр является необязательным и по умолчанию принимает значение scalar, если он не указан.
Поддерживаемые типы функций
Поддерживаются следующие типы функций:
Поддержка параметра type зависит от используемого хранилища данных и языка (SQL или Python):
| Loading table... |
scalar (по умолчанию)
Скалярная функция возвращает одно значение для каждой входной строки. Это наиболее распространённый тип UDF.
Примеры сценариев использования:
- Валидация данных (проверка, соответствует ли строка шаблону)
- Преобразование данных (конвертация форматов, очистка строк)
- Пользовательские вычисления (сложные математические операции)
functions:
- name: is_positive_int
description: Determines if a string represents a positive integer
config:
type: scalar
arguments:
- name: input_string
data_type: STRING
returns:
data_type: BOOLEAN
aggregate
Агрегатные функции работают с несколькими строками и возвращают одно значение — например, суммируют значения или вычисляют среднее для группы. В запросах такие функции используются в операциях GROUP BY.
В настоящее время агрегатные функции поддерживаются только для:
- Python-функций в Snowflake
- SQL-функций в BigQuery
Примеры сценариев использования:
- Вычисление сумм или средних значений для групп данных (например, общий объём продаж по клиенту)
- Агрегация данных по времени (например, дневные, месячные или годовые итоги)
functions:
- name: double_total
description: Sums values and doubles the result
config:
type: aggregate
arguments:
- name: values
data_type: FLOAT
description: A sequence of numbers to aggregate
returns:
data_type: FLOAT