- 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();
- }
- }
- }