近期做了不少數據遷移工作,無一例外都是kettle做的,對於這些工具,我認為。夠用就好,不用做特別多的研究(當然。除非你是這款工具的忠實粉絲,我相信這種沒幾個)。kettle也不例外。在我看來就是不同數據庫間轉移數據的工具,學一下大致的遷移的方法即可了,簡單問題能解決即可。
基於這個目的,這里做一個簡單的遷移步驟的入門。
對於不同數據間遷移,簡單的操作一般就是表輸入,字段匹配和表輸出的步驟:
所以第一步就是建立表輸入:文件-新建-轉換,在以下選擇表輸入,拖到中間就可以。然后點進去對表輸入進行操作:當然是選擇相應的數據庫,這里說明一下,最好在選項那一欄里加一個屬性characterEncoding 值填UTF-8或者GBK(建議統一UTF-8,假設你是數據庫都是統一的UTF-8的話)。
然后獲取sql查詢語句,選擇要遷移的數據表點擊顯示sql語句即可了。然后就會顯示要轉移的字段,你能夠依據須要將這些字段做對應的處理,比如:
首先說明一下,我這里DATEDIFF(s, '1970-01-01 00:00:00.000', RegisterTime) RegisterTime是sqlserver時間日期轉換unix時間戳的函數。是官網給出的,可是可能會報錯,可是依照道理不應該。詳細原因不太清楚,假設怕報錯能夠寫復雜一點:(convert(bigint, datediff(day, '1970-01-01 00:00:00' , AddTime)) * 24 * 60 * 60)
- (datediff(second, dateadd(day, datediff(day, 0,'1970-01-01 00:00:00'), 0), '1970-01-01 00:00:00'))
+ (datediff(second, dateadd(day, datediff(day, 0, AddTime), 0), AddTime)) AddTime。這樣的就不會報錯了。
接下來就是字段選擇:轉換-字段選擇拖到中間。按住shift按箭頭將表輸入和字段選擇連接起來。點擊進去,點擊獲取改變字段,將相應的字段名稱后面的改名成都寫上相應要遷移的目的庫中的字段名,Encoding選擇UTF-8(樓主開始被騙了,表輸入表述出和字段選擇都選的GBK,也能夠用,只是也有個別不能用的時候。所以還是UTF-8好用)。
嗯,接下來就是表述出了,相同道理,從表述出里面拖出來,按住shift拉個箭頭跟字段選擇。
接下來跟表輸入幾乎相同須要輸入數據庫的信息。
這里就不具體說反復的步驟了,記得選項里也填上編碼UTF-8。
這些做好之后,目標表選擇自己要遷移到的表。勾選指定數據庫字段。以下的數據庫字段點擊獲取字段,因為咱們前邊字段選擇時都改名了,這里他會自己主動給你匹配好字段。點擊確定就算完畢了。
最后就是點擊綠色的開始button,開始遷移數據吧。
當然,在以下會有遷移進度以及日志。假設報錯了,依據日志的錯誤提示攻克了就能夠:
OK。這樣簡單的數據遷移應該就沒問題了。