Kettle應(yīng)用場景
- 示例1:將數(shù)據(jù)源A庫中的某張表的數(shù)據(jù)插入到數(shù)據(jù)庫B中。
- 示例2:將數(shù)據(jù)源A庫中的某張表的數(shù)據(jù)插入更新到數(shù)據(jù)庫B中涌韩。
- 示例3:將數(shù)據(jù)源A庫中的某張表或某幾個表中的字段合并后的數(shù)據(jù)插入到數(shù)據(jù)庫B中。
- 示例4:將數(shù)據(jù)源A庫中的某兩張或多張表級聯(lián)查詢的數(shù)據(jù)插入到數(shù)據(jù)庫B中的一張表中
在此,我們主要對示例3進(jìn)行說明。
為方便演示胚股,我們在數(shù)據(jù)庫A和數(shù)據(jù)庫B中分別創(chuàng)建表userA和表userB。最終目標(biāo)為將數(shù)據(jù)表userA中的字段“surname”和“name”合并后的數(shù)據(jù)插入到數(shù)據(jù)表userB中裙秋。
create database testA;
use testA;
create table `userA`(
`id`int(10) primary key,
`surname` varchar(10),
`name` varchar(50),
`age` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into userA values(1,'張','三豐',30);
insert into userA values(2,'李','四光',28);
insert into userA values(3,'王','小米',22);
create database testB;
use testB;
create table `userB`(
`idB`int(10) primary key,
`nameB` varchar(50),
`ageB` int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
操作步驟
1琅拌、運(yùn)行軟件,進(jìn)入主界面摘刑。點擊左上角的 文件 → 新建 → 轉(zhuǎn)換新建一個轉(zhuǎn)換进宝,并保存,轉(zhuǎn)換的后綴名為ktr枷恕。
2党晋、點擊面板左側(cè)的 主對象樹 ,選擇 DB連接 右鍵,選擇 新建 或 新建數(shù)據(jù)庫連接向?qū)?/strong> 分別創(chuàng)建對數(shù)據(jù)庫A和數(shù)據(jù)庫B的連接未玻。
注意: 如果在點擊測試連接時出現(xiàn)下圖所示錯誤灾而,檢查我們的安裝目錄下的lib中是否有對應(yīng)數(shù)據(jù)庫連接的jar包文件(如mysql的jar文件:mysql-connector-java-5.1.6-bin.jar),下載對應(yīng)的jar扳剿,放到lib文件夾下旁趟,重啟kettle軟件,即可庇绽。
3锡搜、點擊面板左側(cè)的 核心對象 ,選擇 輸入文件夾下的 表輸入 并把它拖到右側(cè)的編輯區(qū)中瞧掺。
4耕餐、雙擊編輯區(qū)的“表輸入”圖標(biāo),編輯數(shù)據(jù)輸入源辟狈。
5肠缔、點擊面板左側(cè)的 核心對象 ,選擇 腳本文件夾下的 javaScript腳本 并把它拖到右側(cè)的編輯區(qū)中哼转,按住 shift 畫線連接 “表輸入”桩砰。
6、雙擊編輯區(qū)的“javascript腳本”释簿,編輯腳本信息。
因為我們需要將 “surname ” 和 “name” 合并成一個完整的姓名硼莽,所以庶溶,我們只需要在 “java script:”下的輸入框中錄入一下信息。
//聲明一個變量懂鸵,用戶輸出合并列生成的姓名
var allName = surname + name;
然后點擊 獲取變量 自動將我們定義的變量輸出到字段欄中偏螺,我們可以修改字段名稱。
7匆光、點擊面板左側(cè)的 核心對象 套像,選擇 輸出文件夾下的 插入/更新 并把它拖到右側(cè)的編輯區(qū)中,按住 shift 畫線連接 “javaScript腳本”终息。
8夺巩、雙擊編輯區(qū)的“插入/更新”圖標(biāo),編輯控件內(nèi)容周崭。
用來查詢的關(guān)鍵字柳譬,此處只選擇主鍵id,表示這里按照id查詢续镇,如果此id存在美澳,則更新數(shù)據(jù),若不存在則插入數(shù)據(jù)。
9制跟、到這里舅桩,我們最簡單的一個插入/更新數(shù)據(jù)的轉(zhuǎn)換已經(jīng)建立完成了,點擊“校驗這個轉(zhuǎn)換”雨膨,Kettle會校驗并給出簡單的報告擂涛。沒有任何問題。
10哥放、點擊“運(yùn)行這個轉(zhuǎn)換”歼指,選擇“本地執(zhí)行”,點擊“啟動”來執(zhí)行這個轉(zhuǎn)換甥雕。
11踩身、轉(zhuǎn)換成功后,我們可以在控制臺中看到如下信息社露。檢查本地數(shù)據(jù)庫挟阻,數(shù)據(jù)庫A的userA表中的數(shù)據(jù)已經(jīng)全部被插入更新到了數(shù)據(jù)庫B的userB表中。
上一篇:Kettle入門之五 Kettle應(yīng)用場景(增量插入和更新)
下一篇:Kettle入門之七 Kettle應(yīng)用場景(多表級聯(lián))