• kettle 程序调用执行ktr转换示例代码


    package com.***.dci;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;

    import org.logicalcobwebs.proxool.admin.servlet.AdminServlet;
    import org.pentaho.di.core.exception.KettleException;
    import org.pentaho.di.core.util.EnvUtil;
    import org.pentaho.di.trans.StepLoader;
    import org.pentaho.di.trans.Trans;
    import org.pentaho.di.trans.TransMeta;
    import org.pentaho.di.trans.performance.StepPerformanceSnapShot;

    public class Test {

        /**
         * 
    @param args
         * 
    @throws IOException
         
    */
        public static void main(String[] args) throws IOException {
            // 解释
            runTransformation("c:/ss.ktr");
        }

        public static void runTransformation(String filename) throws IOException {
            try {

                //初始化任务
                StepLoader.init();
                EnvUtil.environmentInit();
                TransMeta transMeta = new TransMeta(filename);
                transMeta.setCapturingStepPerformanceSnapShots(true);
                Trans trans = new Trans(transMeta);
                trans.setMonitored(true);
                trans.setInitializing(true);
                trans.setPreparing(true);
                trans.setRunning(true);
                trans.setSafeModeEnabled(true);
                trans.execute(null); // You can pass arguments instead of null.
                
                
    //放入一个MAP存储结果
                HashMap map = new HashMap();
                trans.setStepPerformanceSnapShots(map);
                while (!trans.isFinished()) {

                    if (trans.getStepPerformanceSnapShots() != null&& trans.getStepPerformanceSnapShots().size() > 0) {
                        
                        //得到所有步骤
                        Map<String, List<StepPerformanceSnapShot>> SnapShots = trans.getStepPerformanceSnapShots();
                        
                        //输出动态监控情况
                        Iterator it = SnapShots.entrySet().iterator();
                        String oneTimeOneStepInfo = "";
                        String ontTimeAllStepInfo = "";
                        while(it.hasNext())
                        {
                            Entry en = (Entry)it.next();
                            //步骤当前情况
                            ArrayList SnapShotList = (ArrayList) en.getValue();
                            if (SnapShotList != null && SnapShotList.size() > 0) {

                                StepPerformanceSnapShot SnapShot = (StepPerformanceSnapShot) SnapShotList.get(SnapShotList.size() - 1);
                                    
                                oneTimeOneStepInfo = (    "StepName:"+SnapShot.getStepName()+";"
                                            +"Errors: " + SnapShot.getErrors() + ";"
                                            + "InputBufferSize: "+ SnapShot.getInputBufferSize()+ ";"
                                            + "LinesInput: " + SnapShot.getLinesInput()+ ";"
                                            + "LinesOutput: "+ SnapShot.getLinesOutput() + ";"
                                            + "LinesRead: "+ SnapShot.getLinesRead()+ ";"
                                            + "LinesRejected: "+ SnapShot.getLinesRejected()+ ";"
                                            + "LinesUpdated: "+ SnapShot.getLinesUpdated()+ ";"
                                            + "LinesWritten: "+ SnapShot.getLinesWritten()+ ";"
                                            + "OutputBufferSize: "+ SnapShot.getOutputBufferSize()+ ";"
                                            + "StepCopy: " + SnapShot.getStepCopy()+ ";"
                                            + "TimeDifference: "+ SnapShot.getTimeDifference()+ ";"
                                            + "TotalErrors: "+ SnapShot.getTotalErrors()+ ";"
                                            + "TotalLinesInput: "+ SnapShot.getTotalLinesInput()+ ";"
                                            + "TotalLinesOutput: "+ SnapShot.getTotalLinesOutput()+ ";"
                                            + "TotalLinesRead: "+ SnapShot.getTotalLinesRead()+ ";"
                                            + "TotalLinesRejected: "+ SnapShot.getTotalLinesRejected()+ ";"
                                            + "TotalLinesUpdated: "+ SnapShot.getTotalLinesUpdated()+ ";"
                                            + "TotalLinesWritten: "+ SnapShot.getTotalLinesWritten()+ ";"
                                            + "Date:"+ SnapShot.getDate() + "\n");
                                
                                ontTimeAllStepInfo+=oneTimeOneStepInfo;
                                
                            }
                            System.out.println(ontTimeAllStepInfo+"\n\n\n\n");
                        }
                        
                        
                    }
                }

                System.out.println("end............");

            } catch (KettleException e) {
                // TODO Put your exception-handling code here.
                System.out.println(e);
            }
        }
        
        

    }

  • 相关阅读:
    java笔记
    java面向对象
    Oracle数据库基础
    Java中的集合和常用类
    Java面向对象的三个特征
    Java中的类与对象
    Java中的冒泡排序
    JAVA中的一些内置方法
    JAVA中的数据类型
    SSH整合
  • 原文地址:https://www.cnblogs.com/jifeng/p/2296884.html
Copyright © 2020-2023  润新知