zoukankan      html  css  js  c++  java
  • 运用Java调用Kettle Job和Trans(带参数)

    1.首先创建一个kettle trans

    image

    2.对表输入进行编辑

    image

    ${dateNow}为要传入的参数。

    3.代码编写

    首先需要把包导入

    image

    import org.pentaho.di.core.KettleEnvironment;
    import org.pentaho.di.core.exception.KettleException;
    import org.pentaho.di.job.Job;
    import org.pentaho.di.job.JobMeta;
    import org.pentaho.di.trans.Trans;
    import org.pentaho.di.trans.TransMeta;
    
    
    public class KettleTest {
    
        /**包
         * @param args
         * @throws KettleException 
         */
        public static void runJob(String jobFile) throws KettleException{
            KettleEnvironment.init();
            JobMeta jm = new JobMeta(jobFile,null);
            Job job = new Job(null,jm);
            job.setVariable("dateNow", "2016-01-05");
            job.start();
            job.waitUntilFinished();
        }
        
        public static void runTrans(String transFile) throws KettleException{
            KettleEnvironment.init();
            TransMeta tm = new TransMeta(transFile);
            Trans trans = new Trans(tm);
            trans.setVariable("dateNow", "2016-01-03");
            trans.execute(null);
            trans.waitUntilFinished();
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String fileName = "F:\zcr\工作空间\kettleWorkSpace\kettleTrans.ktr";
            try {
                runTrans(fileName);
            } catch (KettleException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }

    trans 通过 Trans.setVariable(String,String)传递参数。

    第一个参数就是ktr中的变量,比如上面的${dateNow}。我们可以通过Trans.setVariable(dateNow,”2016-01-05”)这个个函数把2016-01-05这个字符串赋给dateNow

    Job通过Job.setVariable(String,String)传递参数,用法和trans用法一致。

  • 相关阅读:
    Redis 的安装
    oracle表分区
    HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
    HashMap和LinkedHashMap区别
    SpringMVC MultiActionController 默认方法名解析器
    静态资源无法访问问题
    JMeter-简单控制器
    JMeter-随机顺序控制器
    JMeter-随机控制器
    JMeter-交替控制器
  • 原文地址:https://www.cnblogs.com/zcr3108346262/p/6530404.html
Copyright © 2011-2022 走看看