Kettle使用范例_第1頁
Kettle使用范例_第2頁
Kettle使用范例_第3頁
Kettle使用范例_第4頁
Kettle使用范例_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Kettle使用范例1. 錯(cuò)誤處理在轉(zhuǎn)換步驟的過程中,當(dāng)某個(gè)步驟發(fā)生錯(cuò)誤時(shí)可能要進(jìn)行額外的步驟處理。因此,在設(shè)置時(shí)就要求為步驟添加錯(cuò)誤處理。以下面的流程為例:Source TableTarget TableTarget Table'T.Succor XML outputSuccor XML outputError XML Output該流程為將源表的數(shù)據(jù)同步到目標(biāo)表中,在目標(biāo)表中人為的設(shè)置某個(gè)字段的長度小于源表,讓其能在處理過程中會(huì)報(bào)出異常。為了可視化處理結(jié)果,將同步的結(jié)果輸出到XML文件中。選中"Target Table”步驟,點(diǎn)擊鼠標(biāo)右鍵,然后選擇"Define

2、 error handling”菜單項(xiàng),T argatl將會(huì)彈出設(shè)置對話框。D&ta miovement. .Cliange number d£ copies to start.Copy to clipboardCTRL_CDsplic乞stepDtlttt- st«pDELKi de stepDetach, stepShow iripiit fi eldsShow 甲it put fi elds:Ali gji / Di striBute*Check selected step (e)iterate imappinig:thie target stepEar ti

3、t toiling.Clusterings,.-Define error handling.Previewlutput0081764New hopQpin mapping (.sub-trinstorniEdit stepEdi t step JeEcriptionTarget Table旦區(qū)Error handling 宜七電prtM電Target stepEnable the error handlingNr of errors fieldnsmeError dexcripti &ns f i«ldnajnError fi elds fieldjismeError cod

4、es; fildnaineMax nr errors allowedMax X errors allowedMixi nr of raws to> read beforeError XML OutputCancel在"Target step”中選擇后續(xù)處理步驟即可。在各個(gè)field name填上字段的名字,將會(huì)在結(jié)果集中多出相應(yīng)的字段,以便后續(xù)步驟能讀出相應(yīng)的錯(cuò)誤信息。例如界面上的“ErrorDesc字段,將用于保存錯(cuò)誤信息。以上的數(shù)據(jù)處理流程處理結(jié)束之后,“Success XML Output”步驟生成的XML文件內(nèi)容為所有同步成功的數(shù)據(jù);“ Error XML Output

5、 ”步驟生成的XML文件內(nèi)容為所有同步錯(cuò)誤的 數(shù)據(jù)。2. 字典翻譯2.1.單選字典翻譯單選字典翻譯要使用到"Stream lookup/流查詢”步驟,分別要從業(yè)務(wù)表和字典表中抽取出數(shù)據(jù)。該灌示流程講解如何翻譯單選字典 鬲1中使用到*Btneam lookup"步驟H-3Query AJ 炸T ransfojnAJLXXWL OutputQQuery AJLX Dictionary“Query AJXX ”步驟負(fù)責(zé)從業(yè)務(wù)表中抽取出數(shù)據(jù)?;貎碨tep 口硼色 Query 忙PU(CoTknaction SourceDBGet SQL select statement.S9LSE

6、LECT ajbh,ajlx,ajmc FROM basjajLine 1 Column 35Enable lary c o-nversi o-n !_ Replace vari ables in script? OInsertExecute“Query AJLX Dictionary ”步驟負(fù)責(zé)從字典表中抽取出字典數(shù)據(jù)。Transform AJLX ”步驟負(fù)責(zé)翻譯“ ajlx ”字段的字典值。X由于使用這種方式翻譯單選字段時(shí),要多查詢一個(gè)字典表,因此最好控制字典表的數(shù)據(jù) 量,以免影響性能。22多選字典翻譯由于"Stream lookup ”只能實(shí)現(xiàn)單值的數(shù)據(jù)查詢,無法實(shí)現(xiàn)像多選字典

7、這類多值的數(shù)據(jù) 查詢,因此"Stream lookup ”步驟無法實(shí)現(xiàn)多選字典字段的翻譯。多選字典的翻譯,只能通過采用調(diào)用存儲過程的方式實(shí)現(xiàn),這就要使用到“Call DBProcedure ”。冠滬示疣程講解必何翻譯勰中使用到口1 DB ProcedureQuery AJ>C<Add conslants 匚all DB ProcedureXML Output由于“ Call DB Procedure ”步驟在調(diào)用存儲過程或是函數(shù)時(shí),參數(shù)設(shè)置不能使用常量,只能調(diào)用數(shù)據(jù)流中的字段值。因此,在調(diào)用“Call DB Procedure”步驟之前,要使用“ Addcon sta n

8、ts”步驟來為數(shù)據(jù)流添加一個(gè)常量字段,做為字典種類。增加了常量字段之后,該字段就可以在"Call DB Procedure ”步驟中引用了。Set FieldsCancel3. 設(shè)置轉(zhuǎn)換全局參數(shù)點(diǎn)擊主菜單的 Transformation菜單項(xiàng)里的"Settings”的子菜單項(xiàng),調(diào)出transfrom設(shè)置界面?;貙鵗rtMfwfiAi <ml | Parajnetrs.、丄o底gi®g D七醴営 IHpgmdEnei覽占 Illi s;亡虐A盤niamag j Fsurti tionii'l HiMiitcxring:Par iwh«ttri

9、# Default V&lusDescriptionij逛聞一j盪諂234567891選擇"Parameters” Tab頁,在"Parameters”列表中設(shè)置轉(zhuǎn)換流程的全局參數(shù)。 在流程設(shè)計(jì)過程中,可以使用$PARAM_NAME代表對應(yīng)全局參數(shù)。4. 批量數(shù)據(jù)單條記錄分別轉(zhuǎn)換在實(shí)際應(yīng)用中,經(jīng)常會(huì)有這樣的一種轉(zhuǎn)換情況:首先要從某個(gè)數(shù)據(jù)源(表或者是格式化文件)中提取出批量數(shù)據(jù),然后再對批量數(shù)據(jù)中的每一條記錄分別執(zhí)行一個(gè)完整的數(shù)據(jù)轉(zhuǎn)換。這種數(shù)據(jù)處理流程,在設(shè)計(jì)時(shí)要通過Transformation和Job相結(jié)合來實(shí)現(xiàn),以數(shù)據(jù)傳輸抽取數(shù)據(jù)的過程為例:數(shù)據(jù)傳輸首先要從增量表

10、中檢索出有哪些更新的表,然后再每個(gè)表提取出增量數(shù)據(jù)的主鍵信息,最后到業(yè)務(wù)表中取抽取出業(yè)務(wù)數(shù)據(jù),打包成數(shù)據(jù)文件??梢圆榭?Kettle程序samplesjobsprocess all tables目錄下的例子。4.1.設(shè)計(jì)一個(gè)總體的 JobSTARTGet list of tablesE Ktract a table總體流程了分別為"Get list of tables ” Transformation 和"Extract a table”子 Job。 在"Extract a table ”子 Job 中,“ Execute for every in put row

11、 ” 的選項(xiàng)要選中,才能實(shí)現(xiàn) 當(dāng)條記錄分別執(zhí)行"Extract a table” Job流程。4.2.設(shè)計(jì)一個(gè)Transformation 取批量數(shù)據(jù)"Get list of tables ” Transformation負(fù)責(zé)從增量表中取得所有增量表的名字。T able inputSelect value?Copy tews to resultTransformation的最后一步,要使用"Copy rows to result ”步驟,以便總體 Job能讀取。4.3.設(shè)計(jì)一個(gè)子Job處理單條記錄"Extract a table”子Job負(fù)責(zé)針對每一個(gè)表

12、抽取出增量數(shù)據(jù)。Extract one tableSTART在該子 Job 中,分另 U設(shè)計(jì)了兩個(gè) Tran sformati on : “ Define extract table name variable ”禾口Extract on table ”。4.3.1.取單條記錄并設(shè)置變量Define extract table name variable ” Tra nsformatio n 主要是負(fù)責(zé)從總 Job 中取出批量數(shù)據(jù)的單條數(shù)據(jù)信息,并定義變量信息,以便子 Job中的其他Transformation能使用。Set Svlem InfoGet rows from resultSele

13、ct values Ddine Eulract Table vari-abJeGet rows from result ” step負(fù)責(zé)取得單條數(shù)據(jù)的信息。3 匕NtU£i; vlDlir £111 £"Ba®Step namefht生 from 廠爵瘞盟FittldsTyp«Length?reci siitabl nameStringOKCane al"Get Systemid Info ” step負(fù)責(zé)取出當(dāng)前時(shí)間。Select values” step負(fù)責(zé)將extracttime字段由日期類型轉(zhuǎn)為字符串。Define Extract Table variable ” step 負(fù)責(zé)設(shè)置變量?!?Variable scope type ”為變量的作用域,具體根據(jù)需求設(shè)置。4.3.2.執(zhí)行單條數(shù)據(jù)的轉(zhuǎn)換Oatabase ianXML OutputExtract。ne table” Transformation負(fù)責(zé)執(zhí)行抽取單個(gè)表的數(shù)據(jù)。Get table updated record

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論