java中調用kettle轉換檔

來源:互聯網
上載者:User

標籤:wait   dir   run   for   runtime   .net   ini   system   fonts   

java中調用kettle轉換檔

 

      通過命令列也能夠調用,然後java中調用命令列代碼也能夠。這樣沒有和java代碼邏輯無縫整合。本文說明kettle5.1中假設通過其它API和java代碼無縫整合;網上大多數資料都是低版本號碼的。在kettle5.x中已經不能執行。

1、       須要哪些jar檔案


以kettle開頭的是必須,最以下三個也要;紅色框中的兩個是我測試轉換用到的。各自是產生UUID和檔案。

要是少了jar檔案,執行程式一定報錯。大家依據錯誤到kettle安裝資料夾LIB中找對應的jar加到編譯路徑中。

2、       示範範例說明怎樣通過java調用轉換

示範範例是把一個excel的內容匯入到資料中。excel僅僅有兩列,所以須要在kettle中產生一列uuid,然後匯入到資料庫中。


預設產生的uuid有‘-’間隔符,所以通過“Replace in string”替換為空白;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

excel步驟,使用了命名參數,所以要在轉換配置設定命名參數。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

示範範例代碼例如以下:

publicclass KettleUtil2 {   public String RES_DIR = "res";   private String fullFileName ;    public KettleUtil2(String fileName){      fullFileName = System.getProperty("user.dir") + File.separator + RES_DIR;      fullFileName += File.separator + fileName;   }   /**    * 沒有參數是,設定參數為null    * @param paras    */   publicvoid runTransformation(Map<String,String> paras) {      try {        KettleEnvironment.init();         TransMeta transMeta = new TransMeta(fullFileName);        Trans  transformation =new Trans(transMeta);               for(Map.Entry<String, String> entry: paras.entrySet()) {            transformation.setParameterValue(entry.getKey(), entry.getValue());        }         transformation.execute(null);        transformation.waitUntilFinished();               if (transformation.getErrors() > 0) {           thrownew RuntimeException(                 "There wereerrors during transformation execution.");        }      } catch (KettleException e) {        System.out.println(e);      }   }}


 

最後調用代碼例如以下:

publicclass EtlTest {    publicstaticvoid main(String[] args) {      KettleUtil2 etl = new KettleUtil2("testimport.ktr");      Map<String,String> para = new HashMap<String,String>();           //給轉換中命名參數賦值      para.put("XlsName", "data");      etl.runTransformation(para);   }}


 

 

 

java中調用kettle轉換檔

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.