---------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取參數,一直不行,最後發現是嘗試的太多,導致作業裏的轉換路徑錯亂,整理後就沒問題了
卡了我好幾天,難受,對了,參數這塊,有個大佬總結的特別好,原文點這裏