概述
Kettle是一款國(guó)外開源的ETL工具酣溃,純java編寫,可以在Window纪隙、Linux赊豌、Unix上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定绵咱。Kettle 中文名稱叫水壺碘饼,該項(xiàng)目的主程序員MATT 希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出悲伶。
使用示例
- 環(huán)境說(shuō)明:windows 10 x64艾恼、jdk1.7.0_79、Kettle版本6.1麸锉。
- 以數(shù)據(jù)同步功能作為范例钠绍。
創(chuàng)建轉(zhuǎn)換
-
左上方工具欄->文件->新建->轉(zhuǎn)換 (或者使用CTRL+N快捷鍵)
-
左上方選擇->主對(duì)象樹-> DB連接右鍵->新建
配置來(lái)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)源
目標(biāo)數(shù)據(jù)源"target"配置同下,配置完后可點(diǎn)擊下方的測(cè)試按鈕進(jìn)行數(shù)據(jù)庫(kù)連接可用性檢查花沉。
全量同步
先刪除后插入柳爽,清除目標(biāo)表所有舊數(shù)據(jù),再重新插入最新的數(shù)據(jù)主穗,適合數(shù)據(jù)量較少的數(shù)據(jù)泻拦。
-
左上方核心對(duì)象-> 腳本->執(zhí)行SQL腳本,拖動(dòng)到右邊空白處忽媒,鼠標(biāo)懸浮出現(xiàn)編輯按鈕:
-
左上方核心對(duì)象-> 輸入->表輸入,同樣拖動(dòng)至右邊點(diǎn)擊編輯按鈕:
-
左上方核心對(duì)象-> 輸出->表輸出腋粥,同樣拖動(dòng)至右邊點(diǎn)擊編輯按鈕:
-
將 "執(zhí)行SQL腳本->表輸入->表輸出" 用步驟線連接起來(lái)
-
執(zhí)行轉(zhuǎn)換
按時(shí)間戳同步
需要分表創(chuàng)建以下兩個(gè)轉(zhuǎn)換:
1晦雨、根據(jù)記錄的刪除日志表,刪除廢棄數(shù)據(jù)隘冲。
2闹瞧、選定時(shí)間戳字段(比如最后修改時(shí)間),比較時(shí)間戳展辞,判斷進(jìn)行操作:插入新增數(shù)據(jù)奥邮、更新修改數(shù)據(jù)。
1罗珍、刪除廢棄數(shù)據(jù)
- 定義獲取已刪除過(guò)的最大流水號(hào)表輸入
- 定義獲取待刪除數(shù)據(jù)標(biāo)識(shí)表輸入
-
定義刪除步驟
-
連接表輸入和刪除步驟
2洽腺、根據(jù)時(shí)間戳同步數(shù)據(jù)
-
獲取同步的時(shí)間戳
-
定義待同步數(shù)據(jù)的表輸入
-
定義插入/更新步驟
-
連接步驟
數(shù)據(jù)同步
根據(jù)比較來(lái)源和目標(biāo)數(shù)據(jù)字段(來(lái)源和目標(biāo)表結(jié)構(gòu)及字段名一致),判斷進(jìn)行操作:刪除不存在的舊數(shù)據(jù)覆旱、插入新增數(shù)據(jù)蘸朋、更新修改數(shù)據(jù),用于數(shù)據(jù)量不大的情況扣唱。
注意:用于合并的兩個(gè)數(shù)據(jù)輸入流藕坯,必須按照相同的主鍵按照相同的方向進(jìn)行排序团南,否則合并出來(lái)的數(shù)據(jù)標(biāo)志字段的取值是錯(cuò)誤的。
-
定義來(lái)源數(shù)據(jù)輸入
-
定義目標(biāo)數(shù)據(jù)輸入
-
定義數(shù)據(jù)合并步驟
- 定義數(shù)據(jù)同步步驟
-
連接步驟