分享

Kettle与Java集成——Java代码调取运行资源库的Transformation

 richsky 2012-08-16

下面代码是Java代码调用Kettle4.0版本的Transformation

1Java读取资源库运行Transformation

(1)目录类型资源库Java代码

 

view plain
  1. import org.pentaho.di.core.KettleEnvironment;  
  2. import org.pentaho.di.core.exception.KettleException;  
  3. import org.pentaho.di.repository.filerep.KettleFileRepository;  
  4. import org.pentaho.di.repository.filerep.KettleFileRepositoryMeta;  
  5. import org.pentaho.di.trans.Trans;  
  6. import org.pentaho.di.trans.TransMeta;  
  7. public class ReaderTransFromRep {  
  8.     private static String tranName = "IM_KSDM";    // 传输名称  
  9.     public static void main(String[] args) throws KettleException {  
  10.         Trans trans=null;  
  11.         try {  
  12.             // 初始化  
  13.             KettleEnvironment.init();这个是4.0版本的初始化,和3.x版本的不同  
  14.             // 资源库元对象  
  15.             KettleFileRepositoryMeta repinfo = new KettleFileRepositoryMeta("","","数据采集","file:///E:/Workspaces/Kettle");  
  16.             // 文件形式的资源库  
  17.             KettleFileRepository rep = new KettleFileRepository();  
  18.             rep.init(repinfo);  
  19.             // 转换元对象  
  20.             if(tranName!=null){  
  21.                 TransMeta transMetadel = rep.loadTransformation(rep.getTransformationID(tranName, null), null);  
  22.                 // 转换  
  23.                 trans = new Trans(transMetadel);  
  24.                 // 执行转换  
  25.                 trans.execute(null);   
  26.                 // 等待转换执行结束  
  27.                 trans.waitUntilFinished();  
  28.                 //抛出异常  
  29.                 if(trans.getErrors()>0){  
  30.                     throw new Exception("There are errors during transformation exception!(传输过程中发生异常)");  
  31.                 }  
  32.             }else{  
  33.                 throw new KettleException("传输名为空!");  
  34.             }  
  35.         } catch (Exception e) {  
  36.             if(trans!=null){  
  37.                 trans.stopAll();  
  38.             }  
  39.             e.printStackTrace();  
  40.             throw new KettleException(e);  
  41.         }  
  42.     }  
  43.                       }  



 




 

(2)数据库类型资源库

 

view plain
  1. import org.pentaho.di.core.KettleEnvironment;  
  2. import org.pentaho.di.core.database.DatabaseMeta;  
  3. import org.pentaho.di.core.exception.KettleException;  
  4. import org.pentaho.di.repository.RepositoryDirectory;  
  5. import org.pentaho.di.repository.RepositoryDirectoryInterface;  
  6. import org.pentaho.di.repository.kdr.KettleDatabaseRepository;  
  7. import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta;  
  8. import org.pentaho.di.trans.Trans;  
  9. import org.pentaho.di.trans.TransMeta;  
  10.   
  11. public class ReaderTransFromDBRep {  
  12.     private static String transName="t1";  
  13.     public static void main(String[] args) {  
  14.           
  15.         try {  
  16.             KettleEnvironment.init();  
  17.             DatabaseMeta dataMeta = new DatabaseMeta("KettleDBRep","MSSQL","Native","127.0.0.1","etl","1433","sa","bsoft");  
  18.             KettleDatabaseRepositoryMeta repInfo = new KettleDatabaseRepositoryMeta();  
  19.             repInfo.setConnection(dataMeta);  
  20.             KettleDatabaseRepository rep = new KettleDatabaseRepository();  
  21.             rep.init(repInfo);  
  22.             rep.connect("admin""admin");  
  23.               
  24.             RepositoryDirectoryInterface dir = new RepositoryDirectory();  
  25.             dir.setObjectId(rep.getRootDirectoryID());  
  26.               
  27.             TransMeta tranMeta = rep.loadTransformation(rep.getTransformationID(transName, dir), null);  
  28.             Trans trans = new Trans(tranMeta);  
  29.             trans.execute(null);  
  30.             trans.waitUntilFinished();  
  31.         } catch (KettleException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.     }  
  35. }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约