按照官网文档测试UDF函数:CBO Optimizer don't support UDF function: udf_json_get

【详述】按照官网文档测试UDF函数,执行时报错:CBO Optimizer don’t support UDF function: udf_json_get
【StarRocks版本】2.1.0
【集群规模】例如:1fe+3be
【背景】创建函数
public class UDFTest {
public final String evaluate(String obj, String key) {
if (obj == null || key == null) return null;
try {
// JSONPath 库可以全部展开,即使某个字段的值是 JSON 格式的字符串
return JSONPath.read(obj, key).toString();
} catch (Exception e) {
return null;
}
}
}

这个应该是版本的问题,需要升级到2.2.0正式版才可以

是的,JAVA UDF是2.2版本支持的feature,具体可见2.2 release note

升级到了2.2.0正式版,函数可以创建,但使用的时候有这个错误,帮忙看一下:
SQL 错误 [1064] [42000]: rpc failed, host: 10.49.XX.XX

查询语句也是按照官网来的: ```
SELECT MY_UDF_JSON_GET(’{“key”:"{\“in\”:2}"}’, ‘$.key.in’);

确认下这个be节点状态正常吗?状态正常的话可以在这台be日志里面查下具体报错。

已解决,jdk的问题,谢谢!

请问下是没配置jdk还是哪里的问题呢?

之前用的jre环境,改成了jdk,另外把JAVA_HOME配置到了be,fe的启动脚本里。

麻烦帮忙看看这个帖子的问题 使用UDF时候报错,1064 - CBO Optimizer don't support UDF function

已解决,fe配置的问题