數據庫遷移不是一件簡單的事情,特別是需要從Oracle遷移到MySQL或者sqlserver遷移到MySQL等等,而數據處理中還會遇到很多問題,譬如表結構不一樣,字段需要特殊處理等,而Kettle使用起來則非常方便,不需要連接太多的SQL知識,本文就介紹一下我在工作中遇到的使用場景,我使用的kettle版本是9.0+
相關文章
- Kettle數據庫遷移實戰(二)–批量導入
- Kettle數據庫遷移實戰(三)–表輸入使用上一個步驟的變量作爲參數
- Kettle數據庫遷移實戰(四)–使用SQL腳本
- Kettle實戰(五)–使用java代碼腳本
- Kettle應用場景(多表級聯)
- sqlserver驅動jar下載
- 官方文檔一
- 官方文檔二
- 官方文檔三
-
先介紹一篇其它優秀博文—kettle數據遷移從oracle到mysql,作者對於軟件的下載,數據庫連接和基本使用,介紹的都比價詳細。另外說明一點,獲取字段映射關係,首先需要建立兩個數據庫的關係,也就是先要把步驟連起來
-
我在工作中的使用
-
新表當中有個別字段是常量,而就數據庫沒有這個字段
-
首先新建轉換,在主對象樹建立數據庫連接
-
在覈心對象->輸入選擇‘表輸入’,輸出選擇’插入/更新’,轉換選擇增加常量。其中輸入根據需要寫Sql
-
依次連接3個步驟,並配置3個步驟
-
檢驗轉換有沒有錯誤,沒有錯誤則執行轉換
-
校驗沒有錯誤但是在執行轉換報錯也是很正常的,這時候大都是因爲sql有錯誤:比如非空字段沒有插入值,字段長度不夠等,而日誌臺對這些錯誤信息顯示的頁比較清晰,遇到錯誤不要害怕,靜下心來分析錯誤,你會發現很簡單
-
-
新表當中某個字段需要是幾個字段(或者常量)的拼接後的結果,下面只給出關鍵步驟
-
當新表中有字段需要隨機值-可選擇輸入步驟->生成隨機數,可選擇生成隨機數的類型,豎直,字符串,UUID等
案例2:根據正則截取數據庫中的字段值的一部分內容,並複製給新的字段
-
我的業務需求是:從舊數據庫的的內容裏(是富文本內容)提取第一張圖片的路徑然後保存到新數據的對應字段值
-
因爲要使用java的類,而kettle並沒有提供這些類的使用,所以需要自定義java類(在自己的編輯器編寫java類),然後導出jar包
-
把jar包放在kettle的lib文件夾內,然後重啓kettle(有可能不需要重啓)
-
利用核心對象->腳本->java代碼調用自定義的java類
-
把返回值存入新的變量中
其它優秀資源