Java程序调用kettle中的job(.kjb)和Trans(.ktr)

  1. package com.p.serv.util;  
  2.   
  3. import org.pentaho.di.core.KettleEnvironment;  
  4. import org.pentaho.di.core.exception.KettleException;  
  5. import org.pentaho.di.core.exception.KettleXMLException;  
  6. import org.pentaho.di.job.Job;  
  7. import org.pentaho.di.job.JobMeta;  
  8. import org.pentaho.di.trans.Trans;  
  9. import org.pentaho.di.trans.TransMeta;  
  10.   
  11. public class KettleExecu {  
  12.   
  13.     public static void runJob(String jobname) {  
  14.         try {  
  15.             KettleEnvironment.init();  
  16.             // jobname 是Job脚本的路径及名称  
  17.             JobMeta jobMeta = new JobMeta(jobname, null);  
  18.             Job job = new Job(null, jobMeta);  
  19.             // 向Job 脚本传递参数,脚本中获取参数值:${参数名}  
  20.             // job.setVariable(paraname, paravalue);  
  21.             job.start();  
  22.             job.waitUntilFinished();  
  23.             if (job.getErrors() > 0) {  
  24.                 System.out.println("decompress fail!");  
  25.             }  
  26.         } catch (KettleException e) {  
  27.             System.out.println(e);  
  28.         }  
  29.     }  
  30.   
  31.     // 调用Transformation示例:  
  32.     public static void runTrans(String filename) {  
  33.         try {  
  34.             KettleEnvironment.init();  
  35.             TransMeta transMeta = new TransMeta(filename);  
  36.             Trans trans = new Trans(transMeta);  
  37.             trans.prepareExecution(null);  
  38.             trans.startThreads();  
  39.             trans.waitUntilFinished();  
  40.             if (trans.getErrors() != 0) {  
  41.                 System.out.println("Error");  
  42.             }  
  43.         } catch (KettleXMLException e) {  
  44.             // TODO Auto-generated catch block  
  45.             e.printStackTrace();  
  46.         } catch (KettleException e) {  
  47.             // TODO Auto-generated catch block  
  48.             e.printStackTrace();  
  49.         }  
  50.     }  
  51.   
  52.     public static void main(String[] args) {  
  53.         String jobname = "F:\\ETL\\kettle\\例子\\测试\\复制多表\\copymanytablejob.kjb";  
  54.         runJob(jobname);  
  55.         // String filename="D:/syslog_All/spoon/csv_fm.ktr";  
  56.         // runTrans(filename);  
  57.     }  
  58.   
  59. }  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值