Kettle資料庫資源庫連線執行示例

Melo Lee發表於2020-10-11
1、初始化 Kettle環境: org.pentaho.di.core.KettleEnvironment
KettleEnvironment.init();
2、建立 Kettle資料庫資源庫: org.pentaho.di.repository.kdr. KettleDatabaseRepository
// 此時的資源庫物件倉庫還是個空物件
KettleDatabaseRepository repository = new KettleDatabaseRepository();
3、建立資源庫的資料庫連線: org.pentaho.di.core.database.DatabaseMeta
DatabaseMeta databaseMeta = new DatabaseMeta("melo", "Oracle", "Native", "10.40.11.206", "orcl1", "1521", "melodemo", "melodemo");
 
4、建立資料庫資源庫元資訊: org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta
        id、名稱、描述可隨意定義,不重複即可
KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("melo", "melo", "melo", databaseMeta);
5、可資料庫資源庫初始化賦值
repository.init(kettleDatabaseMeta);
6、連線資料庫資源庫
repository.connect("admin", "admin");
7、根據目錄地址獲取 Kettle目錄物件: org.pentaho.di.repository.RepositoryDirectoryInterface
RepositoryDirectoryInterface directory = repository.findDirectory("/melo");
8、獲取資料庫資源庫中的 ktr  xml元資訊: org.pentaho.di.trans.TransMeta
TransMeta transMeta = ((Repository) repository).loadTransformation("melo", directory, null, true, null);
9、獲取xml內容,可放在Kettle視覺化工具中執行檢視
String xmlContent = transMeta.getXML();
10、建立Transform ktr物件: org.pentaho.di.trans.Trans
Trans trans = new Trans(transMeta);
11、執行 Transform
trans.execute(null);
trans.waitUntilFinished(); // 等待執行完畢
12、獲取執行異常結果
if (trans.getErrors() > 0)
     System.err.println("Transformation run Failure!");
else
     System.out.println("Transformation run successfully!");
13、獲取 Transform執行影響資料量
System.out.println(trans.getLastProcessed());
 

相關文章