使用JAVA代码执行kettle的Job和转换

目录

0.码仙励志

1.需要导入的jar包

2.使用JAVA代码执行kettle的Job

3.使用JAVA代码执行kettle的转换

4.GitHub地址


0.码仙励志

所谓勇气,就是不断经历失败,但是从不丧失热情。

1.需要导入的jar包

使用JAVA代码执行kettle的Job和转换_第1张图片

这里jar包可以在kettle的lib目录中找到,如果有找不到的,可以去maven官网下载,也可以去我下面的github链接中下载

2.使用JAVA代码执行kettle的Job

package com.qinge.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.job.Job;
import org.pentaho.di.job.JobMeta;

/**
 * 
 * 

* Title: KettleJob *

* *

* Description: 使用JAVA代码执行kettle的Job *

* */ public class KettleJob { public static void main(String[] args) { String jobPath = "D:\\kettledata\\aa到bb.kjb"; // 如果有参数可以放到maps里面 Map maps = new HashMap(); runJob(maps, jobPath); } public static void runJob(Map maps, String jobPath) { try { KettleEnvironment.init(); // jobname 是Job脚本的路径及名称 JobMeta jobMeta = new JobMeta(jobPath, null); Job job = new Job(null, jobMeta); // 向Job 脚本传递参数,脚本中获取参数值:${参数名} // job.setVariable(paraname, paravalue); Set> set = maps.entrySet(); for (Iterator> it = set.iterator(); it.hasNext();) { Entry ent = it.next(); job.setVariable(ent.getKey(), ent.getValue()); } job.start(); job.waitUntilFinished(); if (job.getErrors() > 0) { throw new Exception("There are errors during job exception!(执行job发生异常)"); } } catch (Exception e) { e.printStackTrace(); } } }

3.使用JAVA代码执行kettle的转换

package com.qinge.test;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.util.EnvUtil;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;

/**
 * 
 * 

* Title: KettleTransfer *

* *

* Description: 使用JAVA代码执行kettle的转换 *

* */ public class KettleTransfer { public static void main(String[] args) { String transferPath = "D:\\kettledata\\插入更新.ktr"; // 如果有参数可以放到params里面 String[] params = {}; runTransfer(params, transferPath); } public static void runTransfer(String[] params, String ktrPath) { Trans trans = null; try { // // 初始化 // 转换元对象 KettleEnvironment.init(); // 初始化 EnvUtil.environmentInit(); TransMeta transMeta = new TransMeta(ktrPath); // 转换 trans = new Trans(transMeta); // 执行转换 trans.execute(params); // 等待转换执行结束 trans.waitUntilFinished(); // 抛出异常 if (trans.getErrors() > 0) { throw new Exception("There are errors during transformation exception!(传输过程中发生异常)"); } } catch (Exception e) { e.printStackTrace(); } } }

4.GitHub地址

https://github.com/qinyuyang1998/kettle.git

你可能感兴趣的:(Javase)