日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

java调用kettle数据库类型资源库中的ktr

發布時間:2023/12/15 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 java调用kettle数据库类型资源库中的ktr 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此問題在1個月前或許已經接觸,單是一直木有怎么用到,就被耽擱至今;問題的解決要來源于網絡,其實我還想說問題的解決更多的是要靠我們自己的思想,不過多的言情,我們接下來直接進入主題吧!

環境:kettle-spoon 4.2.0,oracle11g,myeclipse6.5,sqlserver2008

前提:在kettle圖形界面spoon里面已經做好了一個ktr轉換模型,此時我的ktr信息如下圖:

Step1:在myeclipse創建project,導入kettle集成所需要的包

Step2:重點解析與code源碼

//定義ktr名字

private static String transName = "test1";

//初始化kettle環境

KettleEnvironment.init();

//創建資源庫對象,此時的對象還是一個空對象
KettleDatabaseRepository repository = new KettleDatabaseRepository();
//創建資源庫數據庫對象,類似我們在spoon里面創建資源庫
DatabaseMeta dataMeta =
new DatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password");
//資源庫元對象,名稱參數,id參數,描述等可以隨便定義
KettleDatabaseRepositoryMeta kettleDatabaseMeta =
new KettleDatabaseRepositoryMeta("enfo_bi", "enfo_bi", "king description",dataMeta);
//給資源庫賦值
repository.init(kettleDatabaseMeta);
//連接資源庫
repository.connect("admin","admin");
//根據變量查找到模型所在的目錄對象
RepositoryDirectoryInterface directory = repository.findDirectory("/enfo_worker/wxj");
//創建ktr元對象
TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ) ;
//創建ktr
Trans trans = new Trans(transformationMeta);
//執行ktr
trans.execute(null);
//等待執行完畢
trans.waitUntilFinished();

上面的兩個步驟才可以確定是資源庫中的那個路徑下的ktr和我們用命令執行一樣的-dir ,-tran -job

附上源碼:

package kettle;
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.Repository;
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;
/**
 * <p>Title: java調用kettle4.2數據庫型資料庫中的轉換</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright () 2012</p>
 */
public class ExecuteDataBaseRepTran {
    
private static String transName = "test1"; public static void main(String[] args) { try { //初始化kettle環境 KettleEnvironment.init(); //創建資源庫對象,此時的對象還是一個空對象 KettleDatabaseRepository repository = new KettleDatabaseRepository(); //創建資源庫數據庫對象,類似我們在spoon里面創建資源庫 DatabaseMeta dataMeta = new DatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password"); //資源庫元對象,名稱參數,id參數,描述等可以隨便定義 KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("enfo_bi", "enfo_bi", "king description",dataMeta); //給資源庫賦值 repository.init(kettleDatabaseMeta); //連接資源庫 repository.connect("admin","admin"); //根據變量查找到模型所在的目錄對象,此步驟很重要。 RepositoryDirectoryInterface directory = repository.findDirectory("/enfo_worker/wxj"); //創建ktr元對象 TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ) ; //創建ktr Trans trans = new Trans(transformationMeta); //執行ktr trans.execute(null); //等待執行完畢 trans.waitUntilFinished(); if(trans.getErrors()>0) { System.err.println("Transformation run Failure!"); } else { System.out.println("Transformation run successfully!"); } } catch (KettleException e) { e.printStackTrace(); } } }

英文名:kingwang
& Email :kingstudy@vip.qq.com

總結

以上是生活随笔為你收集整理的java调用kettle数据库类型资源库中的ktr的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。