Kettle零基礎開始使用過程中,遇到問題及解決辦法,自己過程記錄

---------1. 在妄圖打開軟件前------------------------

這個軟件需要裝jdk
建議jdk直接裝1.8以上版本,不然打不開

裝JDK注意了,用戶變量和系統變量裏的path都要寫

 

---------2. 連數據庫死活連不上(SQL SERVER)------------------------

數據庫這裏我用的是SQL server 2008R2

題外話:   建議用kettle  6.2版本的,據說是支持最多的
               7.4是最後一版支持SQL server 2008R2的

我在測試數據庫連接時死活連不上,報

錯誤連接數據庫 [ConnectSQLSERVER] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class 'net.sourceforge.jtds.jdbc.Driver' could not be found, make sure the 'MS SQL Server' driver (jar file) is installed.
net.sourceforge.jtds.jdbc.Driver


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class 'net.sourceforge.jtds.jdbc.Driver' could not be found, make sure the 'MS SQL Server' driver (jar file) is installed.
net.sourceforge.jtds.jdbc.Driver

去網上搜,都說是要對應的jar包,去下了直接放進去還是不行,按搜到的某個攻略也不行:
 

- Download Microsoft JDBC Drivers 4.2 on https://www.microsoft.com/en-us/download/details.aspx?id=11774
- Unzip the package in a temp directory
- Close Spoon
- Copy '<temp directory>\sqljdbc_4.2\enu\auth\x86\sqljdbc_auth.dll' to 'C:\Program Files (x86)\Java\jre1.8.0_73\bin' (32-bit)
- Copy '<temp directory>\sqljdbc_4.2\enu\sqljdbc42.jar' to '<Kettle installation folder>\data-integration\lib'
- Open Spoon
- Test connection in spoon
- Delete temp directory

最後發現是建立連接選擇時,應該選MS SQL SERVER (Native),之前選的一直是MS SQL SERVER,說是不同的廠商還是啥的,選擇如圖:

我真是嗶了狗了

注意啊,不管是連SQLServer 還是MySQL,都要裝jdbc包的,裝完了重啓Kettle。

MySQL:
下載地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.zip
文件名:mysql-connector-java-5.1.44.zip
解壓後,一樣的,將“mysql-connector-java-5.1.44-bin.jar”複製到lib裏就行了

SqlServer:
有時候下載了sqljdbc.jar等七七八八的sql jdbc包,放在lib文件夾都不行,

在確定Kettle 連接類型採用MS SQL Server(Native)後,還是報“JDBC Driver class not found: com.microsoft.sqlserver.jdbc.SQLServerDriver”錯誤,此時只要將sqljdbc.jar/sqljdbc4.jar(oracle 是ojdbc5.jar)包放入data-integration\libswt對應操作系統文件夾下,重啓Kettle即可連接上

 

---------------3. 組件等七七八八的具體使用------------------------

你興高采烈的打開了,想着建個轉換、作業啥的可以跑了,並不,首先好多組件是你不知道的,如果在你想要過濾空數據、重複數據、不符合你七七八八要求的數據、對比數據根據結果分步驟執行、需要參數、需要參數對比取小的、等等

但在開始之前,你發現每個轉換都要建數據庫連接,這就很麻煩,在我都建好以後,發現
在你建好的DB連接上右鍵 -> 點擊 共享 ,連接名會變爲粗體,這就是個共享的鏈接了,,,

 

---------------4. 抽取數據亂碼------------------------

在已經找到合適的組件,開始抽取後你可能會發現,抽出來的時間格式的“-”被搞成□,漢字被搞成亂碼,插入數據時報錯

這時候應該先看下:
1. 數據庫的字符集是否是UTF-8

2. 修改kettle設置,在輸出時對輸出的數據庫進行編碼配置

看到的一般是在數據庫鏈接那裏設置

 

但我設置了沒用,後來發現,在查數據的輸出那裏,把“允許簡易轉換”去掉,就可以了

 

----------------------改連mysql數據庫,發現  還有一種亂碼是漢字全變成問號,eg: 3個漢字就是???-------------------------------

這時我根據以往經驗查看數據庫、表結構、亂碼的那一列,發現都是utf8 (真是令人摸不着頭腦.jpg)

那麼只要在kettle連接,設定下就可以了,如圖

看清楚是utf8,填gbk可解決不了問題

 

 

---------------------------5. 你想把寫好的布到服務器上--------------------------

批處理文件內容回頭補,反正你寫好了想運行,發現提示虛擬內存不夠

這個時候不要慌,別瞎他媽看什麼讓你改Eclipse.ini的,咱們又沒下那個java的編譯器,就直接在你調用的spoon.bat裏改就行了,哪裏配多了改哪裏,詳情可以看這個哥們寫的

https://blog.csdn.net/zgzyp/article/details/52993688

 

---------------------------6. 轉換之間用參數傳遞數據--------------------------

按網上來,作業裏寫2個轉換,轉換1設置參數,轉換2取參數,一直不行,最後發現是嘗試的太多,導致作業裏的轉換路徑錯亂,整理後就沒問題了

卡了我好幾天,難受,對了,參數這塊,有個大佬總結的特別好,原文點這裏

參數總結的特別好的
參數總結的特別好的


 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章