課程簡介:
有人統計過,在整個數據分析過程里,收集、整理數據的工作大致占全部工作量的90%,建模過程不足10%,可見ETL是數據處理流程中一個非常重要的環節。ETL工程師,在數據倉庫類職位中占有很大比例,而且薪水都不差。IT人一下子轉型數據分析師可能跳躍度比較大難度高,先轉型數據倉庫/ETL工程師再擇機往更高處走是合理選擇之一。在ETL軟件中,使用最多的是開源的Kettle,完全免費,功能和性能不弱于datastage這類商業ETL軟件,使用Kettle和其它開源數據平臺軟件,例如Mysql集群,Hadoop集群等組合在一起,是性價比極高的架構選擇。本課程系統講解Kettle及其秘密。
課程介紹:
ETL (Extract,Transformation,Load)工具是構建數據倉庫、進行數據整合工作所必須使用的工具。目前市面有多種商業 ETL 工具,如Informatica,Datastage等。目前市場上開源且實用的 ETL 工具比較少,Kettle 就是這不多的開源 ETL 工具之一。 本課程將主要講解開源 ETL 工具 Kettle 的基本使用和二次開發方法,并結合實際項目案例,講解 Kettle 如何在實際中應用,以及應用中可能會出現的問題。針對目前大數據的應用情況,本課程也將結合大數據,講述 Kettle 如何支持 Hadoop、HBase、MongoDB、MapReduce 等大數據技術。除了Kettle 的使用,在本課程的后幾個課時,將講述 Kettle 的二次開發: 包括 Kettle 代碼閱讀指導, Kettle API 的說明以及使用方法, Kettle 插件的開發方法。
課程內容:
第一周:ETL 的概念,Kettle 的概念、功能、操作
第二周:Kettle 資源庫、日志、運行方式
第三周:輸入步驟(表輸入、文本文件輸入、XML 文件輸入…)
第四周:輸出步驟(表輸出、更新、刪除、文本文件輸出、XML文件輸出…)
第五周:轉換步驟(過濾、字符串處理、拆分字段、計算器…)
第六周:轉換步驟(字段選擇、排序、增加校驗列、去除重復記錄…)
第七周:應用步驟、流程步驟(處理文件、執行程序、發送郵件、空操作、阻塞步驟、中止等…)
第八周:查詢步驟、連接步驟(數據庫查詢、流查詢、合并記錄、記錄集連接、笛卡爾…)
第九周:腳本步驟(JAVAscript,Java Class、正則表達式…)
第十周:作業項(拷貝、移動、ftp、sftp…)
第十一周:Kettle 的參數和變量、Kettle 集群
第十二周:Kettle 代碼編譯、代碼結構、應用集成、各種配置文件
第十三周:插件開發 – 步驟、作業項
第十四周:作業設計技巧、錯誤處理、調試轉換、循環和分支
第十五周:大數據插件(Hadoop 文件輸入/輸出,HBase輸入/輸出,MapReduce輸入/輸出,MongoDB輸入/輸出)
目標人群:
1. ETL 工程師,Java 開發工程師,
2. 經常要做數據處理的 DBA
3. 有一定數據庫基礎 和 Java 基礎的學生。
課程預期目標:
1. 理解 Kettle 軟件的基本功能。
2. 能使用 Kettle 完成基本的數據處理工作。
3. 了解 Kettle 軟件的一些高級功能
4. 對有Java 開發經驗的同學,對 Kettle 代碼結構有一定了解,能開發一些 Java 的基本插件