版kettle使用規(guī)范修改版2_第1頁(yè)
版kettle使用規(guī)范修改版2_第2頁(yè)
版kettle使用規(guī)范修改版2_第3頁(yè)
版kettle使用規(guī)范修改版2_第4頁(yè)
版kettle使用規(guī)范修改版2_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Kettle使用規(guī)范1、Kettle觀點(diǎn)Kettle是一款外國(guó)開源的ETL工具,純java編寫,能夠在Window、Linux、Unix上運(yùn)轉(zhuǎn),綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)固。Kettle中文名稱叫水壺,該項(xiàng)目的主程序員MATT希望把各樣數(shù)據(jù)放到一個(gè)壺里,而后以一種指定的格式流出。Kettle這個(gè)ETL工具集,它同意你管理來(lái)自不一樣數(shù)據(jù)庫(kù)的數(shù)據(jù),經(jīng)過供給一個(gè)圖形化的用戶環(huán)境來(lái)描繪你想做什么,而不是你想怎么做。Kettle中有兩種腳本文件,transformation和job,transformation達(dá)成針對(duì)數(shù)據(jù)的基礎(chǔ)變換,job則達(dá)成整個(gè)工作流的控制。2、下載和部署下載kettle壓縮包,

2、因kettle為綠色軟件,解壓縮到隨意當(dāng)?shù)芈窂郊纯?、Kettle環(huán)境配置3.1安裝JDK(略)3.2測(cè)試JDK安裝成功(略)3.3kettle的java環(huán)境變量以win7為例:【開始】-【計(jì)算機(jī)】-【屬性】-【高級(jí)系統(tǒng)屬性】-【高級(jí)】-【環(huán)境變量】-【新建】,創(chuàng)立用戶變量。變量名輸入:PENTAHO_JAVA_HOME;變量值輸入方才jdk的安裝路徑。3.4運(yùn)轉(zhuǎn)KettleWindows下找到$KETTLE_HOME/spoon.dat,雙擊運(yùn)轉(zhuǎn)歡迎界面以下列圖所示:4、KETTLE組件介紹與使用4.1Kettle使用Kettle供給了資源庫(kù)的方式來(lái)整合全部的工作,即所成立的transfor

3、mation和job及其運(yùn)轉(zhuǎn)日志將被保留在數(shù)據(jù)庫(kù)中,不然將以文件的形式儲(chǔ)存在當(dāng)?shù)亍?)創(chuàng)立一個(gè)新的transformation,點(diǎn)擊保留到當(dāng)?shù)芈窂?,比如保留到件名為Trans,kettle默認(rèn)transformation文件保留后后綴名為ktr;D:/etltest下,保留文2)創(chuàng)立一個(gè)新的job,點(diǎn)擊保留到當(dāng)?shù)芈窂?,比如保留到kettle默認(rèn)job文件保留后后綴名為kjb;D:/etltest下,保留文件名為Job,4.2組件樹介紹的主對(duì)象樹和核心對(duì)象分別以下列圖:Transformation中的節(jié)點(diǎn)介紹以下:MainTree:菜單列出的是一個(gè)transformation中基本的屬性,能夠經(jīng)

4、過各個(gè)節(jié)點(diǎn)來(lái)查察。DB連結(jié):顯示目前transformation中的數(shù)據(jù)庫(kù)連結(jié),每一個(gè)transformation的數(shù)據(jù)庫(kù)連結(jié)都需要獨(dú)自配置。Steps:一個(gè)transformation中應(yīng)用到的環(huán)節(jié)列表Hops:一個(gè)transformation中應(yīng)用到的節(jié)點(diǎn)連結(jié)列表核心對(duì)象菜單列出的是transformation中能夠調(diào)用的環(huán)節(jié)列表,能夠經(jīng)過鼠標(biāo)拖動(dòng)的方式對(duì)環(huán)節(jié)進(jìn)行增添:Input:輸入環(huán)節(jié)Output:輸出環(huán)節(jié)Lookup:查問環(huán)節(jié)Transform:轉(zhuǎn)變環(huán)節(jié)Joins:連結(jié)環(huán)節(jié)Scripting:腳本環(huán)節(jié)Job的主對(duì)象樹和核心對(duì)象分別以下列圖:MainTree菜單列出的是一個(gè)Job中基本

5、的屬性,能夠經(jīng)過各個(gè)節(jié)點(diǎn)來(lái)查察。DB連結(jié):顯示目前Job中的數(shù)據(jù)庫(kù)連結(jié),每一個(gè)Jobentries/作業(yè)項(xiàng)目:一個(gè)Job中引用的環(huán)節(jié)列表Job的數(shù)據(jù)庫(kù)連結(jié)都需要獨(dú)自配置。核心對(duì)象菜單列出的是Job中能夠調(diào)用的環(huán)節(jié)列表,能夠經(jīng)過鼠標(biāo)拖動(dòng)的方式對(duì)環(huán)節(jié)進(jìn)行添加。每一個(gè)環(huán)節(jié)能夠經(jīng)過鼠標(biāo)拖動(dòng)來(lái)將環(huán)節(jié)增添到主窗口中。并可經(jīng)過shift+鼠標(biāo)拖動(dòng),實(shí)現(xiàn)環(huán)節(jié)之間的連結(jié)。4.3使用舉例1成立Transformation選中列表中的的“表輸入”、“表輸出”、“插入/更新”,拖拽到右邊工作區(qū)。鼠標(biāo)選中節(jié)點(diǎn)鍵盤按shift鍵,拖拽即可連線。下列圖是一個(gè)變換,有兩個(gè)動(dòng)作,一是直接從數(shù)據(jù)源表同步數(shù)據(jù)到目標(biāo)表,一是檢查源表

6、的插入和更新,同步到目標(biāo)表。黑色線為奏效,灰色線為無(wú)效,節(jié)點(diǎn)和連結(jié)可雙擊進(jìn)行編寫。可預(yù)覽數(shù)據(jù)能否正確。雙擊編寫表輸出動(dòng)作。操作的數(shù)據(jù)庫(kù)名要獲得的字段設(shè)置以下所示:點(diǎn)擊“Enterfieldmapping/輸入字段映照”進(jìn)行字段選擇。選摘要用的字段后點(diǎn)確立,注意字段的拘束條件。編寫好后點(diǎn)擊上邊的履行即可。左邊參數(shù)暫不說(shuō)明,履行達(dá)成后能夠觀看下方的日記。雙擊編寫“插入/更新”動(dòng)作。而后點(diǎn)擊運(yùn)轉(zhuǎn)。履行前,在源庫(kù)里加條新紀(jì)錄。磁盤地點(diǎn)C:etl2.ktr。確立作業(yè)履行正常后能夠保留作業(yè),如保留路徑到當(dāng)?shù)爻闪ob成立JOB的前提是有能夠完好履行的作業(yè),上邊步驟定制的作業(yè)進(jìn)行保留。從左邊列表拖拽“STA

7、RT”,“Success”,“變換”,“發(fā)送郵件”到工作區(qū)并連結(jié),以下列圖。而后雙擊“START”動(dòng)作進(jìn)行編寫。而后雙擊編寫“Transformation”活動(dòng)。變換文件名選擇上一步編寫好的.ktr文件雙擊發(fā)送郵件,參數(shù)設(shè)置以下:編寫達(dá)成后直接點(diǎn)擊運(yùn)轉(zhuǎn)即可。運(yùn)轉(zhuǎn)后查察日記。當(dāng)任務(wù)履行此后能夠查察相對(duì)應(yīng)的日記,也可自行配置日記。4.4使用舉例2本例是達(dá)成讀取目錄下的.log文件,找出此中包括錯(cuò)誤代碼的行,并統(tǒng)計(jì)個(gè)數(shù)新建Transformation本例所用到的步驟和組件以下列圖所示:連結(jié)圖以下所示:a)獲得文件名設(shè)置以下:此中已選擇的文件名稱的變量都需要手寫輸入,能夠點(diǎn)擊顯示文件名和預(yù)覽記錄檢查能

8、否配置正確。b)文本文件輸入設(shè)置以下:文本文件輸當(dāng)選項(xiàng)中選擇從上一步驟獲得文件名,此中在輸入里的字段被當(dāng)成文件名一欄輸入uri,步驟讀取的文件名來(lái)自填寫獲得文件名2內(nèi)容選項(xiàng)卡的設(shè)置以下:文件種類選擇CSV,分開符自己定義,格式為mixed,編碼方式選擇UTF-8字段選項(xiàng)可設(shè)置以下:需要手寫輸入str名稱,設(shè)置種類為Stringc)獲得字符串設(shè)置以下:d)測(cè)試腳本設(shè)置以下此中能夠點(diǎn)擊獲得變量和測(cè)試腳原來(lái)測(cè)試腳本的正確性點(diǎn)擊測(cè)試腳本界面以下:腳本代碼由JavaScript編寫e)聚合記錄聚合記錄就是將上一步的結(jié)果進(jìn)行聚合,這里的名稱字段是點(diǎn)擊獲得字段獲得的,己輸入的,newname一列是擬訂新名字

9、,能夠自己輸入填寫,而不是自文本文件輸出文本文件的輸出設(shè)置以下,此中字段屬性的設(shè)置名稱字段是點(diǎn)擊獲得字段自動(dòng)獲得的,不是輸入的,設(shè)置以下g)運(yùn)轉(zhuǎn)日記顯示以下:成立JobJob的成立于4.3中方法同樣,用到的組件以下所示變換組件設(shè)置以下:將上一步保留的*.ktr增添到變換名文件路徑中點(diǎn)擊運(yùn)轉(zhuǎn)按鈕:生成日記以下所示:5、華科校醫(yī)院事例對(duì)HIS庫(kù)數(shù)據(jù)做全量和增量抽取的簡(jiǎn)單例子。5.1全量抽取的transformation表輸入的命名是:源庫(kù)名_表名,表輸出的命名是:目標(biāo)庫(kù)_表名,比如以上例子,his_dbo.VI_TB_HIS_JZ_Charge代表著源庫(kù)為his庫(kù),原表為dbo.VI_TB_HIS

10、_JZ_Charge;ggpt_tb_his_jz_charge代表目標(biāo)庫(kù)為ggpt庫(kù),目標(biāo)表名為tb_his_jz_charge.整個(gè)變換的命名為ggpt_all_tb_his_jz_charge,表示對(duì)目標(biāo)庫(kù)ggpt做全量的抽取,針對(duì)的目標(biāo)表為tb_his_jz_charge.錯(cuò)誤辦理表示,若表輸出中出現(xiàn)錯(cuò)誤數(shù)據(jù)沒法插入,整個(gè)變換會(huì)持續(xù)進(jìn)行,錯(cuò)誤行的信息會(huì)寫入錯(cuò)誤日記表中。空操作表示如數(shù)據(jù)無(wú)誤則不做辦理,分支便于理解。表輸入中即簡(jiǎn)單的查問語(yǔ)句,對(duì)日期字段做了辦理。5.2全量抽取job新建一個(gè)job,job中履行變換,job的命名為機(jī)構(gòu)名_增量/全量_目標(biāo)庫(kù)名,比如以上job名稱即為HUST

11、_ALL_GGPT,代表著華科項(xiàng)目對(duì)GGPT庫(kù)的全量抽取的job。5.3增量抽取transformation和全量抽取tb_his_jz_charge腳本近似,轉(zhuǎn)變命名為表做增量抽取的變換。ggpt_add_tb_his_jz_charge,表示對(duì)ggpt庫(kù)的表輸入中加了時(shí)間條件的限制,只抽當(dāng)日的數(shù)據(jù)。也可改成抽前一天數(shù)據(jù),把convert(varchar.getdate(),112)改為convert(varchar.getdate()-1,112)即可,依據(jù)詳細(xì)抽取時(shí)間做調(diào)整。5.4增量抽取的job和全量抽取的job近似,命名為HUST_ADD_GGPT表示華科項(xiàng)目對(duì)目標(biāo)庫(kù)GGPT做增量抽

12、取.5.5JOB和transformation日記的設(shè)置鑒于項(xiàng)目全部的transformation和job是存在資源庫(kù)中,即以表的形式儲(chǔ)存,job和transformation的日記也寫入了數(shù)據(jù)庫(kù)表中。選中某一job或許transformation,點(diǎn)擊右鍵,即可配置日記信息,以下列圖所示,選擇數(shù)據(jù)庫(kù)連結(jié)和表名,勾選日記表對(duì)應(yīng)字段,即達(dá)成配置。日記配置流程:履行完成后會(huì)自動(dòng)在數(shù)據(jù)庫(kù)里新建該表;5.6錯(cuò)誤辦理說(shuō)明關(guān)于一個(gè)變換中抽拿出現(xiàn)錯(cuò)誤數(shù)據(jù),有想要腳本持續(xù)運(yùn)轉(zhuǎn),則需要對(duì)腳本增添錯(cuò)誤辦理,以下列圖:先在數(shù)據(jù)庫(kù)中建相應(yīng)的錯(cuò)誤表例:createtableODR_ERR(idNUMBERnotnull

13、,errornumVARCHAR2(4000),errordescVARCHAR2(4000),errornameVARCHAR2(4000),errorcodeVARCHAR2(4000),tablenameVARCHAR2(100);createsequenceSEQ_ODR_ERRminvalue1maxvalue9999999999999999999999999999startwith185180incrementby1nocache;createorreplacetriggerODR_ERR_idbeforeinsertonODR_ERR-ODR_ERR是表名foreachrowde

14、clarenextidnumber;beginIF:new.idISNULLor:new.id=0THEN-id是列名selectSEQ_ODR_ERR.nextval-SEQ_ODR_ERR正是方才創(chuàng)立的intonextidfromsys.dual;:new.id:=nextid;endif;endODR_ERR_id;在數(shù)據(jù)庫(kù)中會(huì)預(yù)先成立好一張記錄錯(cuò)誤信息的表,命名為庫(kù)名_ERR,代表針對(duì)這一個(gè)庫(kù)的數(shù)據(jù)抽取的全部錯(cuò)誤數(shù)據(jù)信息將被記錄在此表中,表中五個(gè)字段ERRORNUM錯(cuò)誤數(shù),ERRORDESC錯(cuò)誤描繪,ERRORNAME錯(cuò)誤列,ERRORCODE錯(cuò)誤編碼,TABLENAME發(fā)生錯(cuò)誤的表名

15、,來(lái)方便查察發(fā)生錯(cuò)誤詳細(xì)是哪一張表(關(guān)于每一個(gè)轉(zhuǎn)變?cè)鎏硪粋€(gè)常量,常量值為表名,做錯(cuò)誤辦理時(shí)映照到tablename字段即可)。在腳本中則對(duì)表輸出做分支,有錯(cuò)誤的數(shù)據(jù)則流入ERR表中做記錄,沒有錯(cuò)誤的直接插入目標(biāo)表中,空操作代表不作任何辦理,方便分支流程的查察。6、腳本命名規(guī)范總結(jié)為了方便管理腳本,對(duì)腳本使用一套規(guī)范的命名必不行少,合理的命名對(duì)編寫腳本,改正腳本的效率有顯然的提升。6.1transformation命名關(guān)于transformation命名一方面是整體命名,一方面是對(duì)tranformation中每個(gè)控件的命名。(1)整體命名:目標(biāo)庫(kù)名_增量/全量(add/all)_目標(biāo)表名代表針對(duì)某一個(gè)庫(kù)中某一張表做全量或許增量抽取數(shù)據(jù)2)控件命名:a.表輸入源庫(kù)名_源表名代表從某一個(gè)庫(kù)中的某一張表開始抽取數(shù)據(jù)b.表輸出/插入更新目標(biāo)庫(kù)名_目標(biāo)表名代表數(shù)據(jù)抽到某一個(gè)庫(kù)中的某一張表c.其余控件簡(jiǎn)單說(shuō)明控件做的操作,比如履行sql控件

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論