




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
使用Kettle進(jìn)行數(shù)據(jù)遷移和采集學(xué)習(xí)單元3單元概述本單元學(xué)習(xí)利用ETL工具Kettle進(jìn)行數(shù)據(jù)遷移和采集,運(yùn)用Kettle的轉(zhuǎn)換和作業(yè)等基本單元,完成一個(gè)業(yè)務(wù)表向分析表的遷移,并利用目標(biāo)表所需,對(duì)源表數(shù)據(jù)進(jìn)行處理。通過本單元學(xué)習(xí),可以了解數(shù)據(jù)庫ETL(抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load))的基本概念,掌握Kettle轉(zhuǎn)換和作業(yè)的的基本操作和靈活應(yīng)用。本學(xué)習(xí)單元以某校園小商品交易系統(tǒng)為例,通過業(yè)務(wù)表向分析表的遷移為例,分別通過數(shù)據(jù)預(yù)處理和遷移、定時(shí)執(zhí)行作業(yè)兩個(gè)任務(wù)學(xué)習(xí)Kettle工具中的轉(zhuǎn)換和作業(yè)。教學(xué)目標(biāo)了解應(yīng)用系統(tǒng)數(shù)據(jù)轉(zhuǎn)換遷移的必要性和相關(guān)理論知識(shí)。順利完成數(shù)據(jù)遷移工作與上下級(jí)溝通,學(xué)會(huì)協(xié)調(diào)各種硬軟件資源。掌握常用的kettle開源數(shù)據(jù)遷移工具,進(jìn)一步深化數(shù)據(jù)庫知識(shí)和工具的理解與應(yīng)用。任務(wù)1使用Kettle工具進(jìn)行數(shù)據(jù)遷移任務(wù)描述
軟件項(xiàng)目開發(fā)中,經(jīng)常需要對(duì)接其它關(guān)聯(lián)的軟件系統(tǒng)或者舊系統(tǒng)進(jìn)行新業(yè)務(wù)開發(fā)或分析處理,這個(gè)過程中需要將源數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行預(yù)處理后,通過自定義的程序或者ETL工具進(jìn)行遷移或?qū)С觥?/p>
本任務(wù)的目標(biāo)是對(duì)某校園商品交易系統(tǒng)的數(shù)據(jù)進(jìn)行分析,將業(yè)務(wù)數(shù)據(jù)庫中的商品表(goods)的數(shù)據(jù)按照分析的需要遷移到另外一個(gè)數(shù)據(jù)庫的分析表goods_bak中。關(guān)鍵技術(shù)點(diǎn)是通過Kettle工具中的轉(zhuǎn)換,對(duì)所需源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫進(jìn)行連接,采集所需要的字段和數(shù)據(jù),運(yùn)行轉(zhuǎn)換,完成數(shù)據(jù)的預(yù)處理和遷移工作。任務(wù)分析1.Kettle的安裝
使用Kettle之前必須安裝JDK環(huán)境,這里選擇安裝JDK1.8。具體JDK安裝步驟參照本書“Nutch爬取數(shù)據(jù)”部分JDK1.8版本的安裝。任務(wù)實(shí)施Kettle可以在/網(wǎng)站下載到。下載好Kettle以后,直接解壓,默認(rèn)文件夾為data-integration。打開解壓文件夾,可以看到文件夾下的文件。任務(wù)實(shí)施其中,spoon.bat為Windows系統(tǒng)下的啟動(dòng)文件,spoon.sh為Linux系統(tǒng)下的啟動(dòng)文件。雙擊spoon.bat可看到以下啟動(dòng)界面:任務(wù)實(shí)施2.使用Kettle創(chuàng)建轉(zhuǎn)換
(1)創(chuàng)建一個(gè)簡單的轉(zhuǎn)換
針對(duì)MySQL數(shù)據(jù)庫建立一個(gè)簡單的轉(zhuǎn)換,這個(gè)轉(zhuǎn)換的實(shí)例是把一個(gè)商品交易系統(tǒng)數(shù)據(jù)庫market中的物品表goods的一些數(shù)據(jù)拷貝到market_log數(shù)據(jù)庫中的goods_bak表。任務(wù)實(shí)施2.使用Kettle創(chuàng)建轉(zhuǎn)換
(1)創(chuàng)建一個(gè)簡單的轉(zhuǎn)換
針對(duì)MySQL數(shù)據(jù)庫建立一個(gè)簡單的轉(zhuǎn)換,這個(gè)轉(zhuǎn)換的實(shí)例是把一個(gè)商品交易系統(tǒng)數(shù)據(jù)庫market中的物品表goods的一些數(shù)據(jù)拷貝到market_log數(shù)據(jù)庫中的goods_bak表。任務(wù)實(shí)施1)創(chuàng)建一個(gè)轉(zhuǎn)換點(diǎn)擊文件-新建-轉(zhuǎn)換,或點(diǎn)擊左上角+號(hào)新建轉(zhuǎn)換任務(wù)實(shí)施2)連接到market和market_log數(shù)據(jù)庫在新建好的轉(zhuǎn)換1左側(cè)菜單主對(duì)象樹里,右擊DB連接,可以新建數(shù)據(jù)庫連接,這里分別新建了兩個(gè)連接conn_market和conn_market_log。連接好以后應(yīng)該會(huì)在DB連接中出現(xiàn)兩個(gè)數(shù)據(jù)庫連接。任務(wù)實(shí)施3)在核心對(duì)象的輸入中拖入一個(gè)表輸入,并雙擊表輸入對(duì)其進(jìn)行屬性設(shè)置。任務(wù)實(shí)施4)在核心對(duì)象中拖入插入/更新組件5)按住shift從表輸入到插入/更新6)然后在對(duì)插入/更新進(jìn)行配置,在用來查詢的關(guān)鍵字中需要設(shè)置連接的字段。7)最后保存,并運(yùn)行這個(gè)轉(zhuǎn)換,如右下圖顯示,表示采集成功。數(shù)據(jù)遷移技術(shù)概述必備知識(shí)序號(hào)數(shù)據(jù)遷移方法方法簡述舉例1邏輯卷數(shù)據(jù)鏡像方法對(duì)需要遷移的每個(gè)卷都做邏輯卷數(shù)據(jù)鏡像如IBMLVM,Veritas,VxVM2直接拷貝方法利用操作系統(tǒng)命令直接拷貝要遷移的數(shù)據(jù),然后復(fù)制到要遷移到的目的地如IBMAIXtar,dd,savevg,mksysb,cpio等命令3備份恢復(fù)方法利用備份管理軟件對(duì)數(shù)據(jù)做備份,然后恢復(fù)到目的地如
IBMTSM,EMCLegatoNetWorker,Symantec,VeritasNetBackup等4數(shù)據(jù)庫工具方法使用數(shù)據(jù)庫的自身工具對(duì)數(shù)據(jù)進(jìn)行遷移如OracleExport/Import,
OracleDataGuard,
GoldenGate,OracleLogminer,Quest,SharePlex5存儲(chǔ)虛擬化的方法通過存儲(chǔ)虛擬化技術(shù)將數(shù)據(jù)從源端遷移到目的地如
EMC
的
Invista、IBM的
SVC
和
LSI
StoreAge,SVM等6盤陣內(nèi)復(fù)制方法通過盤陣內(nèi)的復(fù)制軟件,將數(shù)據(jù)源卷復(fù)制到數(shù)據(jù)目標(biāo)卷如
EMC
的
TimeFinder,
IBMFlashCopy,HDS,ShadowImage等7直接的陣列到陣列復(fù)制方法通過盤陣復(fù)制軟件對(duì)數(shù)據(jù)做遷移如
EMC
的
SRDF,HDS
的TrueCopy,IBM
的GlobalMirror
等8歷史數(shù)據(jù)和異構(gòu)數(shù)據(jù)間遷移方法通過數(shù)據(jù)提取、轉(zhuǎn)移、裝載工具或定制程序進(jìn)行裝載Kettle、Spoop、Flume等ETL是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。常見于數(shù)據(jù)倉庫開發(fā)中將數(shù)據(jù)由業(yè)務(wù)系統(tǒng)歸集到數(shù)據(jù)倉庫(DW)或者數(shù)據(jù)集市的過程。在ETL三個(gè)部分中,一般情況下,花費(fèi)時(shí)間最長的是“T”(Transform,清洗、轉(zhuǎn)換)的部分。(1)抽取作業(yè)將從源數(shù)據(jù)庫(通常為業(yè)務(wù)系統(tǒng))獲得數(shù)據(jù)的過程。(2)轉(zhuǎn)換作業(yè)這一步包含了數(shù)據(jù)的清洗和轉(zhuǎn)換。數(shù)據(jù)清洗是過濾不符合條件或者錯(cuò)誤的數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)換包含了簡單的數(shù)據(jù)不一致轉(zhuǎn)換,數(shù)據(jù)粒度轉(zhuǎn)換和耗時(shí)的數(shù)據(jù)關(guān)聯(lián)整合或拆分動(dòng)作。(3)加載作業(yè)(4)流程控制抽取加載和轉(zhuǎn)換作業(yè)需要一個(gè)集中的調(diào)度平臺(tái)控制他們的運(yùn)行,決定執(zhí)行順序,進(jìn)行錯(cuò)誤捕捉和處理。常用的免費(fèi)開源的ETL工具如下:1)Kettle可以管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個(gè)圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。
2)Sqoop主要用于在HADOOP與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql等)進(jìn)行數(shù)據(jù)的傳遞。3)Flume用于將日志數(shù)據(jù)從各種網(wǎng)站服務(wù)器上匯集起來存儲(chǔ)到HDFS,HBase等集中存儲(chǔ)器中。Kettle簡介Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運(yùn)行,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle
中文名稱叫水壺,該項(xiàng)目的主程序員MATT
希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。
它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個(gè)圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。
PDIClient啟動(dòng)分為兩種:一種是安裝包方式安裝,然后在菜單欄中啟動(dòng),這種方式并不是我們想要的。另外一種是通過解壓zip包,然后通過啟動(dòng)腳本spoon.bat或者spoon.sh啟動(dòng)Spoon。任務(wù)拓展1.數(shù)據(jù)轉(zhuǎn)換處理對(duì)于新系統(tǒng)數(shù)據(jù)庫字段值不一致的情況,Kettle中的轉(zhuǎn)換提供了一系列數(shù)據(jù)處理的步驟,如字符串操作(去重,剪切等)、去除重復(fù)記錄、增加序列、增加常量等。例如,增加常量:字符串操作:以去除字段值前后的空格為例,如圖3-22,Trimtype的選項(xiàng)both去除前后空格,left去除左邊空格,right去除右邊空格值映射:2.使用腳本進(jìn)行數(shù)據(jù)處理對(duì)于一些復(fù)雜的數(shù)據(jù)轉(zhuǎn)換,Kettle可以利用Java和Javascript等腳本進(jìn)行數(shù)據(jù)的處理,例如,主鍵ID為的UUID標(biāo)識(shí)字段,源數(shù)據(jù)庫是32位,目標(biāo)系統(tǒng)在字符中加入了“-”成為了36位,可以利用Java腳本(前提要有JDK環(huán)境)進(jìn)行處理。任務(wù)2利用kettle建立作業(yè),定時(shí)執(zhí)行轉(zhuǎn)換任務(wù)描述
對(duì)設(shè)計(jì)好的轉(zhuǎn)換,可能只是實(shí)現(xiàn)小部分功能,對(duì)于復(fù)雜業(yè)務(wù),可能需要執(zhí)行多個(gè)轉(zhuǎn)換,而且對(duì)于需要頻繁進(jìn)行數(shù)據(jù)采集和遷移的系統(tǒng),有必要進(jìn)行定時(shí)自動(dòng)運(yùn)行。任務(wù)分析
本任務(wù)的目標(biāo)是將之前的轉(zhuǎn)換以定時(shí)執(zhí)行的方式運(yùn)行,關(guān)鍵技術(shù)點(diǎn)是通過Kettle工具中的作業(yè)組件進(jìn)行配置。任務(wù)實(shí)施1.創(chuàng)建一個(gè)簡單的作業(yè)2.拖入開始組件,這里設(shè)置的間隔時(shí)間的2分鐘Start
是任務(wù)執(zhí)行的入口,首先必須是任務(wù)可以執(zhí)行。只有無條件的任務(wù)條目可以從Start入口連接。3.拖入轉(zhuǎn)換組件,將剛剛保存的轉(zhuǎn)換文件配置到Transformation屬性中。4.點(diǎn)擊運(yùn)行按鈕,就可以運(yùn)行配置的作業(yè)。需要注意的是,定時(shí)作業(yè)不能關(guān)閉spoon.bat窗口,可以將工具部署到服務(wù)器上,通過Linux的crontab定時(shí)執(zhí)行。必備知識(shí)kettle工具的腳本文件和主要組件Kettle中有兩種腳本文件,transformation(轉(zhuǎn)換,文件后綴名.ktr)和job(作業(yè),文件后綴名.kjb),transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。
作業(yè)(Job),相較于轉(zhuǎn)換,是更加高級(jí)的操作。一個(gè)作業(yè)里包括多個(gè)作業(yè)項(xiàng)(JobEntry),一個(gè)作業(yè)項(xiàng)代表了一項(xiàng)工作,而轉(zhuǎn)換是一種作業(yè)項(xiàng),即作業(yè)里面可以包括多個(gè)轉(zhuǎn)換。Kettle有三個(gè)主要組件:Spoon、Kitchen、PanSpoon:是一個(gè)圖形化的界面,可以讓我們用圖形化的方式開發(fā)轉(zhuǎn)換和作業(yè)。Kitchen:利用Kitchen可以使用命令行調(diào)用JobPan:利用Pan可以用命令行的形式調(diào)用TransCarte:Carte是一個(gè)輕量級(jí)的Web容器,用于建立專用、遠(yuǎn)程的ETLServer。任務(wù)拓展Kettle的轉(zhuǎn)換和作業(yè)可以用命令行的方式來運(yùn)行以Windows操作系統(tǒng)環(huán)境為例,轉(zhuǎn)換(.ktr)可以通過Pan.bat來運(yùn)行的。在cmd命令行窗口下,轉(zhuǎn)到Pan.bat所在的目錄,如E:\data-integration,然后執(zhí)行上節(jié)任務(wù)創(chuàng)建的轉(zhuǎn)換文件tran_goods.ktr,命令為:Pan/fileE:\data-integration\ktr_goods.ktr作業(yè)(.kjb)的運(yùn)行可以通過kitchen.bat來運(yùn)行的。在cmd命令行窗口下,轉(zhuǎn)到kitchen.bat所在的目錄,如E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加盟健康中心合作合同范本
- 初創(chuàng)公司分紅合同范本
- 保證合同范本單方
- 醫(yī)用合同范本
- 單位和個(gè)人合伙合同范本
- 勞務(wù)門店合同范本
- 書畫居間合同范本
- 供用熱力合同范本
- 關(guān)聯(lián)交易合同范本
- 會(huì)展活動(dòng)合同范本
- 《心態(tài)管理》課件
- 裝修垃圾清運(yùn)方案
- 我是小小志愿者介紹主題班會(huì)課件
- 中小學(xué)-珍愛生命 遠(yuǎn)離毒品-課件
- 2024年三違人員培訓(xùn)制度(四篇)
- 急救藥品課件教學(xué)課件
- 教師職業(yè)道德-教師專業(yè)發(fā)展(教師培訓(xùn)課件)
- 電工(中級(jí)工)理論知識(shí)習(xí)題庫+參考答案
- 《國土空間規(guī)劃》-課程教學(xué)大綱
- 數(shù)字出版概論 課件 第七章 數(shù)字內(nèi)容服務(wù)相關(guān)技術(shù)
- 人教版八年級(jí)上冊(cè)英語語法填空含答案
評(píng)論
0/150
提交評(píng)論