Kettle与Java集成——Java代码调取运行资源库的Transformation
2016-11-01 10:37
267 查看
下面代码是Java代码调用Kettle4.0版本的Transformation
1、Java读取资源库运行Transformation
(1)目录类型资源库Java代码
(2)数据库类型资源库
1、Java读取资源库运行Transformation
(1)目录类型资源库Java代码
import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.repository.filerep.KettleFileRepository; import org.pentaho.di.repository.filerep.KettleFileRepositoryMeta; import org.pentaho.di.trans.Trans; import org.pentaho.di.trans.TransMeta; public class ReaderTransFromRep { private static String tranName = "IM_KSDM"; // 传输名称 public static void main(String[] args) throws KettleException { Trans trans=null; try { // 初始化 KettleEnvironment.init();这个是4.0版本的初始化,和3.x版本的不同 // 资源库元对象 KettleFileRepositoryMeta repinfo = new KettleFileRepositoryMeta("","","数据采集","file:///E:/Workspaces/Kettle"); // 文件形式的资源库 KettleFileRepository rep = new KettleFileRepository(); rep.init(repinfo); // 转换元对象 if(tranName!=null){ TransMeta transMetadel = rep.loadTransformation(rep.getTransformationID(tranName, null), null); // 转换 trans = new Trans(transMetadel); // 执行转换 trans.execute(null); // 等待转换执行结束 trans.waitUntilFinished(); //抛出异常 if(trans.getErrors()>0){ throw new Exception("There are errors during transformation exception!(传输过程中发生异常)"); } }else{ throw new KettleException("传输名为空!"); } } catch (Exception e) { if(trans!=null){ trans.stopAll(); } e.printStackTrace(); throw new KettleException(e); } } }
(2)数据库类型资源库
import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; 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; public class ReaderTransFromDBRep { private static String transName="t1"; public static void main(String[] args) { 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(); } } }
相关文章推荐
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Kettle与Java集成――Java代码调取运行资源库的Transformation
- BlackBerry手机上面开发Java程序,如果才能让代码运行效率高,占用系统资源少?
- java代码运行中获取正被调用的函数名
- c++ primer 习题 15.35 集成了哪一章的完整的可运行代码
- 使用eclipse运行曾经写过的java代码
- JAVA 测试程序代码运行时间
- 偷点小懒——Java命令行编译运行批处理代码
- java动态编译运行代码
- 运行java时,窗体在屏幕中间显示的代码
- 简述Java 从代码到运行的全过程
- Android 如何在java层代码里运行具有root权限的Linux shell命令
- 调试集成 Java 和 C/C++ 的代码
- java监控tomcat运行代码
- JSP运行在tomcat下时,页面java代码的变量命名的一个注意事项
- 运行java时,窗体在屏幕中间显示的代码
- Java精确测量代码运行时间 代码执行时间 纳秒 nanoTime
- 测试java代码运行时间