




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Kettle使用培訓使用培訓部門:部門:EOMS講師:劉曉源講師:劉曉源目錄 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 使用原則使用原則目的 了解Kettle的作用與使用。Kettle介紹 目的目的 Kettle介紹介紹 家族介紹家族介紹 概念定義概念定義 Kettle實戰(zhàn)實戰(zhàn) 使用原則使用原則本節(jié)目標本節(jié)目標:1、知道Kettle是什么,能做什么。2、知道Kettle的一些概念??傮w介紹 Kettle是一個ETL(Extract-Transform-Load )工具集,它為用戶管理來自不同數(shù)據(jù)庫的數(shù)據(jù),描述自己要做的數(shù)據(jù)操作提供圖形化的操作界面??傮w介紹使用使用Kettle能為我
2、們項目帶來以下好處:能為我們項目帶來以下好處:對于業(yè)務人員 轉換和工作(Job)以步驟流的方式呈現(xiàn),更加直觀,業(yè)務人員與開發(fā)人員溝通時可以把注意力集中在業(yè)務上。對于開發(fā)人員 1、圖形化界面更加直觀,開發(fā)人員上手快,加快開發(fā)效率。 即使是二次開發(fā),圖形化的步驟展現(xiàn)使二次開發(fā)人員更快進入開發(fā)狀態(tài),不用把精力浪費在代碼閱讀和業(yè)務邏輯分析上。 2、Kettle的javascript步驟運行開發(fā)人員通過編寫JavaScript代碼實現(xiàn)業(yè)務邏輯,并且允許在JavaScript調(diào)用java文件來實現(xiàn)復雜數(shù)據(jù)采集過濾邏輯。這樣,開發(fā)人員只須把注意力放在寫業(yè)務采集邏輯上就可以了,降低了開發(fā)采集的難度。 3、Ke
3、ttle提供方便的調(diào)試工具和詳細的日志文件,方便開發(fā)人員跟蹤調(diào)試。 4、Kettle提供計算I/O、數(shù)據(jù)庫讀/寫次數(shù)工具,方便開發(fā)人員在開發(fā)完成后觀察,以便性能調(diào)優(yōu)。總體介紹要在項目上更好的發(fā)揮要在項目上更好的發(fā)揮Kettle的優(yōu)勢,還有以下一些問題待解決:的優(yōu)勢,還有以下一些問題待解決:1、調(diào)用方式問題:Kettle只提供了簡單的調(diào)用方式。自己本身不提供輪訓等工具。目前測試通過的只用兩種:一種是在圖形界面上點運行。另一種是在命令行模式輸入運行命令。如果要實現(xiàn)輪訓采集,需要通過Kettle的API實現(xiàn)調(diào)用,即需要融合Kettle。并且如果涉及到及時采集,除了融合問題,對采集的算法和性能也有很高
4、的要求。2、性能問題:由于Kettle只是一個很靈活的采集工具,實現(xiàn)同一個采集的方式可以有很多種,性能的瓶頸還是在采集算法上(后面還有一些提高性能的原則),所以為了更好的使用Kettle,需要整理一些常用的采集算法和采集模板。3、Kettle本身的問題:Kettle屬于開源產(chǎn)品,該產(chǎn)品還在不斷的完善中,雖然有一個比較詳細的使用文檔,但是并不是很詳細,很多細節(jié)必須上論壇找或更多的只能通過看源代碼并且寫demo來測試驗證。而且由于Kettle的實現(xiàn)是基于多線程的,存在一定的線程bug。Kettle介紹 目的目的 Kettle介紹介紹 總體介紹總體介紹 概念定義概念定義 Kettle實戰(zhàn)實戰(zhàn) 使用原
5、則使用原則KETTLE介紹 Kettle家族目前包括4個產(chǎn)品:Spoon、Pan、CHEF、Kitchen。 SPOON 允許你通過圖形界面來設計ETL轉換過程(Transformation)。例如,從EOMS系統(tǒng)抽取信息,并把這些信息存儲到一個文本文件里的轉換任務如下:KETTLE介紹KETTLE介紹 PAN 允許你批量運行由Spoon設計的ETL轉換 (例如使用一個時間調(diào)度器)。Pan是一個后臺執(zhí)行的程序,沒有圖形界面。 CHEF 允許你創(chuàng)建任務(Job)。 任務通過允許每個轉換,任務,腳本等等,更有利于自動化更新數(shù)據(jù)倉庫的復雜工作。任務通過允許每個轉換,任務,腳本等等。任務將會被檢查,看
6、看是否正確地運行了。(下面是一個Chef的任務圖) KITCHEN 允許你批量運行用允許你批量運行用Chef設計的設計的jobs。(例如用。(例如用scheduler) KITCHEN 允許你批量使用由Chef設計的任務 (例如使用一個時間調(diào)度器)。KITCHEN也是一個后臺運行的程序。Kettle介紹 目的目的 Kettle介紹介紹 總體介紹總體介紹 家族介紹家族介紹 Kettle實戰(zhàn)實戰(zhàn) 使用原則使用原則概念介紹 本節(jié)介紹本節(jié)介紹Kettle中的兩個重要的定義:中的兩個重要的定義: Transformation (轉換)(轉換) 和和 Job(工作),用(工作),用Kettle可以話可以話
7、Transformation 圖和圖和Job圖。圖。 Job與Transformation的差別是:Transformation專注于數(shù)據(jù)的ETL,而Job的范圍比較廣,可以是Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一個Job。Transformation(轉換)定義(轉換)定義 如右圖,如右圖,Transformation主要是由主要是由Step 和和Hop組成。組成。 Transformation主要包括幾個主要包括幾個 原型概念:原型概念:Step、Hop、 InputStream、OutputStream、 Row、Value。下面
8、給出定義。下面給出定義Step(步驟)如右圖的“Table Input”,每個Step就是一個元操作。Hop(跳躍線)連接Step的線,代表了數(shù)據(jù)的流向。InputStream(輸入流)輸入Step的數(shù)據(jù)流OutputStream(輸出流)從Step輸出的數(shù)據(jù)流Row(記錄行)InputStream中存在多個Row,Row存在多個Value。Value(值)值,帶類型的值,例如String類型的值。概念介紹Job(工作)定義(工作)定義 Job Entry(工作實體)執(zhí)行具體的任務(例如調(diào)用轉換) Hop連接Job Entry的線??梢灾付ㄊ欠裼袟l件的執(zhí)行。例如,根據(jù)前一個Job Entry
9、執(zhí)行的結果,判斷是否執(zhí)行這條Hop指向的下一個Job Entry 。 Kettle實戰(zhàn)實戰(zhàn) 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 檢查、調(diào)試、運行檢查、調(diào)試、運行 日志日志 采集采集demo 使用原則使用原則常用常用Step介紹介紹生成字段和空操作 生成記錄功能:用于生成數(shù)據(jù)行用途:一般用來模擬數(shù)據(jù)測試用。 空操作 功能:什么都不做。 用途:1、匯總數(shù)據(jù)集(待匯總的數(shù)據(jù)集必須 結構(字段)一致)2、調(diào)試時作為展現(xiàn)數(shù)據(jù)的節(jié)點常用常用Step介紹介紹Table Input和Table Outputa1表字段名:a,bA2表字段名:a,c在這個demo中可以看出兩點:1、數(shù)據(jù)流(輸入
10、/出流)中的數(shù)據(jù)字段名與生成該數(shù)據(jù)流的Step自動獲取。2、表輸出是按照數(shù)據(jù)流的數(shù)據(jù)自動匹配并且插入到輸出表中的。常用常用Step介紹介紹 字段選擇用于篩選數(shù)據(jù)流中的字段。常用常用Step介紹介紹獲取系統(tǒng)信息 可以通過獲取系統(tǒng)信息獲取系統(tǒng)的一些信息,以及獲取調(diào)用轉換時傳入的參數(shù)。常用常用Step介紹介紹Merge Join MergeJoin Step做的連接運算是在內(nèi)存中運行的。它有一個特殊要求:要求做集合的連接key必須已經(jīng)按相同方式排好序了(無論是用Sql的orderby還是用KETTLE提供的排序記錄Step),要不然會出現(xiàn)不可預知的錯誤,例如右圖。常用常用Step介紹介紹修改后的圖K
11、ettle實戰(zhàn)實戰(zhàn) 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 常用常用Step介紹介紹運行運行 日志日志 采集采集demo 使用原則使用原則檢查、調(diào)試、運行右圖紅框標出的工具欄 運行 預覽 調(diào)試 檢查檢查、調(diào)試、運行 檢查 檢查功能檢查出圖中的應用級錯誤(不能檢查出邏輯錯誤)。點擊 檢查按鈕后彈出下圖:紅色的為錯誤,必須解決。黃色的為警告,可能會引起錯誤,不一定需要解決。檢查、調(diào)試、運行 預覽 能夠看到執(zhí)行完該步驟后的輸出數(shù)據(jù)(有的可能看不到,例如,需要參數(shù)傳入的執(zhí)行步驟)。一般在個別步驟中也有預覽按鈕。檢查、調(diào)試、運行 調(diào)試 調(diào)試轉換,可以輸入?yún)?shù)和設置要觀測的步驟。從中可以看到
12、每個步驟的輸出結果。檢查、調(diào)試、運行 運行 運行后可以看到一下結果。對部分參數(shù)解釋一下:讀:從輸入流讀取的記錄數(shù)。寫:輸出到輸出流的記錄數(shù)。輸入:從數(shù)據(jù)庫讀取的記錄數(shù)。輸出:輸出到數(shù)據(jù)庫的記錄數(shù)。錯誤:執(zhí)行時錯誤數(shù)。激活:Step執(zhí)行的狀態(tài)。時間:執(zhí)行該步驟的時間。速度:該Step處理每行記錄用的時間。Pri/in/out:顯示因為該Step的輸入緩存為空,或者輸出緩存已滿而等待進入休眠的時間。Kettle實戰(zhàn)實戰(zhàn) 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 常用常用Step介紹介紹 檢查、調(diào)試、運行檢查、調(diào)試、運行 采集采集demo 使用原則使用原則日志 在Kettle的日志機制中
13、存儲方式分兩類,一類是存儲在文本日志里,一類是存儲在數(shù)據(jù)庫里。本節(jié)暫時只介紹記錄在日志里的情況。日志日志級別:日志級別:可以點擊可以點擊 記錄配置日志級別。記錄配置日志級別。Nothing不顯示任何輸出。Error只顯示Error。Minimal只記錄必要日志。Basic默認日志級別。Detailed輸出對話級別的日志。Debug輸出調(diào)試級別的日志。Row level每一行的操作都會記錄日志。Kettle實戰(zhàn)實戰(zhàn) 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 常用常用Step介紹介紹 檢查、調(diào)試、運行檢查、調(diào)試、運行 日志日志 使用原則使用原則采集demo 采集demo1和采集demo
14、2說明 兩個demo實現(xiàn)的業(yè)務是一樣的,區(qū)別是demo2多用了幾個step去實現(xiàn)連接功能。意在說明兩點:1、如果一條sql實現(xiàn)不了的,可以通過Kettle提供的step實現(xiàn)。2、Kettle很靈活,所以從性能上考慮,對開發(fā)人員的要求也是挺高的,下面一節(jié)會給出一些原則。采集demo 采集demo1采集demo 采集demo2使用原則 目的目的 Kettle介紹介紹 Kettle實戰(zhàn)實戰(zhàn) 使用原則使用原則使用原則使用原則 盡量使用數(shù)據(jù)庫連接池 盡量提高批處理的commit size 盡量使用緩存,緩存盡量大一些(主要是文本文件和數(shù)據(jù)流) Kettle 是Java 做的,盡量用大一點的內(nèi)存參數(shù)啟動K
15、ettle. 可以使用sql 來做的一些操作盡量用sql Group , merge , stream lookup ,split field 這些操作都是比較慢的,想辦法避免他們.,能用sql 就用sql 插入大量數(shù)據(jù)的時候盡量把索引刪掉 盡量避免使用update , delete 操作,尤其是update , 如果可以把update 變成先delete , 后insert .使用原則使用原則能使用truncate table 的時候,就不要使用delete all row 這種類似sql合理的分區(qū)如果刪除操作是基于某一個分區(qū)的,就不要使用delete row 這種方式(不管是delete sql 還是delete 步驟),直接把分區(qū)drop 掉,再重新創(chuàng)建盡量縮小輸入的數(shù)據(jù)集的大小(增量更新也是為了這個目的)盡量使用數(shù)據(jù)庫原生的方式裝載文本文件(Oracle 的sqlloader , m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司貨款擔保合同范本
- cso公司合同范本
- 專題一第2課五、《軟件系統(tǒng)》教學設計 2023-2024學年青島版(2018)初中信息技術七年級上冊
- 15《我與地壇》教學設計 2024-2025學年統(tǒng)編版高中語文必修上冊
- 修房子木材出售合同范本
- 凍庫工程銷售合同范本
- 公裝合同范本
- 個人郊區(qū)房屋買賣合同范本
- 個人餐廳轉讓合同范本
- 2024年新鄉(xiāng)市長垣市公益性崗位招聘筆試真題
- 《經(jīng)營模式淺談》課件
- 創(chuàng)傷失血性休克中國急診專家共識
- 環(huán)保設備設施風險分析評價記錄及風險分級管控清單
- 疏散路線智能規(guī)劃系統(tǒng)
- 《快遞實務》課件 項目1 走進快遞
- 統(tǒng)編版語文四年級下冊第六單元教材解讀解讀與集體備課課件
- 新教科版六年級下冊科學全冊教案
- 雞肉食品行業(yè)報告
- 顆粒增強鋁基復合材料
- 火車站消防指導培訓課件
- 婦產(chǎn)科全套課件
評論
0/150
提交評論