CREATE FUNCTION
CREATE FUNCTION 语句用于创建用户定义函数 (UDF)。目前,您只能创建 Java UDF,包括标量函数、用户定义聚合函数 (UDAF)、用户定义窗口函数 (UDWF) 和用户定义表函数 (UDTF)。
有关如何编译、创建和使用 Java UDF 的详细信息,请参见 Java UDF。
注意
要创建全局 UDF,您必须具有 SYSTEM 级别的 CREATE GLOBAL FUNCTION 权限。要创建数据库范围的 UDF,您必须具有 DATABASE 级别的 CREATE FUNCTION 权限。
语法
CREATE [OR REPLACE] [GLOBAL] [AGGREGATE | TABLE] FUNCTION function_name
(arg_type [, ...])
RETURNS return_type
PROPERTIES ("key" = "value" [, ...])
参数
参数 | 必需 | 描述 |
---|---|---|
OR REPLACE | 否 | 如果存在具有相同函数签名的函数,则会替换该函数。v3.4 及以上版本支持。 |
GLOBAL | 否 | 是否创建全局 UDF,v3.0 及以上版本支持。 |
AGGREGATE | 否 | 是否创建 UDAF 或 UDWF。 |
TABLE | 否 | 是否创建 UDTF。 如果未指定 AGGREGATE 和 TABLE ,则创建标量函数。 |
function_name | 是 | 要创建的函数的名称。 您可以在此参数中包含数据库的名称,例如 db1.my_func 。 如果 function_name 包含数据库名称,则 UDF 在该数据库中创建。 否则,UDF 在当前数据库中创建。 新函数的名称及其参数不能与目标数据库中的现有名称相同。 否则,无法创建该函数。 如果函数名称相同但参数不同,则创建成功。 |
arg_type | 是 | 函数的参数类型。 添加的参数可以用 , ... 表示。 有关支持的数据类型,请参见 Java UDF。 |
return_type | 是 | 函数的返回类型。 有关支持的数据类型,请参见 Java UDF。 |
PROPERTIES | 是 | 函数的属性,这些属性因要创建的 UDF 的类型而异。 有关详细信息,请参见 Java UDF。 |