编写后端接口调用Kettle数据仓库
前言
在报表查询统计中我们会用到kettle数据仓库工具,采用定时任务执行kettle转换弹性较小,有时无法满足业务需求,因此需要后端开发人员提供给前端人员一个调用kettle转换的接口。
环境准备
1、jdk
2、kettle(版本采用8.0+,9.0版本缺少配置文件)
步骤
-
kettle安装目录不要太深,并且不要有中文路径。
-
修改配置文件数据库地址,配置文件为pdi-ce-8.2.0.0-342\data-integration\simple-jndi\jdbc.properties。要注意连接数据库的方式,在这里我们采用jndi的方式连接数据库。
-
将pdi-ce-8.2.0.0-342\data-integration\system\karaf\system\pentaho文件下的pentaho-mongodb-plugin、pentaho-mongo-utils文件夹复制到pdi-ce-8.2.0.0-342\data-integration\plugins下。
-
上面我们就已经将环境准备完成,下面我们进行代码的编写。
File jndiFile = FileUtil.file("改为你自己simple-jndi文件夹的路径");
String jndiFilePath = jndiFile.getPath();
Const.JNDI_DIRECTORY = jndiFilePath;
File ktrFile = FileUtil.file("要执行的kettle转换文件的具体路径,后缀名也要加上。");
String ktrFilePath = ktrFile.getPath();
StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("改为你自己plugins文件夹的具体路径",false,true));//加载插件
KettleEnvironment.init();//初始化
TransMeta transMeta = new TransMeta(ktrFilePath);//加载文件
Trans trans = new Trans(transMeta);
trans.setVariable("参数名","参数值");//设置参数,如果kettle有需要传入的参数就设置,没有就去掉这行代码。
trans.execute(null);
trans.waitUntilFinished();//等待执行完毕
总结
以上就是我们编写调用kettle转换接口的过程,主要就是注意采用kettle8.0版本,配置好上述的环境,代码部分可以让前端动态的传入执行转换的名称以及参数值,增加灵活性。