编写后端接口调用Kettle数据仓库

编写后端接口调用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的方式连接数据库。
    编写后端接口调用Kettle数据仓库_第1张图片

  • 将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下。
    编写后端接口调用Kettle数据仓库_第2张图片
    编写后端接口调用Kettle数据仓库_第3张图片

  • 上面我们就已经将环境准备完成,下面我们进行代码的编写。

		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版本,配置好上述的环境,代码部分可以让前端动态的传入执行转换的名称以及参数值,增加灵活性。

你可能感兴趣的:(数据仓库,java,后端,mongodb)