數據層交換和高性能并發處理(開源ETL大數據治理工具--KETTLE使用及二次開發 )_北風網 http://www.ibeifeng.com/goods-313.html
ETL是什么?為什么要使用ETL?KETTLE是什么?為什么要學KETTLE?
ETL是數據的抽取清洗轉換加載的過程,是數據進入數據倉庫進行大數據分析的載入過程,目前流行的數據進入倉庫的過程有兩種形式,一種是進入數據庫后再進行清洗和轉換,另外一條路線是首先進行清洗轉換再進入數據庫,我們的ETL屬于后者。
大數據的利器大家可能普遍說是hadoop,但是大家要知道如果我們不做預先的清洗和轉換處理,我們進入hadoop后僅通過mapreduce進行數據清洗轉換再進行分析,垃圾數據會導致我們的磁盤占用量會相當大,這樣無形中提升了我們的硬件成本(硬盤大,內存小處理速度會很慢,內存大cpu性能低速度也會受影響),因此雖然hadoop理論上解決了爛機器拼起來解決大問題的問題,但是事實上如果我們有更好的節點速度必然是會普遍提升的,因此ETL在大數據環境下仍然是必不可少的數據交換工具。
市場上流行的ETL很多,比如informatica等,但是開源的比較完善的卻不是很多,而其中比較有名的要說是pentaho開源的kettle了,該工具被廣泛用,并且開源的產品我們從中不僅可以學到ETL的簡單應用,并且可以學習到ETL的原理以及通過源碼學到更多的東西。
亮點一:KETTLE應用廣泛,僅僅學會使用就可以找到一份不錯的工作。
亮點二:本課程不僅講解簡單實用,同時講解二次開發并且配有開發模板,提升工作質量。
亮點三:滲透了大數據的一些處理方法,與目前流行的hadoop配合使用。
亮點四:分析KETTLE源碼,即使對ETL興趣不大,至少可以了解國外開源項目的一些源碼,并且KETTLE本身也使用了很多開源項目,因此可以從該工具上學到更多東西。
通過課程可以學到什么:
1.ETL過程原理
2.數據流引擎的原理
3.元數據和數據進行動態數據交換的設計
4.并發運算的原理
課時安排:(15課時)
1.ETL簡介—開源KETTLE(1課時)
介紹KETTLE在大數據應用的位置和作用。
主要講解ETL是什么,KETTLE進行簡單介紹,并且使用例子進行KETTLE的使用介紹。
介紹KETTLE流程的部署。
2.KETTLE使用(1課時)
詳細介紹KETTLE的spoon使用
KETTLE的trans和job入門
KETTLE的日志和調試工具使用
- KETTLE之Step流程設計(3課時)
編寫例子介紹KETTLE常用的轉換、清洗組件
主要完成以下插件:
輸入插件:
文本文件輸入、生成記錄、表輸入、Fixed file input、Get data from XML
輸出插件:
XML輸出、刪除、插入/更新、文本文件輸出、更新、表輸出
轉換插件:
Add a checksum、Replace in string、Set field value、Unique rows(HashSet)、增加常量、增加序列、字段選擇、拆分字段
Flow插件:
Abort、Switch/case、空操作、過濾記錄
腳本插件:
Modified Java Script Value、執行SQL腳本
查詢插件:
File exists、Table exists、調用DB存儲過程
- KETTLE之Job流程設計(2課時)
編寫例子介紹KETTLE常用的作業組件
主要完成以下插件:
通用插件:
START、DUMMY、Transformation、Success
文件管理插件:
Copy Files、Compare folders、Create a folder、Create file、Delete files、Delete folders、File Compare、Move Files、Wait for file、Zip file、Unzip file
條件插件:
Check Db connections、Check files locked、Check if a folder is empty、Check if files exist、File Exists、Table exists、Wait for
腳本插件:
Shell、SQL
Utility插件:
Ping a host、Truncate tables
文件傳輸插件:
Upload files to FTPS、Get a file with FTPS、FTP Delete
Kettle與Hadoop的聯合使用
- KETTLE之流程性能調優與監控(1課時)
介紹KETTLE的流程監控功能
介紹KETTLE的性能優化方法
- KETTLE之嵌入開發(1課時)
編寫程序介紹KETTLE的流程如何嵌入到我們的java應用中
主要包括java嵌入trans以及job流程
- KETTLE之自定義Step、Job插件制作(3課時)
編寫Step和Job模板,并給大家作為二次開發的基礎工程使用,提高大家的開發效率。
編寫程序說明Step和Job插件的開發方法。
- KETTLE之數據同步方案(1課時)
介紹5種數據同步方案,并且這5種方案都是支持異構數據同步的。
包括全量快速同步方案和增量同步方案
- KETTLE之分區、集群以及原理(1課時)
介紹KETTLE的分區原理,并且講解配置使用。
介紹KETTLE的集群原理,并且講解配置使用,以及監控方法。
- KETTLE之源碼分析與二次開發(1課時)
介紹KETTLE的SRC導入ECLIPSE方法,以及打包和運行方法。
分析KETTLE的包結構以及運行流程,講解KETTLE的運行原理。