30天學會Data Integration - Kettle系列 第 1 篇 - 就決定寫Kettle了
幾經掙扎,真覺得比賽為什要辦在年底呢,真的是水深火熱啊!原本是打算寫Asp.Net MVC,但怕寫到一半就跑不動了,偏偏肚子沒什麼墨水,東擠西擠倒是有一些油水啦XD,希望可以靠這些油水順利撐過未來的30天!
為什麼要寫這個主題
想來想去,還是乖乖來寫一下Kettle的筆記,因為本人記憶力超弱,隨著時間的流逝,所學的東西也跟著流失的,所以趁現在對Kettle還存有ㄧ些記憶時,趕緊把筆記整理起來,以後就算忘記也可以馬上複習!
話說我有機會學到Kettle,都要感謝我的部門經理,還有不藏私的同事一路的指導與協助,特別特別感謝一間廠商的工程師非常的照顧我,常常私下幫我解惑還不收錢XD,說真的,第一次聽到同事分享Kettle時,真的完全聽不懂他到底在說什麼,等到真的打開Kettle時,更不知道這軟體到底該怎麼操作,其實我覺得這軟體沒有很容易入門,尤其又是英文版(本人是英文白癡),但是頭過身就過!稍微有人帶一下,學會了就會愛上他,在特定時刻,會有一種我的生活不能沒有它的感覺。
特定時刻是什麼時候呢?例如,有些客戶想要改寫舊系統,而新系統免不了的一定會有資料庫架構與資料的變動,但對工程師而言,進行資料的轉置根本是一場災難,因為絕對不可能用人工的方式去轉置資料,光是一堆table的join根本是頭眼昏花,更別說那些不易讀的欄位命名,還要分析與驗證資料的正確性,以及保證你沒有遺漏任何一筆資料,像是我參與過比較複雜的資料轉置是8個table的整合分析與寫入資料庫,除了資料量大之外還邏輯還頗複雜,除了要靠強大的SA同事來協助之外,還要有一個好用的ETL工具,真的是深深感受到ETL工具的威猛,流程清楚且易維護,隨時想重匯資料都沒問題,但如果叫我寫程式去處理,或是叫我去維護別人寫的程式,等級太弱的我一定崩潰XD,以下是我目前設計過最複雜的流程畫面XD
不過簡單的部分也有像是拿到幾百筆的帳號密碼與姓名的資料(Excel)要寫入資料庫的,最原始的方式當然是請工讀生去資料庫慢慢建(搞不好也有呆呆的工程師自己慢慢建的),或是使用資料庫的Excel匯入功能,此時就可以自行評估,不一定要ETL工具囉!
什麼是Kettle
現在的資料庫非常多種,沒有任何一套資料庫可以解決所有問題,不然這世界上只會剩下一種資料庫,而程式語言永遠學不完,系統也永遠開發不完,文件檔案格是更是族繁不齊備載,如何整合這些資料庫、系統與資料文件,Kettle就是其中一種選擇。
Data Integration - Kettle (or Kettle, Pentaho Data Integration, PDI),是由Pentaho這家公司所開發的,它是一個資料整合ETL(Extract-Transform-Load)的工具,ETL工具常常使用在資料倉儲的環境,而Kettle這套ETL工具,是透過圖形化介面讓使用者設定資料整合的方式,也可以應用在:
1.在軟體與資料庫之間的資料轉置
2.將資料庫資料匯出成文件(例如:txt、excel)
3.從資料庫載入大量資料(例如:Hadoop、MongoDB)
4.整合應用程式資料
所謂的ETL包含三個部分:
1.Extract(抽取):讀取資料,資料來源可能是txt、excel或者是database
2.Transform(轉置):將資料進行分析,例如驗證資料格式是否正確,等等...
3.Load(載入):將處理好的資料可能匯出成txt、excel、寫入或更新到指定database
簡而言之,Kettle主要的操作就是透過滑鼠點一點、拖一拖、拉一拉,就可以輕鬆完成資料整合了,如下圖:
另外Kettle是Open Source的喔,開發環境是使用Java!台灣有一家員工將近2000人的公司,就是使用Kettle來另外改寫成一套中文化的軟體,產品名稱當然就不叫Kettle了,價值不斐,所以這30天好好學會Kettle,不只省時還能省下一些錢!
下一篇將介紹如何安裝與執行Kettle,先到官網晃晃吧!
http://community.pentaho.com/projects/data-integration/
留言
張貼留言