下面代码是Java代码调用Kettle4.0版本的Transformation
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();
-
}
-
}
-
}
-