Skip to main content

CREATE FUNCTION

您可以在 RisingWave 中定义自己的函数(包括表函数)并调用这些函数。有了用户定义函数(UDF),您就可以根据自己的需要定制 RisingWave,并利用 Python 和 Java 的强大功能和灵活性来执行复杂的数据处理和分析任务。

有关详细信息,请参阅 用户定义函数

先使用 CREATE FUNCTION 命令声明 UDF,才能像其他内置函数一样在 SQL 查询中使用。

句法

CREATE FUNCTION function_name ( argument_type [, ...] )
[ RETURNS return_type | RETURNS TABLE ( column_name column_type [, ...] ) ]
[ LANGUAGE language_name ]
AS function_name_defined_in_server
USING LINK 'udf_server_address';

参数

参数或子句描述
function_name在 RisingWave 中声明的 UDF 名称。
argument_typeUDF 希望接收的输入参数的数据类型。
RETURNS return_type如果函数返回单个值(即标量),则使用此子句。其指定了 UDF 返回值的数据类型。
支持 struct 类型,它可以包含多个值。但 Python 和 SQL 中定义的字段名必须保持一致,否则将视为类型不匹配。
RETURNS TABLE如果函数是表值函数(TVF),则使用此子句。其指定了 UDF 返回的表的结构。
LANGUAGE可选。指定用于实现 UDF 的编程语言。
目前支持 pythonjava
AS function_name_defined_in_server指定在 UDF 服务器中定义的函数名。
USING LINK 'udf_server_address'指定 UDF 服务器地址。
如果在本地环境中运行 RisingWave,则地址为 http://localhost:<port>
如果使用 Docker 运行 RisingWave,则地址为 http://host.docker.internal:<port>/

另请参阅

SHOW FUNCTIONS — 显示所有用户定义函数。

DROP FUNCTION — 删除用户定义函数。