Kettle應(yīng)用場(chǎng)景
- 示例1:將數(shù)據(jù)源A庫中的某張表的數(shù)據(jù)插入到數(shù)據(jù)庫B中冯乘。
- 示例2:將數(shù)據(jù)源A庫中的某張表的數(shù)據(jù)插入更新到數(shù)據(jù)庫B中酒唉。
- 示例3:將數(shù)據(jù)源A庫中的某張表或某幾個(gè)表中的字段合并后的數(shù)據(jù)插入到數(shù)據(jù)庫B中泻帮。
- 示例4:將數(shù)據(jù)源A庫中的某兩張或多張表級(jí)聯(lián)查詢的數(shù)據(jù)插入到數(shù)據(jù)庫B中的一張表中
在此湃番,我們主要對(duì)示例2進(jìn)行說明防症。
為方便演示懈费,我們?cè)跀?shù)據(jù)庫A和數(shù)據(jù)庫B中分別創(chuàng)建表userA和表userB。最終目標(biāo)為將數(shù)據(jù)表userA中的數(shù)據(jù)插入更新到數(shù)據(jù)表userB中著榴。
create database testA;
use testA;
create table `userA`(
`id`int(10) primary key,
`name` varchar(50),
`age` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into userA values(1,'張三',25);
insert into userA values(2,'李四',29);
insert into userA values(3,'王五',28);
insert into userA values(4,'趙六',28);
create database testB;
use testB;
create table `userB`(
`idB`int(10) primary key,
`nameB` varchar(50),
`ageB` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into userB values(1,'張三',20);
insert into userB values(2,'李四',21);
insert into userB values(3,'王五',22);
操作步驟
1添履、運(yùn)行軟件,進(jìn)入主界面脑又。點(diǎn)擊左上角的 文件 → 新建 → 轉(zhuǎn)換新建一個(gè)轉(zhuǎn)換暮胧,并保存,轉(zhuǎn)換的后綴名為ktr问麸。
2往衷、點(diǎn)擊面板左側(cè)的 主對(duì)象樹 ,選擇 DB連接 右鍵严卖,選擇 新建 或 新建數(shù)據(jù)庫連接向?qū)?/strong> 分別創(chuàng)建對(duì)數(shù)據(jù)庫A和數(shù)據(jù)庫B的連接席舍。
注意: 如果在點(diǎn)擊測(cè)試連接時(shí)出現(xiàn)下圖所示錯(cuò)誤,檢查我們的安裝目錄下的lib中是否有對(duì)應(yīng)數(shù)據(jù)庫連接的jar包文件(如mysql的jar文件:mysql-connector-java-5.1.6-bin.jar)哮笆,下載對(duì)應(yīng)的jar来颤,放到lib文件夾下,重啟kettle軟件稠肘,即可脚曾。
3、點(diǎn)擊面板左側(cè)的 核心對(duì)象 启具,選擇 輸入文件夾下的 表輸入 并把它拖到右側(cè)的編輯區(qū)中。
4珊泳、雙擊編輯區(qū)的“表輸入”圖標(biāo)鲁冯,編輯數(shù)據(jù)輸入源。
5色查、點(diǎn)擊面板左側(cè)的 核心對(duì)象 薯演,選擇 輸出文件夾下的 插入/更新 并把它拖到右側(cè)的編輯區(qū)中,按住 shift 畫線連接 “表輸入”秧了。
6跨扮、雙擊編輯區(qū)的“插入/更新”圖標(biāo),編輯控件內(nèi)容验毡。
用來查詢的關(guān)鍵字衡创,此處只選擇主鍵id,表示這里按照id查詢晶通,如果此id存在璃氢,則更新數(shù)據(jù),若不存在則插入數(shù)據(jù)狮辽。
7一也、到這里巢寡,我們最簡(jiǎn)單的一個(gè)插入/更新數(shù)據(jù)的轉(zhuǎn)換已經(jīng)建立完成了,點(diǎn)擊“校驗(yàn)這個(gè)轉(zhuǎn)換”椰苟,Kettle會(huì)校驗(yàn)并給出簡(jiǎn)單的報(bào)告抑月。沒有任何問題。
8舆蝴、點(diǎn)擊“運(yùn)行這個(gè)轉(zhuǎn)換”谦絮,選擇“本地執(zhí)行”,點(diǎn)擊“啟動(dòng)”來執(zhí)行這個(gè)轉(zhuǎn)換须误。
9挨稿、轉(zhuǎn)換成功后,我們可以在控制臺(tái)中看到如下信息京痢。檢查本地?cái)?shù)據(jù)庫奶甘,數(shù)據(jù)庫A的userA表中的數(shù)據(jù)已經(jīng)全部被插入更新到了數(shù)據(jù)庫B的userB表中。
注:此示例適用于插入和更新目標(biāo)源數(shù)據(jù)祭椰,無法將已經(jīng)源表中的刪除的記錄同步到目標(biāo)表中
上一篇: Kettle入門之四 Kettle定時(shí)任務(wù)(后臺(tái)任務(wù))
下一篇: Kettle入門之六 Kettle應(yīng)用場(chǎng)景(字段合并)