版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、版本歷史說(shuō)明版本作者日期備注1.0彭偉峰2017.04.111.Kettle介紹11什么是KettleKettle是純Java編寫(xiě)的、免費(fèi)開(kāi)源的ETL工具,主要用于抽取(Extraction)、轉(zhuǎn)換(Transformation)、和裝載(Loading)數(shù)據(jù)。Kettle中文名稱叫水壺,該項(xiàng)目的主程序員MATT希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。在這種思想的設(shè)計(jì)下,Kettle廣泛用于不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)抽取,例如Mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)傳到Oracle,Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)傳到Greenplum數(shù)據(jù)庫(kù)。1.2.Kettle的安裝Kettle工具是不需要安裝的,直接網(wǎng)上下
2、載解壓就可以運(yùn)行了。不過(guò)它依賴于Java,需要本地有JDK環(huán)境,如果是安裝4.2或5.4版本,JDK需要1.5以上的版本,推薦1.6或1.7的JDK。運(yùn)行Kettle直接雙擊里面的批處理文件spoon.bat就行了,如圖1.1所示:CENSEtt全llb.zote&tllLKtirDataIntegrfftiortaposncr.shREADME-CriiX.brticnpon.bdrR.EADME_M.txtImpon.shwi扁rmplm5.sliIIInbswtkltchen.siiset-pe*KdhSpOOfl.COmrnandSpOORpIcarteh%READMENFOBRJGh
3、iT.twtlaiwichersimpfe-jndCarte-.bAtPenWioDstakit&girAtlcn_O&t_LiCCfl&SLil.SpoorConEncr.batREADMEL1NUX.MKkchsnbijset-jwntaho-flrw-batPdnMSpoonDebug.bat:圖1.12.Kettle腳本開(kāi)發(fā)2.1.建立資源庫(kù)(repository倉(cāng)庫(kù))Repository倉(cāng)庫(kù)是用來(lái)存儲(chǔ)所有kettle文件的文件系統(tǒng),由于數(shù)據(jù)交換平臺(tái)服務(wù)器管理kettle文件也是用Repository倉(cāng)庫(kù),因此我們這邊本地的kettle開(kāi)發(fā)環(huán)境也是要用到該資源庫(kù)。建立資源庫(kù)的方式是工具
4、-資源庫(kù)-連接資源庫(kù),這時(shí)候彈出一個(gè)窗口,我們點(diǎn)擊右上角的+號(hào),跟著點(diǎn)擊下面的kettle選項(xiàng),按確定,如圖2.1所示:圖2.1跟著在右上角選擇一個(gè)目錄,建議在kettle路徑下新建repository文件夾,再選擇這個(gè)文件夾作為根目錄,名稱和描述可以任意寫(xiě),如圖2.2所示:霸立欄建源庫(kù)說(shuō)詈根目錄-ilesXpdi-oe-S.l.0.1-130data-integrationrepcsrtcry|瀏覽回|只讀資源庫(kù)孑Hidehiddenfoldersandfiles?圖2.2建完后會(huì)kettle工具會(huì)自動(dòng)連接到repository資源庫(kù),每次打開(kāi)kettle也會(huì)彈出一個(gè)窗口讓你先連接到資源庫(kù)。
5、在連接到資源庫(kù)的情況下打開(kāi)文件就是資源庫(kù)所在目錄了,如圖2.3所示。注意你在資源庫(kù)建的目錄結(jié)構(gòu)要跟數(shù)據(jù)交換平臺(tái)的目錄結(jié)構(gòu)一致,這樣寫(xiě)好kettle腳本,保存后放的路徑能跟交換平臺(tái)的目錄結(jié)構(gòu)一致了。對(duì)MQ%1=畧稱英型帙用吿境生變比的曰朗茵述V口sjcs口數(shù)富它空TQttffl口業(yè)藥St丿口審在荒HiDE_MHPV_T.S1_DWJFDJXX匸于軸KJe_SJCSJV_TESTTBAINSFQh-JOR2Q17/Q4/121,2017/04/121莫豈造桎IS課.主旳壽圖2.32.2.在目標(biāo)數(shù)據(jù)庫(kù)里新建表在做數(shù)據(jù)遷移的時(shí)候我們需要先在目標(biāo)數(shù)據(jù)庫(kù)建立與源數(shù)據(jù)庫(kù)類似的表結(jié)構(gòu),才能在這兩張表之間做數(shù)據(jù)
6、遷移,以oracle數(shù)據(jù)庫(kù)到gp數(shù)據(jù)庫(kù),T_SF_DWJFDJXX_TEST表做數(shù)據(jù)遷移為例,我們先建類似的表結(jié)構(gòu),首先先把表結(jié)構(gòu)的代碼拷出來(lái):createtableT_SF_DWJFDJXX_TEST(NSRNBMNUMBER(10)notnull,DWSBHVARCHAR2(18)notnull,JFDWNBMNUMBER(10)notnull,HYFL_DMCHAR(1)notnull,JFDWLX_DMCHAR(3)notnull,SBJC_DMCHAR(2)notnull,SBGLJG_DMVARCHAR2(11)notnull,SWGLJG_DMVARCHAR2(11)notnul
7、l,SBDJ_ZTCHAR(2)notnull,DJSLRY_DMVARCHAR2(11),DJSL_RQDATE,LRRY_DMVARCHAR2(11),XGRY_DMVARCHAR2(11),DJ_RQDATE,DJJG_DMVARCHAR2(11),LR_SJTIMESTAMP(6),XG_SJTIMESTAMP(6),ZDFY_BJCHAR(1),XMMCVARCHAR2(100),KNQYBZ_DMCHAR(1),ZDYCKJN_BJCHAR(1),SJJHPT_SJTIMESTAMP(6),SJJHPT_DZNUMBER(14);跟著在這個(gè)表結(jié)構(gòu)的基礎(chǔ)上,在目標(biāo)數(shù)據(jù)庫(kù)創(chuàng)建新表。需要
8、注意的是,gp數(shù)據(jù)庫(kù)的數(shù)據(jù)類型有些跟oracle的一樣,有些不同。相同的就不用改了,不同的就改下。以上面的數(shù)據(jù)類型為例,相同的有char、date、timestamp,不同的是varchar2和number,因此,varchar2(n)要改成varchar(n),number(n)要改成integer(注意不帶數(shù)字長(zhǎng)度n)。建完之后,我們就可以在這不同數(shù)據(jù)庫(kù)的兩張表之間進(jìn)行數(shù)據(jù)遷移或數(shù)據(jù)定時(shí)傳輸。23源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的jndi設(shè)置Jndi是kettle連接數(shù)據(jù)庫(kù)的配置文件,相當(dāng)于oracle的tns。Jndi設(shè)置的目錄是在kettle目錄下的simple-jndi文件夾里,打開(kāi)后編輯per
9、ties來(lái)設(shè)置jndi,下面附上公司揭陽(yáng)涉稅項(xiàng)目oracle到gp數(shù)據(jù)庫(kù)的jndi設(shè)置,分別是源端oracle數(shù)據(jù)庫(kù)和目標(biāo)端gp數(shù)據(jù)庫(kù)。配置信息的斜杠左邊是jndi名,這里jndi的命名規(guī)則是數(shù)據(jù)庫(kù)名_用戶名,注意本地的jndi名要跟交換平臺(tái)的jndi名一致。配置信息的斜杠右邊分別是數(shù)據(jù)庫(kù)類型、驅(qū)動(dòng)、數(shù)據(jù)庫(kù)地址、用戶名和密碼。注意,相同數(shù)據(jù)庫(kù)配置寫(xiě)法相同,不同數(shù)據(jù)庫(kù)的配置寫(xiě)法略有不同,像下面的oracle和gp數(shù)據(jù)庫(kù)的driver和url地址寫(xiě)法就不一樣。oracle_db_mhpt/type=javax.sql.DataSourceoracle_db_mhpt/driver=oracle.j
10、dbc.driver.OracleDriveroracle_db_mhpt/url=jdbc:oracle:thin:1:1521:zrmhdboracle_db_mhpt/user=db_mhptoracle_db_mhpt/password=DB_MHPTgp_public/type=javax.sql.DataSourcegp_public/driver=org.postgresql.Drivergp_public/url=jdbc:postgresql:/65:5432/postgresgp_public/database=8gp_public/user=gpadmingp_publi
11、c/password=gpadmin2.4.寫(xiě)kettle腳本Kettle腳本有兩種,ktr腳本跟kjb腳本,其中ktr負(fù)責(zé)執(zhí)行,具體要做什么由ktr來(lái)負(fù)責(zé);kjb負(fù)責(zé)調(diào)度,調(diào)用一個(gè)或多個(gè)ktr。Ktr和kjb的關(guān)系類似于像員工和領(lǐng)導(dǎo)之間,員工負(fù)責(zé)具體的事務(wù)操作,領(lǐng)導(dǎo)負(fù)責(zé)計(jì)劃安排工作。新建ktr腳本可以點(diǎn)擊左上角的文件一新建-轉(zhuǎn)換,新建kjb腳本就文件-新建作業(yè)。我們這里傳輸數(shù)據(jù)只要用到kjb腳本,一張表的數(shù)據(jù)傳輸要有1個(gè)腳本。首先先新建一個(gè)ktr文件,如圖2.4所示,跟著我們按照主界面的提示拖動(dòng)主鍵來(lái)操作。拖動(dòng)組件在核心對(duì)象的組件庫(kù)里。ACJ強(qiáng)Cj繞計(jì)n掐出口抑本口連按話Spoon-repo
12、sitDry轉(zhuǎn)換1堂件耳g確執(zhí)齊工具蛋助由日mh石、Drag&dropfromthe/designpaneltobegin.KTR_SJCS_J_TEST卩:(??換1;ICJRSJCS.JYTESTII口嚳I?爲(wèi)耳冒100%-riInputriSfrA口彌口應(yīng)用口BdServer口查問(wèn)-匚J載據(jù)包險(xiǎn)-rRigDataLlAgilein加看口Palo圖2.4跟著我們需要4個(gè)組件,分別是獲取變量、表輸入、字符串操作、插入/更新,先從組件庫(kù)里找到這些組件然后拖動(dòng)到右邊面板上,查找組件可以用組件名稱來(lái)在組建的搜索框里搜索。拖動(dòng)后如圖2.5所示。圖2.5然后給他們組件之間建立連接,用拉箭頭來(lái)連接即可,
13、如圖2.6所示:回養(yǎng)輸入字待豐操作圖2.6組件之間連接完之后,跟著雙擊組件一個(gè)個(gè)編輯。第一步是獲取變量,在獲取變量前首先要設(shè)置入?yún)⒂脕?lái)獲取變量,設(shè)置變量先雙擊主對(duì)象樹(shù)的ktr名(轉(zhuǎn)換1是未保存文件到本地的默認(rèn)名),跟著設(shè)置命名參數(shù)。如圖2.7跟2.8所示。其中start_timestamp和end_timestamp這兩個(gè)是數(shù)據(jù)交換平臺(tái)服務(wù)器上默認(rèn)的用于增量抽取數(shù)據(jù)的兩個(gè)入?yún)?,分別表示數(shù)據(jù)開(kāi)始時(shí)間跟數(shù)據(jù)結(jié)束時(shí)間。這里填上了默認(rèn)值方便測(cè)試。測(cè)覽器卜Steps(歩驟)!Hops(節(jié)點(diǎn)連接數(shù)據(jù)庫(kù)分區(qū)丸hM匕子皈務(wù)雖口Kettleschen-Hadoopdustersr0主對(duì)最樹(shù)x藝核心對(duì)彖飆銘翁e-
14、ms_銘鐵8W.fi|前time冊(cè)psiartjine咖p2D17-02-01如征01圖2.7圖2.8設(shè)置入?yún)⒑笤倬庉嫬@取變量的組件,這里名稱跟入?yún)⒁粯?,kettle變量名的寫(xiě)法是$Variables,類型我們選擇string,因?yàn)榉?wù)器上交換平臺(tái)傳進(jìn)來(lái)的start_timestamp和end_timestamp參數(shù)也是string類型的,我們這里跟它一致。也如圖2.9所示:步驟名稱莪取變畐芋段:辛名稱稻式長(zhǎng)庭精1start_timest.$tart_timestampString2end_tim亡或日$end_;iinestampString圖2.9第二步是表輸入,首先要先連接數(shù)據(jù)庫(kù),之前我
15、們?cè)诒镜匚募吓渲昧薺ndi,這里jndi就用得上。新建或編輯數(shù)據(jù)庫(kù)連接,選擇好連接的數(shù)據(jù)庫(kù),還有jndi連接方式,再填上jndi名稱和連接名稱,設(shè)置完了就點(diǎn)擊左下角的測(cè)試來(lái)測(cè)試本地能不能連上數(shù)據(jù)庫(kù)。連上了我們才做其他的步驟。口軟堀日至扌忘一瞬i&I連援辿隹接侶稱:連空翼型;OracleoracIe_db_mhptJNDI-SNative(JDBQjOrmulmIR.DEPaloMOLARServerPostgreSQLRedshift圖2.10連通好后,寫(xiě)好sql語(yǔ)句。這里sql語(yǔ)句用到變量,kettle變量的寫(xiě)法是$variables,而使用變量要在左右兩端再加上單引號(hào),變成variabl
16、es。注意數(shù)據(jù)庫(kù)后臺(tái)的日期類型是date,而變量是字符串類型,因此需要做個(gè)變量的類型轉(zhuǎn)換。因?yàn)橛惺褂米兞?,所以需要勾上“替換sql語(yǔ)句里的變量”單選框。設(shè)置好后可以預(yù)覽下數(shù)據(jù)看下。行*?!128Help竝啟庫(kù)連繪oracle_to_date55lart_tinestenp?.YYlf-M-DDBEUQ.HI:55)占ffDtsjjhpt_sj佔(zhàn)to_date(1i(eacLtiMBtajip1.irTTY-MK-DDHB24:HI:SS1)圖2.11第三步是字段去除左右空格,編輯“字符串操作”,點(diǎn)getfields獲取從上個(gè)步驟表表輸入獲取的字段名,然后把trimtype全部選擇both,意思
17、是去除字段左右兩端的空格。如果getfields得到的字段有start_timestamp和end_timestamp這兩個(gè),這兩個(gè)多余的,就刪去。如下圖所示:Stepname再InbtreamfL.Out-stre-iamf_Trimty.ILawer/LFp.PAddmgPadchdrPadLnL.InitCapE-5capeDigitsRc-mawe-Specialcha.1WSBHibothnonenonestownonenone2HVFL_DMbotilnoflenonetownonenoneJJFDWLX_DMbatiinonencrrt!Montnanis門口n皀4SBK_DMb
18、athnonencnsMonenciriisnani=5SBGUG_DMbadinonenoneNbrwnonenone&SliIITfi?E100%-圖2.153.在數(shù)據(jù)交換平臺(tái)設(shè)置定時(shí)任務(wù)以公司這邊的數(shù)據(jù)交換平臺(tái)為例(admin/admin),如果交換平臺(tái)的jndi設(shè)置沒(méi)有設(shè)置的話,那么要首先設(shè)置這樣跑kettle腳本的話才能連到數(shù)據(jù)庫(kù),注意本地kettle的jndi名要跟交換平臺(tái)的jndi名一致,需要統(tǒng)一命名。圖3.1跟著將腳本放上服務(wù)器,可以在頁(yè)面上上傳文件到服務(wù)器。瓏e頁(yè)伽題縫匿-記JNDIggg甲.WjEfMBg一.周岌平白狀視查詢_.處共斛張?jiān)掃^(guò)腔片置彎JND丁配丑占?xì)⒔y(tǒng)存世一粘
19、觀能代咼狀護(hù)饗機(jī)構(gòu)淮護(hù)_崗位仔類維護(hù)業(yè)務(wù)&關(guān)代碼維護(hù)卜*于宜用審數(shù)握護(hù)-k丘淮護(hù)_.崗位推護(hù)機(jī)構(gòu)職.能叩維護(hù)一羸機(jī)構(gòu)崗社垂護(hù)港機(jī)枸崗世職能側(cè)樂(lè)護(hù)_于應(yīng)用地址維護(hù)嗨功艷射維護(hù)機(jī)構(gòu)崗世人員維護(hù)一雜鬲包維護(hù)程目錄營(yíng)艷密Eiivaiisjca救擁倉(cāng).年申目社保I-Q曲務(wù)農(nóng)L啦事Lxq祝務(wù)彩(esiL黑teFsr11lTf=i定時(shí)如行隅圖自運(yùn)行狀態(tài):砒目錄Ifl1陳目錄走時(shí)器若稱重命售目錄1上隹瘟程文件圖3.2上傳好后,需要先跑一回腳本跑成功才能設(shè)置定時(shí)調(diào)度,所以我們先運(yùn)行一次。注意數(shù)據(jù)的起始時(shí)間(start_timestamp)默認(rèn)是1970年,首次運(yùn)行可以改下。數(shù)據(jù)的結(jié)束時(shí)間(end_timestamp)是當(dāng)前的時(shí)間點(diǎn)。超目親Etaji巴1-1唔KJCtl圖3.3運(yùn)行成功后,跟著再設(shè)定時(shí)任務(wù),按要求設(shè)置調(diào)度頻率蠱程
溫馨提示
- 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年房屋租賃協(xié)議(簡(jiǎn)化版)
- 2024年度成都上灶師父服務(wù)協(xié)議
- 2024年文化藝術(shù)創(chuàng)作聯(lián)盟協(xié)議
- 青少年社會(huì)實(shí)踐活動(dòng)方案
- 商業(yè)大廈水電維修管理方案
- 學(xué)校飲食安全應(yīng)急預(yù)案
- 校園安全主動(dòng)防護(hù)網(wǎng)建設(shè)方案
- 操作人員培訓(xùn)考核工作制度重要性(14篇)
- 醫(yī)療設(shè)備技術(shù)支持與服務(wù)協(xié)議
- 醫(yī)療設(shè)備采購(gòu)及實(shí)施技術(shù)方案
- 兩癌知識(shí)科普課件
- 食用菌現(xiàn)代高效農(nóng)業(yè)示范園區(qū)建設(shè)項(xiàng)目建議書(shū)
- 東營(yíng)港加油、LNG加氣站工程環(huán)評(píng)報(bào)告表
- 2024年日歷(打印版每月一張)
- 車用動(dòng)力電池回收利用 管理規(guī)范 第2部分:回收服務(wù)網(wǎng)點(diǎn)征求意見(jiàn)稿編制說(shuō)明
- 新劍橋少兒英語(yǔ)第六冊(cè)全冊(cè)配套文本
- 科學(xué)預(yù)測(cè)方案
- 職業(yè)生涯規(guī)劃網(wǎng)絡(luò)與新媒體專業(yè)
- T-WAPIA 052.2-2023 無(wú)線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第2部分:終端
- 市政管道開(kāi)槽施工-市政排水管道的施工
- 人工智能在教育行業(yè)中的應(yīng)用與管理
評(píng)論
0/150
提交評(píng)論