cratedb 支持自定义函数,但是当前只有js 引擎(基于graalvm),而且需要企业license (当然我们可以使用免费的3节点的集群)
自定义函数格式
CREATE [OR REPLACE] FUNCTION function_name
( [ [arg_name] arg_type ] [, ...] ] )
RETURNS return_type
LANGUAGE language_name
AS 'definition'
参考
注意js 的函数名需要和CREATE FUNCTION 的一样,否则会报错
CREATE FUNCTION my_subtract_function(integer, integer)
RETURNS integer
LANGUAGE JAVASCRIPT
AS 'function my_subtract_function(a, b) { return a - b; }';
说明
因为js 与java 类型是有差异的,所以对于一些处理可能会有问题,官方文档也说明了,值得看看
参考资料
https://crate.io/docs/crate/reference/en/4.3/general/user-defined-functions.html#supported-languages