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的日志和调试工具使用



 



 



3. 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存储过程



 



 



4. 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的联合使用



 



 



5. KETTLE之流程性能调优与监控(1课时)



 



>介绍KETTLE的流程监控功能



>介绍KETTLE的性能优化方法



 



 



6. KETTLE之嵌入开发(1课时)



 



>编写程序介绍KETTLE的流程如何嵌入到我们的java应用中



主要包括java嵌入trans以及job流程



 



 



7. KETTLE之自定义Step、Job插件制作(3课时)



 



>编写Step和Job模板,并给大家作为二次开发的基础工程使用,提高大家的开发效率。



>编写程序说明Step和Job插件的开发方法。



 



 



8. KETTLE之数据同步方案(1课时)



 



>介绍5种数据同步方案,并且这5种方案都是支持异构数据同步的。



包括全量快速同步方案和增量同步方案



 



 



9. KETTLE之分区、集群以及原理(1课时)



 



>介绍KETTLE的分区原理,并且讲解配置使用。



>介绍KETTLE的集群原理,并且讲解配置使用,以及监控方法。



 



 



10. KETTLE之源码分析与二次开发(1课时)



 



>介绍KETTLE的SRC导入ECLIPSE方法,以及打包和运行方法。



>分析KETTLE的包结构以及运行流程,讲解KETTLE的运行原理。