CREATE FUNCTION
CREATE FUNCTION создает пользовательскую функцию (UDF). В настоящее время вы можете создавать только Java UDF, включая Scalar-функции, пользовательские агрегатные функции (UDAF), пользовательские оконные функции (UDWF) и пользовательские табличные функции (UDTF).
Подробную информацию о том, как компилировать, создавать и использовать Java UDF, см. в разделе Java UDF.
ПРИМЕЧАНИЕ
Для создания глобальной UDF у вас должна быть привилегия CREATE GLOBAL FUNCTION на уровне SYSTEM. Для создания UDF на уровне базы данных у вас должна быть привилегия CREATE FUNCTION на уровне DATABASE.
Синтаксис
CREATE [OR REPLACE] [GLOBAL] [AGGREGATE | TABLE] FUNCTION function_name
(arg_type [, ...])
RETURNS return_type
PROPERTIES ("key" = "value" [, ...])
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
| OR REPLACE | Нет | Если существует функция с той же сигнатурой, она будет заменена. Поддерживается начиная с версии v1.5.2. |
| GLOBAL | Нет | Определяет, нужно ли создать глобальную UDF, поддерживается начиная с версии v1.5.2. |
| AGGREGATE | Нет | Определяет, нужно ли создать UDAF или UDWF. |
| TABLE | Нет | Определяет, нужно ли создать UDTF. Если ни AGGREGATE, ни TABLE не указаны, создается Scalar-функция. |
| function_name | Да | Имя функции, которую вы хотите создать. Вы можете включить имя базы данных в этот параметр, например, db1.my_func. Если function_name включает имя базы данных, UDF создается в этой базе данных. В противном случае UDF создается в текущей базе данных. Имя новой функции и её параметры не могут совпадать с существующим именем в целевой базе данных. В противном случае функция не может быть создана. Создание успешно, если имя функции совпадает, но параметры различаются. |
| arg_type | Да | Тип аргумента функции. Добавленный аргумент может быть представлен как , .... Поддерживаемые типы данных см. в разделе Java UDF. |
| return_type | Да | Возвращаемый тип функции. Поддерживаемые типы данных см. в разделе Java UDF. |
| PROPERTIES | Да | Свойства функции, которые различаются в зависимости от типа создаваемой UDF. Подробности см. в разделе Java UDF. |