全部产品
阿里云办公

使用 PL/Java UDF

更新时间:2018-03-15 20:54:04

HybridDB for PostgreSQL 支持用户使用 PL/Java 语言,编写并上传 jar 软件包,并利用这些 jar 包创建用户自定义函数(UDF)。该功能支持的 PL/Java 语言版本为社区版 PL/Java 1.5.0,使用的 JVM 版本为 1.8。

本文介绍了创建 PL/Java UDF 的示例步骤。更多的 PL/Java 样例,请参见 PL/Java代码(查看 编译方法)。

操作步骤

  1. 在 HybridDB for PostgreSQL 中,执行如下命令,创建 PL/Java 插件(每个数据库只需执行一次)。

    1. create extension pljava;
  2. 根据业务需要,编写自定义函数。例如,使用如下代码编写 Test.java 文件:

    1. public class Test
    2. {
    3. public static String substring(String text, int beginIndex,
    4. int endIndex)
    5. {
    6. return text.substring(beginIndex, endIndex);
    7. }
    8. }
  3. 编写 manifest.txt 文件。

    1. Manifest-Version: 1.0
    2. Main-Class: Test
    3. Specification-Title: "Test"
    4. Specification-Version: "1.0"
    5. Created-By: 1.7.0_99
    6. Build-Date: 01/20/2016 21:00 AM
  4. 执行如下命令,将程序编译打包。

    1. javac Test.java
    2. jar cfm analytics.jar manifest.txt Test.class
  5. 将步骤 4 生成的 analytics.jar 文件,通过 OSS 控制台命令上传到 OSS。

    1. osscmd put analytics.jar oss://zzz
  6. 在 HybridDB for PostgreSQL 中,执行 Create Library 命令,将文件导入到 HybridDB for PostgreSQL 中。

    注意:Create Library 只支持 filepath,一次导入一个文件。另外,Create Library 还支持字节流形式,可以不通过 OSS 直接导入,详情请参见 Create Library 命令的使用

    1. create library example language java from 'oss://oss-cn-hangzhou.aliyuncs.com filepath=analytics.jar id=xxx key=yyy bucket=zzz';
  7. 在 HybridDB for PostgreSQL 中,执行如下命令,创建和使用相应 UDF。

    1. create table temp (a varchar) distributed randomly;
    2. insert into temp values ('my string');
    3. create or replace function java_substring(varchar, int, int) returns varchar as 'Test.substring' language java;
    4. select java_substring(a, 1, 5) from temp;
本文导读目录