博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kettle与Java集成——Java代码调取运行资源库的Transformation
阅读量:4214 次
发布时间:2019-05-26

本文共 2987 字,大约阅读时间需要 9 分钟。

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

1Java读取资源库运行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();					}				}			}

转载地址:http://whfmi.baihongyu.com/

你可能感兴趣的文章
test-definitions/blob/master/auto-test/bazel/bazel.sh
查看>>
test-definitions/blob/master/auto-test/bigdata/bigdata.sh
查看>>
/test-definitions/blob/master/auto-test/blktrace/blktrace.sh
查看>>
test-definitions/blob/master/auto-test/blogbench/blogbench.sh
查看>>
test-definitions/blob/master/auto-test/boost/boost.sh
查看>>
test-definitions/tree/master/auto-test/dd-wr-speed
查看>>
test-definitions/blob/master/auto-test/dhcp/dhcp.sh
查看>>
test-definitions/blob/master/auto-test/disk-partitioning/disk-partitioning.sh
查看>>
test-definitions/blob/master/auto-test/docker/docker.sh
查看>>
test-definitions/blob/master/auto-test/dsdbench/dsdbench.sh
查看>>
test-definitions/blob/master/auto-test/dsdbench/dsdbench.sh
查看>>
test-definitions/blob/master/auto-test/dstat/dstat.sh
查看>>
test-definitions/blob/master/auto-test/etcd/etcd.sh
查看>>
test-definitions/blob/master/auto-test/ftp/ftp.sh
查看>>
test-definitions/blob/master/auto-test/gprof/gprof.sh
查看>>
test-definitions/blob/master/auto-test/hhvm/hhvm.sh
查看>>
test-definitions/blob/master/auto-test/httperf-client/httperf.sh
查看>>
test-definitions/blob/master/auto-test/iostat/iostat.sh
查看>>
test-definitions/blob/master/auto-test/kernel-compilation/kernel-compilation.sh
查看>>
内核ACPI函数API之acpi_platform_fill_resource
查看>>