Kettle的使用——大數據清洗技術


參考德拓視頻學習:http://113.31.104.47/portal/#/course/courseDetail/b34d160db64624732ef152a1118af11a?courseId=1b7e84f4eb8552536e2267093dbd7972

kettle安裝:下載包直接解壓打開就能用,不在闡述;

遇到的問題:

1.連接MySQL報錯:

 

 

①報錯:

Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
org.gjt.mm.mysql.Driver

原因:沒有識別到連接數據庫的驅動jar包

解決方法:

將驅動jar包復制粘貼到data-integration\lib文件下(data-integration為kettle安裝目錄);重啟spoon

操作完成之后反復嘗試還是報相同的錯,識別不到,則說明你的kettle版本與你的驅動版本不容,無法識別。(例如我的kettle7.0無法識別mysql-connector-java-8.0.19.jar)。那么只有換版本或者換連接的數據庫(這里我放棄連接MySQL,轉為連接sqlserver)

②報錯:

Error connecting to database: (using class org.gjt.mm.mysql.Driver)
Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.

原因:你導入的jar包被kettle識別,但是它與你本地MySQL版本不容

解決方法:換連接驅動的jar包(因為驅動版本是跟數據庫版本一致的,間接說明你的kettle與MySQL版本不容)

連接SQL server:

 

 

連接成功:

 

操作:(本案例演示csv文件拆分字段轉存sqlserver數據庫

(1)建立作業,連接數據庫

(2)執行sql腳本(對數據庫表初始化操作)

 下面的sql腳本在sqlserver運行不出錯,但在kettle就會報錯(不知道為什么,所以現在我sql腳本沒有寫,不過想想確實還不如直接去數據庫客戶端里建表方便)

IF NOT EXISTS (select * from dbo.sysobjects where xtype='U' and Name = 'kettle_test')
BEGIN
  CREATE TABLE kettle_test
    (
    kind varchar(255),
    time varchar(255),
    processingDepartment varchar(255),
    content varchar(255)
    );
END

 

 

執行結果出錯(如下圖),后來我把sql語句刪了,動手在數據庫里建的表。

 

 

 (3)在轉換1中新建一個轉換;完成輸入csv文件,字段切分,輸出到表的操作

 

(這里,觀察左菜單欄就會發現它的數據清洗功能)

 

①需要給每個轉換建立數據庫連接;

②之后進行csv文件輸入:

我的csv樣式:

 

 

 ③拆分字段:

 

 

 ④表輸出

 

⑤點擊文件,保存

⑥返回作業,為轉換1設置:

 

 (4)保存,執行

 

 體驗:確實很快,我使用一兆多大的csv文檔測試,零點幾秒完事

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM