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_type | UDF 希望接收的输入参数的数据类型。 |
RETURNS return_type | 如果函数返回单个值(即标量),则使用此子句。其指定了 UDF 返回值的数据类型。 支持 struct 类型,它可以包含多个值。但 Python 和 SQL 中定义的字段名必须保持一致,否则将视为类型不匹配。 |
RETURNS TABLE | 如果函数是表值函数(TVF),则使用此子句。其指定了 UDF 返回的表的结构。 |
LANGUAGE | 可选。指定用于实现 UDF 的编程语言。 目前支持 python 和 java 。 |
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 — 删除用户定义函数。