StarRocks UDF 需求搜集与反馈

希望支持C++版本,doris都支持C++版本

后面可以考虑支持,但是目前StarRocks 迭代比较快C++的 ABI/API 不能保证稳定。很容易导致升级后需要重新编写。所以如果是自己想实现C++的UDF可以尝试编写builtin函数的方式做扩展开发。

有没有计划支持类似MySQL的自定义函数的计划?比如MySQL中可以用以下语句创建
DELIMITER $$

USE database$$

DROP FUNCTION IF EXISTS GetCodeByNM$$

CREATE DEFINER=xxx@% FUNCTION GetCodeByNM(cname VARCHAR(255)) RETURNS VARCHAR(2048) CHARSET utf8mb4
BEGIN
DECLARE retName VARCHAR(255) DEFAULT ‘’;
SELECT xxx INTO retName FROM table_name WHERE xxx = cname LIMIT 1;
IF retName IS NULL || retName =’’ THEN
SET retName=‘123’;
END IF;
RETURN retName;
END$$

DELIMITER ;

1赞

你好,目前在尝试编写builtin函数的方式扩展开发,有什么相关文档吗,或者demo之类的

这几天我写一下怎么添加 scalar builtin函数

好的,尤其是聚合函数,目前FE搭建成功了,be开发环境搭建有点困难,希望有个文档吧

1赞

你好,新版本udf是否支持jdk11,目前2.3.3版本jdk11的udf直接导致be crash

可以详细说下吗,发下 be.out的crash堆栈?

我们先自己测试下,再给你个回复

be jdk改1.8,udf jar包用jdk 1.8编译运行正常
be jdk改11,udf jar包用jdk 11编译be直接crash,堆栈如下:

也尝试过在jdk11下编译starrock,不过还是一样

好的,我们Fix下。

你好,能提供一下builtin的文档吗?

文档中的udaf太简单了。
如果想实现一个类似 ARRAY_AGG 的udaf,应该怎么构造state? serializeLength怎么写?

https://github.com/StarRocks/starrocks/tree/main/java-extensions/udf-examples/src/main/java/com/starrocks/example/udf 这里有变长的

期望有类似clickhouse对多行bitmap求交集的函数:groupBitmapAndState

bitmap_union 能满足需求吗?

希望UDF包可以选择FE管理,不要强制用另外http服务。
FE自身具有高可用性,http服务需要额外的部署运维工作。

可以使用本地文件file:///path/udf.jar

1赞