java kettle 介绍_kettle 使用JAVA代码进行执行

kettle 设计完成之后,可以在设计工具中进行调用,也可以使用java代码进行调用。

1.通过文件方式执行转换。

d5ac92e780a355b9c4eaac919f529b7a.gifpublic 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();

}

}

d5ac92e780a355b9c4eaac919f529b7a.gif

2.通过文件方式执行job

d5ac92e780a355b9c4eaac919f529b7a.gifpublic 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();

}

}

d5ac92e780a355b9c4eaac919f529b7a.gif

3.执行资源库的中的转换。

d5ac92e780a355b9c4eaac919f529b7a.gifpublic static void runWithDb() throws KettleException{ 

KettleEnvironment.init();

//创建DB资源库

KettleDatabaseRepository repository=new KettleDatabaseRepository();

DatabaseMeta databaseMeta=new DatabaseMeta("kettle","mysql","jdbc","localhost","kettle","3306","root","root");

//选择资源库

KettleDatabaseRepositoryMeta kettleDatabaseRepositoryMeta=new KettleDatabaseRepositoryMeta("kettle","kettle","Transformation description",databaseMeta);

repository.init(kettleDatabaseRepositoryMeta);

//连接资源库

repository.connect("admin","admin");

RepositoryDirectoryInterface directoryInterface=repository.loadRepositoryDirectoryTree();

//选择转换

TransMeta transMeta=repository.loadTransformation("demo1",directoryInterface,null,true,null);

Trans trans=new Trans(transMeta);

trans.execute(null);

trans.waitUntilFinished();//等待直到数据结束

if(trans.getErrors()>0){

System.out.println("transformation error");

}else{

System.out.println("transformation successfully");

}

}

d5ac92e780a355b9c4eaac919f529b7a.gif

可以将转换文件存储到资源库,通过程序进行调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值