版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 HYPERLINK :/www blogs /limengqiang/archive/2021/01/16/KettleApply2.html ETL利器Kettle實(shí)戰(zhàn)應(yīng)用解析系列二 【應(yīng)用場(chǎng)景和實(shí)戰(zhàn)DEMO下載】本系列文章主要索引如下: HYPERLINK :/www blogs /limengqiang/archive/2021/01/16/KettleApply1.html 一、ETL利器Kettle實(shí)戰(zhàn)應(yīng)用解析系列一【Kettle使用介紹】 HYPERLINK :/www blogs /limengqiang/archive/2021/01/16/KettleApply2.html
2、 二、ETL利器Kettle實(shí)戰(zhàn)應(yīng)用解析系列二 【應(yīng)用場(chǎng)景和實(shí)戰(zhàn)DEMO下載】 HYPERLINK :/www blogs /limengqiang/archive/2021/01/17/KettleApply3.html 三、ETL利器Kettle實(shí)戰(zhàn)應(yīng)用解析系列三 【ETL后臺(tái)進(jìn)程執(zhí)行配置方式】本文主要閱讀目錄如下: HYPERLINK :/www blogs /limengqiang/archive/2021/01/16/KettleApply2.html l yycj 1、應(yīng)用場(chǎng)景 HYPERLINK :/www blogs /limengqiang/archive/2021/01/1
3、6/KettleApply2.html l sz 2、DEMO實(shí)戰(zhàn) HYPERLINK :/www blogs /limengqiang/archive/2021/01/16/KettleApply2.html l xiazai 3、DEMO下載1、應(yīng)用場(chǎng)景這里簡(jiǎn)單概括一下幾種具體的應(yīng)用場(chǎng)景,按網(wǎng)絡(luò)環(huán)境劃分主要包括:表視圖模式:這種情況我們經(jīng)常遇到,就是在同一網(wǎng)絡(luò)環(huán)境下,我們對(duì)各種數(shù)據(jù)源的表數(shù)據(jù)進(jìn)行抽取、過(guò)濾、清洗等,例如歷史數(shù)據(jù)同步、異構(gòu)系統(tǒng)數(shù)據(jù)交互、數(shù)據(jù)對(duì)稱(chēng)發(fā)布或備份等都?xì)w屬于這個(gè)模式;傳統(tǒng)的實(shí)現(xiàn)方式一般都要進(jìn)行研發(fā)一小局部例如兩個(gè)相同表結(jié)構(gòu)的表之間的數(shù)據(jù)同步,如果sqlserver數(shù)據(jù)庫(kù)
4、可以通過(guò)發(fā)布/訂閱實(shí)現(xiàn),涉及到一些復(fù)雜的一些業(yè)務(wù)邏輯如果我們研發(fā)出來(lái)還容易出各種bug;前置機(jī)模式:這是一種典型的數(shù)據(jù)交換應(yīng)用場(chǎng)景,數(shù)據(jù)交換的雙方A和B網(wǎng)絡(luò)不通,但是A和B都可以和前置機(jī)C連接,一般的情況是雙方約定好前置機(jī)的數(shù)據(jù)結(jié)構(gòu),這個(gè)結(jié)構(gòu)跟A和B的數(shù)據(jù)結(jié)構(gòu)根本上是不一致的,這樣我們就需要把應(yīng)用上的數(shù)據(jù)按照數(shù)據(jù)標(biāo)準(zhǔn)推送到前置機(jī)上,這個(gè)研發(fā)工作量還是比擬大的;文件模式: 數(shù)據(jù)交互的雙方A和B是完全的物理隔離,這樣就只能通過(guò)以文件的方式來(lái)進(jìn)行數(shù)據(jù)交互了,例如XML格式,在應(yīng)用A中我們開(kāi)發(fā)一個(gè)接口用來(lái)生成標(biāo)準(zhǔn)格式的XML,然后用優(yōu)盤(pán)或者別的介質(zhì)在某一時(shí)間把XML數(shù)據(jù)拷貝之后,然后接入到應(yīng)用B上,應(yīng)
5、用B上在按照標(biāo)準(zhǔn)接口解析相應(yīng)的文件把數(shù)據(jù)接收過(guò)來(lái);綜上3種模式如果我們都用傳統(tǒng)的模式無(wú)疑工作量是巨大的,那么怎么做才能更高效更節(jié)省時(shí)間又不容易出錯(cuò)呢?答案是我們可以用一下Kettle-_-!2、DEMO實(shí)戰(zhàn)2、1 實(shí)例1:數(shù)據(jù)庫(kù)TestA中的UserA表到數(shù)據(jù)庫(kù)TestB的UserB表1為方便演示,我這邊把Sql腳本貼出來(lái),大家直接復(fù)制在sqlserver中運(yùn)行即可,sql腳本如下:use masterIF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=NTestA)BEGIN DROP DATABASE TestA -如果數(shù)據(jù)庫(kù)存在先刪掉數(shù)據(jù)庫(kù)EN
6、DGOCREATE DATABASE TestAONPRIMARY -創(chuàng)立主數(shù)據(jù)庫(kù)文件( NAME=TestA, FILENAME=E:ETLDBTestA.dbf, SIZE=5MB, MaxSize=20MB, FileGrowth=1MB)gouse TestA- 建立一個(gè)測(cè)試的用戶表create table usersA( id int not null, userid varchar(50) not null, username varchar(200) null)go- 插入3條記錄insert into usersA values(1,lisi,李四);insert into u
7、sersA values(2,zhangsan,張三);insert into usersA values(3,lisi,李四);gouse masterIF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=NTestA)BEGIN DROP DATABASE TestA -如果數(shù)據(jù)庫(kù)存在先刪掉數(shù)據(jù)庫(kù)ENDGOCREATE DATABASE TestBONPRIMARY -創(chuàng)立主數(shù)據(jù)庫(kù)文件( NAME=TestB, FILENAME=E:ETLDBTestB.dbf, SIZE=5MB, MaxSize=20MB, FileGrowth=1MB)gou
8、se TestB- 建立一個(gè)測(cè)試的用戶表create table usersB( id int not null, userid varchar(50) not null, username varchar(200) null)go2Kettle實(shí)現(xiàn)方式功能簡(jiǎn)述:數(shù)據(jù)庫(kù)TestA中的UserA表到數(shù)據(jù)庫(kù)TestB的UserB表;實(shí)現(xiàn)流程:建立一個(gè)轉(zhuǎn)換和一個(gè)作業(yè)Job;A:建立一個(gè)轉(zhuǎn)換:翻開(kāi)Kettle.exe,選擇沒(méi)有資源庫(kù),進(jìn)入主界面,新建一個(gè)轉(zhuǎn)換,轉(zhuǎn)換的后綴名為ktr,轉(zhuǎn)換建立的步驟如下:步驟1:創(chuàng)立DB連接,選擇新建DB連接,如下列圖,我們輸入相應(yīng)的Sqlserver配置信息之后點(diǎn)擊Te
9、st按鈕測(cè)試是否配置正確!我們需要建立兩個(gè)DB連接,分別為T(mén)estA和TestB;步驟2:建立步驟和步驟關(guān)系,點(diǎn)擊核心對(duì)象,我們從步驟樹(shù)中選擇【表輸入】,如下列圖,這樣拖拽一個(gè)表輸入之后,我們雙擊表輸入之后,我們自己可以隨意寫(xiě)一個(gè)sql語(yǔ)句,這個(gè)語(yǔ)句表示可以在這個(gè)庫(kù)中隨意組合,只要sql語(yǔ)句沒(méi)有錯(cuò)誤即可,我這里只是最簡(jiǎn)單的把TestA中的所有數(shù)據(jù)查出來(lái),語(yǔ)句為select * from usersA。接下來(lái)我們創(chuàng)立另外一個(gè)步驟【插入/ 更新】,然后在【表輸入】上同時(shí)按住shift鍵和鼠標(biāo)左鍵滑向【插入/ 更新】,這樣建立兩個(gè)步驟之間的連接,【插入/ 更新】執(zhí)行的邏輯是如果UserA表中的記錄在
10、UserB中不存在那么就插入,如果存在就更新,如下列圖,在插入更新中我們可以做一些關(guān)鍵條件和字段映射,這里我們是最簡(jiǎn)單的!點(diǎn)擊保存,把我們建立的轉(zhuǎn)換保存一下。建立好轉(zhuǎn)換之后,我們可以直接運(yùn)行這個(gè)轉(zhuǎn)換,檢查一下是否有錯(cuò),如圖,有錯(cuò)誤都會(huì)在下面的控制臺(tái)上輸出。B:如果我們需要讓這個(gè)轉(zhuǎn)換定時(shí)執(zhí)行怎么辦呢,那么我們需要建立一個(gè)作業(yè)job,見(jiàn)下列圖,在簡(jiǎn)單表同步這個(gè)轉(zhuǎn)換中,我們把在A步驟中建立的ktl配置上,注意路徑的正確性;這樣我們?cè)凇維tart】步驟上面雙擊,如圖:這樣這個(gè)作業(yè)就制定好了,點(diǎn)擊保存之后,我們就可以在圖形化界面上點(diǎn)擊開(kāi)始執(zhí)行了!2、2 實(shí)例2:全面進(jìn)階的一個(gè)稍微復(fù)雜的例子根據(jù)客戶,帳戶
11、,交易表中的數(shù)據(jù),生成對(duì)應(yīng)的數(shù)據(jù)文件,將數(shù)據(jù)文件可以導(dǎo)入到對(duì)應(yīng)表中,并且可以用job來(lái)調(diào)用整個(gè)流程。目標(biāo):1),提交對(duì)應(yīng)的Kettle文件2),Kettle流程可以正確執(zhí)行,不報(bào)錯(cuò)3),對(duì)應(yīng)的數(shù)據(jù)文件生成并格式無(wú)誤,對(duì)應(yīng)表中有數(shù)據(jù)并格式無(wú)誤說(shuō)明:源表:數(shù)據(jù)庫(kù)etltest中存在3張表:目標(biāo)表:etltest中一張表Kettle具體解決方式,步驟比擬繁瑣,大家可以直接到下載中下載Demo數(shù)據(jù)庫(kù)文件和ktr、kjb來(lái)實(shí)戰(zhàn)測(cè)試,這樣是最好的,下面的操作僅供參考,轉(zhuǎn)換預(yù)覽圖如下:操作步驟:在EtltestTrans頁(yè)面下,點(diǎn)擊左側(cè)的【Core Objects】,點(diǎn)擊【Input】,選中【表輸入】,拖動(dòng)
12、到主窗口釋放鼠標(biāo)。雙擊【表輸入】圖標(biāo)數(shù)據(jù)庫(kù)連接選擇剛剛創(chuàng)立好的etltest數(shù)據(jù)庫(kù)連接,在主窗口寫(xiě)入對(duì)應(yīng)的查詢語(yǔ)句Select * from trade ,如下列圖:點(diǎn)擊確定完成。點(diǎn)擊左側(cè)的【Lookup】,選中【數(shù)據(jù)庫(kù)查詢】,拖動(dòng)到主窗口釋放鼠標(biāo)。按住shift鍵,用鼠標(biāo)點(diǎn)中剛剛創(chuàng)立的【表輸入】,拖動(dòng)到【數(shù)據(jù)庫(kù)查詢】上,那么建立了兩個(gè)環(huán)節(jié)之間的連接,如圖:雙擊【數(shù)據(jù)庫(kù)查詢】步驟名稱(chēng)寫(xiě)入account 表查詢,數(shù)據(jù)庫(kù)連接選擇剛剛創(chuàng)立好的etltest 數(shù)據(jù)庫(kù)連接,查詢的表寫(xiě)入account,查詢所需的關(guān)鍵字中,表字段寫(xiě)入acctno,比擬操作符寫(xiě)入“=,字段1寫(xiě)入acctno。在查詢表返回的值
13、里面寫(xiě)入custno,確定完成,如下列圖:同上,再創(chuàng)立一個(gè)數(shù)據(jù)庫(kù)查詢,命名為cust表查詢,查詢的表寫(xiě)入cust,查詢所需的關(guān)鍵字寫(xiě)入custno=custno,查詢表返回的值寫(xiě)入custname,custid,custtype,如下列圖:點(diǎn)擊左側(cè)的【Transform】,選中【過(guò)濾記錄】,拖動(dòng)到主窗口釋放鼠標(biāo)。點(diǎn)擊左側(cè)的【Scripting】,選中兩個(gè)【Modified Java Script Value】,拖動(dòng)到主窗口釋放鼠標(biāo)。分別雙擊翻開(kāi),重命名為“對(duì)公類(lèi)型修改和“對(duì)私類(lèi)型修改。同時(shí),分別創(chuàng)立【過(guò)濾記錄】和【對(duì)公類(lèi)型修改】,【對(duì)私類(lèi)型修改】的連接。雙擊【規(guī)律記錄】翻開(kāi)。第一個(gè)里面選擇cu
14、sttype,點(diǎn)擊,在Enter value 里面寫(xiě)入1,確定,如圖:在發(fā)送true數(shù)據(jù)給步驟里,選擇【對(duì)私類(lèi)型修改】,在發(fā)送false數(shù)據(jù)給步驟里,選擇【對(duì)公類(lèi)型修改】,確定保存,如圖:雙擊【對(duì)公類(lèi)型修改】,在里面寫(xiě)入javascript 腳本語(yǔ)句var custtype_cn=對(duì)公客戶交易在字段中寫(xiě)入custtype_cn,類(lèi)型選為string。確定。同理,在【對(duì)私類(lèi)型修改】中,在里面寫(xiě)入javascript腳本語(yǔ)句var custtype_cn=對(duì)私客戶交易在字段中寫(xiě)入custtype_cn,類(lèi)型選為string。確定。點(diǎn)擊左側(cè)的【Transform】,選中兩個(gè)【增加常量】,拖動(dòng)到主窗口
15、釋放鼠標(biāo)。分別雙擊翻開(kāi),重命名為“增加對(duì)公常量和“增加對(duì)私常量。分別建立【對(duì)公類(lèi)型修改】和【對(duì)私類(lèi)型修改】與【增加對(duì)公常量】和【增加對(duì)私常量】的連接,如圖:雙擊【增加對(duì)公常量】,名稱(chēng)寫(xiě)入value,類(lèi)型選擇string,值寫(xiě)入“這是一筆對(duì)公客戶發(fā)生的交易,確定保存。同理,雙擊【增加對(duì)私常量】,名稱(chēng)寫(xiě)入value,類(lèi)型選擇string,值寫(xiě)入“這是一筆對(duì)私客戶發(fā)生的交易,確定保存。點(diǎn)擊左側(cè)的【Output】,選中【文本文件輸出】,拖動(dòng)到主窗口釋放鼠標(biāo)。建立【增加對(duì)公常量】,【增加對(duì)私常量】和【文本文件輸出】的連接,如圖:點(diǎn)擊內(nèi)容標(biāo)簽,根據(jù)情況進(jìn)行修改,例如點(diǎn)擊字段標(biāo)簽名稱(chēng)依次寫(xiě)入tradeid,
16、acctno,amt,custno,custname,custid,custtype_cn,value,類(lèi)型根據(jù)各個(gè)字段實(shí)際類(lèi)型進(jìn)行選擇確定保存點(diǎn)擊保存創(chuàng)立好的transformation。點(diǎn)擊運(yùn)行這個(gè)轉(zhuǎn)換。點(diǎn)擊launch,開(kāi)始運(yùn)行當(dāng)所有狀態(tài)都變已完成時(shí),那么轉(zhuǎn)換完成,如圖:古今名言敏而好學(xué),不恥下問(wèn)孔子業(yè)精于勤,荒于嬉;行成于思,毀于隨韓愈興于?詩(shī)?,立于禮,成于樂(lè)孔子己所不欲,勿施于人孔子讀書(shū)破萬(wàn)卷,下筆如有神杜甫讀書(shū)有三到,謂心到,眼到,口到朱熹立身以立學(xué)為先,立學(xué)以讀書(shū)為本歐陽(yáng)修讀萬(wàn)卷書(shū),行萬(wàn)里路劉彝黑發(fā)不知勤學(xué)早,白首方悔讀書(shū)遲顏真卿書(shū)卷多情似故人,晨昏憂樂(lè)每相親于謙書(shū)猶藥也,善讀之可以醫(yī)愚劉向莫等閑,白了少年頭,空悲切岳
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《修訂人力資源管理》課件
- 2024-2025學(xué)年年八年級(jí)數(shù)學(xué)人教版下冊(cè)專(zhuān)題整合復(fù)習(xí)卷11.2.2 一次函數(shù)(1)(含答案)-
- 《保險(xiǎn)運(yùn)行環(huán)節(jié)》課件
- 貨車(chē)自燃事故報(bào)告范文
- 順豐整改報(bào)告范文
- 酒店調(diào)研報(bào)告范文
- 工作情況整改報(bào)告范文
- 2025年鷹潭貨運(yùn)從業(yè)資格證考試
- 2025年吉林貨運(yùn)從業(yè)資格證試題庫(kù)及答案解析
- 《操作系統(tǒng)OS》課件
- 尿動(dòng)力學(xué)檢查操作指南2023版
- GB/T 27806-2011環(huán)氧瀝青防腐涂料
- GB/T 14124-2009機(jī)械振動(dòng)與沖擊建筑物的振動(dòng)振動(dòng)測(cè)量及其對(duì)建筑物影響的評(píng)價(jià)指南
- GB/T 11170-2008不銹鋼多元素含量的測(cè)定火花放電原子發(fā)射光譜法(常規(guī)法)
- 最新《工會(huì)基礎(chǔ)知識(shí)》試題庫(kù)及答案1000題【完美打印版】
- 2023年現(xiàn)行建筑施工規(guī)范目錄
- 心態(tài)管理與銷(xiāo)售技巧
- 工程變更聯(lián)系單【范本模板】
- 《網(wǎng)絡(luò)傳播學(xué)概論》(第四版)-課件
- hsk教程5上練習(xí)冊(cè)
- 五年級(jí)《歐洲民間故事》知識(shí)考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論