<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0
    轉(zhuǎn)自

    http://blog.csdn.net/chen978616649/article/details/9063695


    代碼如下:調(diào)用kettle 4.2版本


    package test;


    import org.apache.commons.lang.StringUtils;
    import org.apache.commons.vfs.FileSelector;
    import org.pentaho.di.core.KettleEnvironment;
    import org.pentaho.di.core.database.DatabaseMeta;
    import org.pentaho.di.core.exception.KettleException;
    import org.pentaho.di.core.util.EnvUtil;
    import org.pentaho.di.job.Job;
    import org.pentaho.di.job.JobMeta;
    import org.pentaho.di.repository.RepositoryDirectory;
    import org.pentaho.di.repository.RepositoryDirectoryInterface;
    import org.pentaho.di.repository.kdr.KettleDatabaseRepository;
    import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta;
    import org.pentaho.di.trans.Trans;
    import org.pentaho.di.trans.TransMeta;


    import com.longtech.configuration.BaseConfiguration;
    import com.platform.common.util.LoggerUtil;


    /**
     * 
     * @Description:  java調(diào)用kettle 數(shù)據(jù)庫型資料庫中的轉(zhuǎn)換
     * @author chen 此類是調(diào)用kettle 4.2版本的測試類
     * @version 1.0, 
     * @date 2013-5-23 下午02:40:50
     */
    public class ExecRepositoryTrans {
    /**
    * 本測試類慎用?。。。。。?!
    * @param args
    */
    public static void main(String[] args) {
    //D:\java\workspace\sics\src\config\kettle
    String classesdir = BaseConfiguration.getString("classesdir");
    String jobName = BaseConfiguration.getString("kettle.path.file");
    if(StringUtils.isNotEmpty(jobName)){
    LoggerUtil.info(ExecRepositoryTrans.class, "執(zhí)行kettle job start-------------------");

    runJob(classesdir + jobName);

    LoggerUtil.info(ExecRepositoryTrans.class, "執(zhí)行kettle job end -------------------");
    }else{

    LoggerUtil.info(ExecRepositoryTrans.class, "請配置kettle.path.file job 的路徑文件");
    }

    }
    /**
    *java 調(diào)用kettle 轉(zhuǎn)換 
    */
    public static void runTransfer(){
    Trans trans=null;  
    FileSelector f = null;
    try {
    // 初始化  
                String fName= "D:\\kettle\\informix_to_am_4.ktr";
                // 轉(zhuǎn)換元對象  
            KettleEnvironment.init();//初始化
            EnvUtil.environmentInit();
                TransMeta transMeta = new TransMeta(fName);
                // 轉(zhuǎn)換  
                trans = new Trans(transMeta);  
                // 執(zhí)行轉(zhuǎn)換  
                trans.execute(null);   
                // 等待轉(zhuǎn)換執(zhí)行結(jié)束  
                trans.waitUntilFinished();  
                //拋出異常  
                if(trans.getErrors()>0){  
                    throw new Exception("There are errors during transformation exception!(傳輸過程中發(fā)生異常)");  
                }  
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    /**
    * java 調(diào)用 kettle 的job
    * @param jobname 如: String fName= "D:\\kettle\\informix_to_am_4.ktr";
    */
    public static void runJob(String jobname){  
    try {   
    KettleEnvironment.init();   
    //jobname 是Job腳本的路徑及名稱   
    JobMeta jobMeta = new JobMeta(jobname, null);   
    Job job = new Job(null, jobMeta);   
    //向Job 腳本傳遞參數(shù),腳本中獲取參數(shù)值:${參數(shù)名}   
    //job.setVariable(paraname, paravalue);   
     job.start();   
     job.waitUntilFinished();   
     if (job.getErrors() > 0) {   
     throw new Exception("There are errors during job exception!(執(zhí)行job發(fā)生異常)");  
     }   
    } catch (Exception e) {   
    e.printStackTrace();
    }   
    }
    /**
    * 配置數(shù)據(jù)源 調(diào)用資源庫中的相關job 、transfer
    */
    public static void dbResource(){
    String transName="t1";  
             
           try {  
               KettleEnvironment.init();  
               DatabaseMeta dataMeta = new DatabaseMeta("KettleDBRep","MSSQL","Native","127.0.0.1","etl","1433","sa","bsoft");  
               KettleDatabaseRepositoryMeta repInfo = new KettleDatabaseRepositoryMeta();  
               repInfo.setConnection(dataMeta);  
               KettleDatabaseRepository rep = new KettleDatabaseRepository();  
               rep.init(repInfo);  
               rep.connect("admin", "admin");  
                 
               RepositoryDirectoryInterface dir = new RepositoryDirectory();  
               dir.setObjectId(rep.getRootDirectoryID());  
                 
               TransMeta tranMeta = rep.loadTransformation(rep.getTransformationID(transName, dir), null);  
               Trans trans = new Trans(tranMeta);  
               trans.execute(null);  
               trans.waitUntilFinished();  
           } catch (KettleException e) {  
               e.printStackTrace();  
           }  
    }


    }

    posted on 2014-03-02 08:20 無聲 閱讀(1626) 評論(0)  編輯  收藏 所屬分類: 職場生活
    主站蜘蛛池模板: 久久精品女人天堂AV免费观看| 精品一区二区三区免费视频| 182tv免费视视频线路一二三| 久久精品国产69国产精品亚洲| 一区二区免费在线观看| 亚洲精品无码久久久| 杨幂最新免费特级毛片| 免费大片黄手机在线观看| 深夜a级毛片免费视频| 亚洲区小说区图片区| 中文字幕一区二区免费| 久久精品国产亚洲AV无码麻豆| 37pao成人国产永久免费视频| 亚洲伊人久久精品| 麻豆国产人免费人成免费视频 | 97在线视频免费播放| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲色偷偷综合亚洲av78| 最近最新MV在线观看免费高清| 亚洲人精品亚洲人成在线| 国产美女被遭强高潮免费网站| 深夜A级毛片视频免费| 亚洲国产综合无码一区| 国产高清不卡免费视频| 亚洲国产美女在线观看 | 久久亚洲春色中文字幕久久久| 成人福利免费视频| 无码天堂亚洲国产AV| 亚洲av一综合av一区| 在线视频免费观看爽爽爽| 亚洲A∨精品一区二区三区下载| 亚洲男人的天堂在线va拉文| 成人电影在线免费观看| 亚洲人成7777| 久久影视综合亚洲| 成年网站免费视频A在线双飞| 又大又硬又粗又黄的视频免费看| 亚洲ⅴ国产v天堂a无码二区| 日韩在线天堂免费观看| 国产午夜不卡AV免费| 亚洲av日韩综合一区久热|