StarRocks UDF 需求搜集与反馈

我好像测试过 不行 不能使用父类的 或者import的State

public class UDAF {
    public static class State extends XXX.XXX.State {}
}

了解 了解 这个还没有测试过 如果有需要 我可以把自己定义的贡献给社区

1赞

欢迎PR
可以提交到这个仓库: https://github.com/StarRocks/demo
或者是 https://github.com/StarRocks/starrocks/tree/main/java-extensions/udf-extensions

打算在2.2.0使用UDTF取处理一个特殊场景,需要将1行转多列,但无奈2.2.0却只支持转单列,希望2.3.0能支持转多列的情况。

2赞

UDF函数是基于Java开发的,目前实现的方式实在是不够优雅,建议作者参考下Flink-CDC 自定义Source方式。基于接口+反射的方式动态加载,不需要指定对应的jar包路径,且全局可用。
而且不应该使用者保障各个fe节点上都应该存在对应的jar包吗?为啥还要指定部署了jar包的fe节点。要么由使用者来保障,要么jar包应由fe节点进行分发。

1赞

希望支持入参和返回 数组类型

1赞

FE是支持弹性的,jar包不方便在多个FE中存储。
后面我们会考虑类似SF的定义方式,支持把UDF实现写在create function里面。但是这种实现方式没办法引入依赖的包。

2.3 已经封版了,这个可能会在2.4支持。
还是没理解这个场景,如果是单独的返回多列写一个UDF解析内容,然后再拼接成string,再split也是能满足这个需求的吧

Array 后面可能会提供类似 lambda 函数的方式

可以实现像oracle中的connect by prior功能吗?实现层级关系

背景
hive里的UDF常用于数据脱敏 ,如果数仓切换到SR ,SR必须也支持udf , 尝试在SR里编写UDF,官网文档的例子测试下来 是没有问题的。

关心的是性能问题

本次测试的是国密加密 对57553077条数据加密

测试结果:
hive impala starRocks
88S 110S 70S

由于监管要求用sm4,希望starRocks添加sm4函数

特意升级到2.3的版本,花了点时间 。希望拿到奖品哈

3赞

2.3 没刻意对 UDTF 做优化,后面会安排上。
现在SR只支持 sm3,暂时还不支持sm4

亲你私信我一下你的收件信息,我寄个杯子给你~