由於專案的需求,需要將資料從oracle遷移到mssql,不是簡單的資料複製,而是表結構和欄位名都不一樣,甚至需要處理編碼規範不一致的情況,如下圖所示
注意:oracle和mssql中的同名表的欄位名是不相同的
如果要是採用手工sql語句操作的話會很麻煩,需要考慮
oracle和mssql sql語法的差異資料從抓取--轉化--載入遷移的過程安排欄位的對映外來鍵的約束目的表是否為空等等許多問題
而這些問題對於kettle來說都不叫事,下面就為大家介紹如何使用強大的kettle實現資料的遷移
kettle翻譯成中文是「水壺」,這個名字很形象,不管你向水壺當中新增了哪些液體或者可溶物質從壺嘴裡面出來的都是均勻統一的液體。對於資料載入就是:不管資料來源採用什麼樣的格式,excel、datatable、純文字或者是xml,kettle都能轉化成統一的格式進行處理,並且能夠更具使用者的需要匯出不同的格式
下面我們就用kettle來解決上述問題
首先介紹一下kettle的兩個工作單元:transformation和job
transformation:實現資料的轉化
job:對transformation根據依賴關係組織執行順序,還可以對job的執行進行條件判斷和預處理,使用者還可以設 置job的執行時間,比如每天的9:00開始執行job,這和持續構建中的job意思一樣。
看一下這款神奇的軟體長的什麼樣子
首先我們建立乙個transformation,命名:tr_stu_and_class,如下圖所示,目的是先將學生和班級的資訊從oracle遷移到mssql
然後建立第二個transformation,命名tr_stuclasslink,如下圖所示,目的是將學生和班級的關係從oracle遷移到mssql
因為第三張關係表tb_stuclasslink和tb_student、tb_class存在外來鍵依賴關係,所以必須先執行tr_stu_and_class再執行tr_stuclasslink。所以我們需要乙個job(命名jb_orcl2mssql)來組織他們的執行順序,如下圖所示
接下來執行job就可以在瞬間實現資料遷移
在transformation中可以自定義欄位的對映關係(如從oracle表中的哪一列遷移到mssql表中的哪一列),可以指定遷移哪些列
利用圖形化的模組化的方式,更加高效和直觀
如果是大批量複雜的資料遷移,使用kettle可以更好的組織資料遷移
建立的transformation和job都會被儲存起來,什麼時候需要遷移資料,點一下按鈕就ok啦
怎麼樣是不是很簡單很強大
補充kettle是開源的
kettle幾乎支援所有資料庫、excel和xml等常見的資料格式的遷移轉換。你能想到的它幾乎都支援
資料遷移只是kettle功能中很小的一部分,kettle不僅是etl工具更是強大的bi工具,有興趣的童鞋們可以研究一下
開源ETL工具 kettle的使用入門介紹
首先,給大家介紹一寫關於etl的基本知識。etl是由三個詞組成的。分別是extract,transform,load 也就是抽取,轉換和載入。在現代網際網路企業中使用時比較頻繁的,在商業智慧型bi中也是很受歡迎的。常用的etl工具也有很多,比如infomatia,datastage,kettle,t...
ETL開源工具kettle中Job流程的理解
job流程 可執行執行緒,代表etl控制流中的一項邏輯任務。job節點將會順序執行,每個job節點會產生乙個結果,能作為別的分支上job節點的條件。jobentry節點 自定義外掛程式 代表著功能 hop連線 代表流程邏輯 result結果物件 流程job繼承執行緒thread類,就是乙個可執行執行...
ETL工具kettle設定全域性變數
昨天讓kettle傳入的引數搞的很鬱悶,從網上查一些資訊,大多講的是每個transformation內部傳遞引數,要麼就是講在job中把引數傳進transformation,而且還不正確。大家最常碰到的問題恐怕就是要做增量抽取了吧,增量抽取不可避免要碰到時間戳,那麼我們假如每天晚上需要抽取當天新增的...