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

type

💡Did you know...
Available from dbt v1.11 or with the dbt "Latest" release track.
functions/<filename>.yml
functions:
- name: function_name
config:
type: scalar | aggregate

В будущем мы рассматриваем возможность добавления поддержки типа table. Следите за прогрессом и оставляйте обратную связь в этом issue.

Определение

Конфигурация type определяет тип пользовательской функции (UDF), которую вы создаёте. Этот параметр является необязательным и по умолчанию принимает значение scalar, если он не указан.

Поддерживаемые типы функций

Поддерживаются следующие типы функций:

Поддержка параметра type зависит от используемого хранилища данных и языка (SQL или Python):

Adapterscalar SQLscalar Pythonaggregate SQLaggregate Python
dbt-bigquery
dbt-snowflake
dbt-databricks
dbt-postgres
dbt-redshift
Loading table...

scalar (по умолчанию)

Скалярная функция возвращает одно значение для каждой входной строки. Это наиболее распространённый тип UDF.

Примеры сценариев использования:

  • Валидация данных (проверка, соответствует ли строка шаблону)
  • Преобразование данных (конвертация форматов, очистка строк)
  • Пользовательские вычисления (сложные математические операции)
functions/schema.yml
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/schema.yml
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

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

0
Loading