KETTLE使用培訓(xùn)(共38張)(PPT 38頁(yè))_第1頁(yè)
KETTLE使用培訓(xùn)(共38張)(PPT 38頁(yè))_第2頁(yè)
KETTLE使用培訓(xùn)(共38張)(PPT 38頁(yè))_第3頁(yè)
KETTLE使用培訓(xùn)(共38張)(PPT 38頁(yè))_第4頁(yè)
KETTLE使用培訓(xùn)(共38張)(PPT 38頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩33頁(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使用培訓(xùn)部門:EOMS講師:劉曉源第1頁(yè),共38頁(yè)。目錄目的Kettle介紹Kettle實(shí)戰(zhàn)使用原則第2頁(yè),共38頁(yè)。目的 了解Kettle的作用與使用。第3頁(yè),共38頁(yè)。Kettle介紹目的Kettle介紹總體介紹家族介紹概念定義Kettle實(shí)戰(zhàn)使用原則本節(jié)目標(biāo):1、知道Kettle是什么,能做什么。2、知道Kettle的一些概念。第4頁(yè),共38頁(yè)。總體介紹 Kettle是一個(gè)ETL(Extract-Transform-Load )工具集,它為用戶管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),描述自己要做的數(shù)據(jù)操作提供圖形化的操作界面。第5頁(yè),共38頁(yè)。總體介紹使用Kettle能為我們項(xiàng)目帶來(lái)以下好

2、處:對(duì)于業(yè)務(wù)人員 轉(zhuǎn)換和工作(Job)以步驟流的方式呈現(xiàn),更加直觀,業(yè)務(wù)人員與開(kāi)發(fā)人員溝通時(shí)可以把注意力集中在業(yè)務(wù)上。對(duì)于開(kāi)發(fā)人員 1、圖形化界面更加直觀,開(kāi)發(fā)人員上手快,加快開(kāi)發(fā)效率。 即使是二次開(kāi)發(fā),圖形化的步驟展現(xiàn)使二次開(kāi)發(fā)人員更快進(jìn)入開(kāi)發(fā)狀態(tài),不用把精力浪費(fèi)在代碼閱讀和業(yè)務(wù)邏輯分析上。 2、Kettle的javascript步驟運(yùn)行開(kāi)發(fā)人員通過(guò)編寫JavaScript代碼實(shí)現(xiàn)業(yè)務(wù)邏輯,并且允許在JavaScript調(diào)用java文件來(lái)實(shí)現(xiàn)復(fù)雜數(shù)據(jù)采集過(guò)濾邏輯。這樣,開(kāi)發(fā)人員只須把注意力放在寫業(yè)務(wù)采集邏輯上就可以了,降低了開(kāi)發(fā)采集的難度。 3、Kettle提供方便的調(diào)試工具和詳細(xì)的日志文件

3、,方便開(kāi)發(fā)人員跟蹤調(diào)試。 4、Kettle提供計(jì)算I/O、數(shù)據(jù)庫(kù)讀/寫次數(shù)工具,方便開(kāi)發(fā)人員在開(kāi)發(fā)完成后觀察,以便性能調(diào)優(yōu)。第6頁(yè),共38頁(yè)??傮w介紹要在項(xiàng)目上更好的發(fā)揮Kettle的優(yōu)勢(shì),還有以下一些問(wèn)題待解決:1、調(diào)用方式問(wèn)題:Kettle只提供了簡(jiǎn)單的調(diào)用方式。自己本身不提供輪訓(xùn)等工具。目前測(cè)試通過(guò)的只用兩種:一種是在圖形界面上點(diǎn)運(yùn)行。另一種是在命令行模式輸入運(yùn)行命令。如果要實(shí)現(xiàn)輪訓(xùn)采集,需要通過(guò)Kettle的API實(shí)現(xiàn)調(diào)用,即需要融合Kettle。并且如果涉及到及時(shí)采集,除了融合問(wèn)題,對(duì)采集的算法和性能也有很高的要求。2、性能問(wèn)題:由于Kettle只是一個(gè)很靈活的采集工具,實(shí)現(xiàn)同一個(gè)采

4、集的方式可以有很多種,性能的瓶頸還是在采集算法上(后面還有一些提高性能的原則),所以為了更好的使用Kettle,需要整理一些常用的采集算法和采集模板。3、Kettle本身的問(wèn)題:Kettle屬于開(kāi)源產(chǎn)品,該產(chǎn)品還在不斷的完善中,雖然有一個(gè)比較詳細(xì)的使用文檔,但是并不是很詳細(xì),很多細(xì)節(jié)必須上論壇找或更多的只能通過(guò)看源代碼并且寫demo來(lái)測(cè)試驗(yàn)證。而且由于Kettle的實(shí)現(xiàn)是基于多線程的,存在一定的線程bug。第7頁(yè),共38頁(yè)。Kettle介紹目的Kettle介紹總體介紹家族介紹概念定義Kettle實(shí)戰(zhàn)使用原則第8頁(yè),共38頁(yè)。KETTLE介紹 Kettle家族目前包括4個(gè)產(chǎn)品:Spoon、Pan

5、、CHEF、Kitchen。SPOON 允許你通過(guò)圖形界面來(lái)設(shè)計(jì)ETL轉(zhuǎn)換過(guò)程(Transformation)。例如,從EOMS系統(tǒng)抽取信息,并把這些信息存儲(chǔ)到一個(gè)文本文件里的轉(zhuǎn)換任務(wù)如下:第9頁(yè),共38頁(yè)。KETTLE介紹第10頁(yè),共38頁(yè)。KETTLE介紹PAN 允許你批量運(yùn)行由Spoon設(shè)計(jì)的ETL轉(zhuǎn)換 (例如使用一個(gè)時(shí)間調(diào)度器)。Pan是一個(gè)后臺(tái)執(zhí)行的程序,沒(méi)有圖形界面。 CHEF 允許你創(chuàng)建任務(wù)(Job)。 任務(wù)通過(guò)允許每個(gè)轉(zhuǎn)換,任務(wù),腳本等等,更有利于自動(dòng)化更新數(shù)據(jù)倉(cāng)庫(kù)的復(fù)雜工作。任務(wù)通過(guò)允許每個(gè)轉(zhuǎn)換,任務(wù),腳本等等。任務(wù)將會(huì)被檢查,看看是否正確地運(yùn)行了。(下面是一個(gè)Chef的任務(wù)

6、圖)KITCHEN 允許你批量運(yùn)行用Chef設(shè)計(jì)的jobs。(例如用scheduler)KITCHEN 允許你批量使用由Chef設(shè)計(jì)的任務(wù) (例如使用一個(gè)時(shí)間調(diào)度器)。KITCHEN也是一個(gè)后臺(tái)運(yùn)行的程序。第11頁(yè),共38頁(yè)。Kettle介紹目的Kettle介紹總體介紹家族介紹概念定義Kettle實(shí)戰(zhàn)使用原則第12頁(yè),共38頁(yè)。概念介紹 本節(jié)介紹Kettle中的兩個(gè)重要的定義: Transformation (轉(zhuǎn)換) 和 Job(工作),用Kettle可以話Transformation 圖和Job圖。 Job與Transformation的差別是:Transformation專注于數(shù)據(jù)的ETL

7、,而Job的范圍比較廣,可以是Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一個(gè)Job。Transformation(轉(zhuǎn)換)定義 如右圖,Transformation主要是由Step 和Hop組成。 Transformation主要包括幾個(gè) 原型概念:Step、Hop、 InputStream、OutputStream、 Row、Value。下面給出定義Step(步驟)如右圖的“Table Input”,每個(gè)Step就是一個(gè)元操作。Hop(跳躍線)連接Step的線,代表了數(shù)據(jù)的流向。InputStream(輸入流)輸入Step的數(shù)據(jù)流Output

8、Stream(輸出流)從Step輸出的數(shù)據(jù)流Row(記錄行)InputStream中存在多個(gè)Row,Row存在多個(gè)Value。Value(值)值,帶類型的值,例如String類型的值。第13頁(yè),共38頁(yè)。概念介紹Job(工作)定義Job Entry(工作實(shí)體)執(zhí)行具體的任務(wù)(例如調(diào)用轉(zhuǎn)換)Hop連接Job Entry的線??梢灾付ㄊ欠裼袟l件的執(zhí)行。例如,根據(jù)前一個(gè)Job Entry 執(zhí)行的結(jié)果,判斷是否執(zhí)行這條Hop指向的下一個(gè)Job Entry 。 第14頁(yè),共38頁(yè)。Kettle實(shí)戰(zhàn)目的Kettle介紹Kettle實(shí)戰(zhàn)常用Step介紹檢查、調(diào)試、運(yùn)行日志采集demo使用原則第15頁(yè),共38

9、頁(yè)。常用Step介紹生成字段和空操作生成記錄功能:用于生成數(shù)據(jù)行用途:一般用來(lái)模擬數(shù)據(jù)測(cè)試用。空操作 功能:什么都不做。 用途:1、匯總數(shù)據(jù)集(待匯總的數(shù)據(jù)集必須 結(jié)構(gòu)(字段)一致)2、調(diào)試時(shí)作為展現(xiàn)數(shù)據(jù)的節(jié)點(diǎn)第16頁(yè),共38頁(yè)。常用Step介紹Table Input和Table Outputa1表字段名:a,bA2表字段名:a,c在這個(gè)demo中可以看出兩點(diǎn):1、數(shù)據(jù)流(輸入/出流)中的數(shù)據(jù)字段名與生成該數(shù)據(jù)流的Step自動(dòng)獲取。2、表輸出是按照數(shù)據(jù)流的數(shù)據(jù)自動(dòng)匹配并且插入到輸出表中的。第17頁(yè),共38頁(yè)。常用Step介紹字段選擇用于篩選數(shù)據(jù)流中的字段。第18頁(yè),共38頁(yè)。常用Step介紹獲

10、取系統(tǒng)信息 可以通過(guò)獲取系統(tǒng)信息獲取系統(tǒng)的一些信息,以及獲取調(diào)用轉(zhuǎn)換時(shí)傳入的參數(shù)。第19頁(yè),共38頁(yè)。常用Step介紹Merge Join MergeJoin Step做的連接運(yùn)算是在內(nèi)存中運(yùn)行的。它有一個(gè)特殊要求:要求做集合的連接key必須已經(jīng)按相同方式排好序了(無(wú)論是用Sql的orderby還是用KETTLE提供的排序記錄Step),要不然會(huì)出現(xiàn)不可預(yù)知的錯(cuò)誤,例如右圖。第20頁(yè),共38頁(yè)。常用Step介紹修改后的圖第21頁(yè),共38頁(yè)。Kettle實(shí)戰(zhàn)目的Kettle介紹Kettle實(shí)戰(zhàn)常用Step介紹檢查、調(diào)試、運(yùn)行日志采集demo使用原則第22頁(yè),共38頁(yè)。檢查、調(diào)試、運(yùn)行右圖紅框標(biāo)出

11、的工具欄 運(yùn)行 預(yù)覽 調(diào)試 檢查第23頁(yè),共38頁(yè)。檢查、調(diào)試、運(yùn)行 檢查 檢查功能檢查出圖中的應(yīng)用級(jí)錯(cuò)誤(不能檢查出邏輯錯(cuò)誤)。點(diǎn)擊 檢查按鈕后彈出下圖:紅色的為錯(cuò)誤,必須解決。黃色的為警告,可能會(huì)引起錯(cuò)誤,不一定需要解決。第24頁(yè),共38頁(yè)。檢查、調(diào)試、運(yùn)行 預(yù)覽 能夠看到執(zhí)行完該步驟后的輸出數(shù)據(jù)(有的可能看不到,例如,需要參數(shù)傳入的執(zhí)行步驟)。一般在個(gè)別步驟中也有預(yù)覽按鈕。第25頁(yè),共38頁(yè)。檢查、調(diào)試、運(yùn)行 調(diào)試 調(diào)試轉(zhuǎn)換,可以輸入?yún)?shù)和設(shè)置要觀測(cè)的步驟。從中可以看到每個(gè)步驟的輸出結(jié)果。第26頁(yè),共38頁(yè)。檢查、調(diào)試、運(yùn)行 運(yùn)行 運(yùn)行后可以看到一下結(jié)果。對(duì)部分參數(shù)解釋一下:讀:從輸入流

12、讀取的記錄數(shù)。寫:輸出到輸出流的記錄數(shù)。輸入:從數(shù)據(jù)庫(kù)讀取的記錄數(shù)。輸出:輸出到數(shù)據(jù)庫(kù)的記錄數(shù)。錯(cuò)誤:執(zhí)行時(shí)錯(cuò)誤數(shù)。激活:Step執(zhí)行的狀態(tài)。時(shí)間:執(zhí)行該步驟的時(shí)間。速度:該Step處理每行記錄用的時(shí)間。Pri/in/out:顯示因?yàn)樵揝tep的輸入緩存為空,或者輸出緩存已滿而等待進(jìn)入休眠的時(shí)間。第27頁(yè),共38頁(yè)。Kettle實(shí)戰(zhàn)目的Kettle介紹Kettle實(shí)戰(zhàn)常用Step介紹檢查、調(diào)試、運(yùn)行日志采集demo使用原則第28頁(yè),共38頁(yè)。日志 在Kettle的日志機(jī)制中存儲(chǔ)方式分兩類,一類是存儲(chǔ)在文本日志里,一類是存儲(chǔ)在數(shù)據(jù)庫(kù)里。本節(jié)暫時(shí)只介紹記錄在日志里的情況。第29頁(yè),共38頁(yè)。日志日

13、志級(jí)別:可以點(diǎn)擊 記錄配置日志級(jí)別。Nothing不顯示任何輸出。Error只顯示Error。Minimal只記錄必要日志。Basic默認(rèn)日志級(jí)別。Detailed輸出對(duì)話級(jí)別的日志。Debug輸出調(diào)試級(jí)別的日志。Row level每一行的操作都會(huì)記錄日志。第30頁(yè),共38頁(yè)。Kettle實(shí)戰(zhàn)目的Kettle介紹Kettle實(shí)戰(zhàn)常用Step介紹檢查、調(diào)試、運(yùn)行日志采集demo使用原則第31頁(yè),共38頁(yè)。采集demo采集demo1和采集demo2說(shuō)明 兩個(gè)demo實(shí)現(xiàn)的業(yè)務(wù)是一樣的,區(qū)別是demo2多用了幾個(gè)step去實(shí)現(xiàn)連接功能。意在說(shuō)明兩點(diǎn):1、如果一條sql實(shí)現(xiàn)不了的,可以通過(guò)Kettle

14、提供的step實(shí)現(xiàn)。2、Kettle很靈活,所以從性能上考慮,對(duì)開(kāi)發(fā)人員的要求也是挺高的,下面一節(jié)會(huì)給出一些原則。第32頁(yè),共38頁(yè)。采集demo采集demo1第33頁(yè),共38頁(yè)。采集demo采集demo2第34頁(yè),共38頁(yè)。使用原則目的Kettle介紹Kettle實(shí)戰(zhàn)使用原則第35頁(yè),共38頁(yè)。使用原則盡量使用數(shù)據(jù)庫(kù)連接池盡量提高批處理的commit size盡量使用緩存,緩存盡量大一些(主要是文本文件和數(shù)據(jù)流)Kettle 是Java 做的,盡量用大一點(diǎn)的內(nèi)存參數(shù)啟動(dòng)Kettle.可以使用sql 來(lái)做的一些操作盡量用sql Group , merge , stream lookup ,sp

15、lit field 這些操作都是比較慢的,想辦法避免他們.,能用sql 就用sql插入大量數(shù)據(jù)的時(shí)候盡量把索引刪掉盡量避免使用update , delete 操作,尤其是update , 如果可以把update 變成先delete , 后insert .第36頁(yè),共38頁(yè)。使用原則能使用truncate table 的時(shí)候,就不要使用delete all row 這種類似sql合理的分區(qū)如果刪除操作是基于某一個(gè)分區(qū)的,就不要使用delete row 這種方式(不管是delete sql 還是delete 步驟),直接把分區(qū)drop 掉,再重新創(chuàng)建盡量縮小輸入的數(shù)據(jù)集的大?。ㄔ隽扛乱彩菫榱诉@個(gè)目的)盡量使用數(shù)據(jù)庫(kù)原生的方式裝載文本文件(Oracle 的sqlloader , mysql 的bulk loader 步驟)盡

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論