使用jar包创建自定义函数

  使用配置
内容纲要

概要描述


本文介绍如何使用InceptorSQL创建自定义函数。自定义函数分为 临时函数和永久函数 ,临时函数在重启Inceptor前在各个session间都是有效的,重启Inceptor后该函数将不再存在,如需使用需要重新创建。永久函数则在Inceptor重启后依然可以使用。

基本语法介绍


1. CREATE/DROP FUNCTION

1.1 CREATE/DROP TEMPORARY FUNCTION

使用如下命令可以创建一个临时函数:

CREATE TEMPORARY FUNCTION  AS ;

使用如下命令可以删除一个临时函数:

DROP TEMPORARY FUNCTION [IF EXISTS] ;
1.2 CREATE/DROP PERMANENT FUNCTION

使用如下命令可以创建一个永久函数:

CREATE PERMANENT FUNCTION  AS ;

使用如下命令可以删除一个永久函数:

DROP PERMANENT FUNCTION [IF EXISTS] ;

2. SHOW FUNCTIONS OR DESC FUNC

创建函数完成后可以使用SHOW FUNCTIONS or DESC FUNCTION 来查看是否有创建成功:

SHOW FUNCTIONS <函数名>;
DESC FUNCTION <函数名>;

添加函数的实例

part1 创建函数前的准备工作


1. 登录服务器查看inceptor server对应的pod名称

kubectl get po -owide |grep inceptor

file

2. 上传jar包到inceptor server的/tmp目录下

kubectl cp hiveudf-1.0-SNAPSHOT.jar default/inceptor-server-inceptor1-6bbdfcc479-twcj2:/tmp

file

3. 做inceptor 镜像持久化

此处可以参考KB:如何对镜像做持久化

4. 页面上重启inceptor

5. beeline连接inceptor

此处可以参考KB:beeline连接inceptor方式汇总

part2 添加永久函数


1. 进入beeline下添加对应的jar包

add jar /tmp/hiveudf-1.0-SNAPSHOT.jar;

file

2. 创建永久函数

create permanent function to_js as 'com.zxs.ToJson';

file

3. 查看永久函数是否创建成功

show functions to_js;

file

4. 测试函数功能是否正常(需要根据自定义的函数使用方式进行验证)

select to_js('aa',23,'bb',56) from system.dual;

file

part3 添加临时函数


1. 进入beeline下添加对应的jar包

add jar /tmp/hiveudf-1.0-SNAPSHOT.jar;

file

2. 创建临时函数

create temporary function to_js_t as 'com.zxs.ToJson';

file

3. 查看临时函数是否创建成功

show functions to_js_t;

file

4. 测试函数功能是否正常(需要根据自定义的函数使用方式进行验证)

select to_js_t('aa',23,'bb',56) from system.dual;

file


注意:

  1. udf 无论是临时还是永久,如果要删除并重新创建使用相同类或者 jar 的话,都要重启 inceptor server
  2. 永久函数,临时函数,内嵌函数(自带的 udf)不能重名; 永久函数和 plsql 函数/存储过程也不能重名;临时函数可以和 plsql 函数重名,调用时优先调用临时函数。
  3. 永久函数和临时函数都是全局的,不受当前数据库影响。
  4. 当永久函数指定的 jar 被删除后,永久函数不允许删除。

这篇文章对您有帮助吗?

平均评分 5 / 5. 次数: 2

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。

One Reply to “使用jar包创建自定义函数”