《KETTLE基础培训》由会员分享,可在线阅读,更多相关《KETTLE基础培训(47页珍藏版)》请在金锄头文库上搜索。
1、Kettle 基础培训基础培训 (一)第1页,共47页。目录一、一、 Kettle 介绍介绍二、二、 Kettle的要求环境(的要求环境(JDK版本)、安装、基本操作。版本)、安装、基本操作。三、三、 Kettle的组件的类型基本说明(作业与转换)的组件的类型基本说明(作业与转换)四、基于表对表的同步四、基于表对表的同步五、基于文件到表的同步五、基于文件到表的同步六、基于表到文件的同步六、基于表到文件的同步七、七、JAVASCRIPT的基本应用的基本应用八、文件八、文件FTP下载、上传。下载、上传。九、作业调用作业、转换。九、作业调用作业、转换。十、启动脚本说明。十、启动脚本说明。十一、十一、
2、JAVA调用作业、转换调用作业、转换十二、使用原则十二、使用原则第2页,共47页。简介ETLETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%80%,这是国内外从众多实践中得
3、到的普遍共识。ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。第3页,共47页。简介KettleKettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据
4、,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation工作流的控制。完成针对数据的基础转换,job则完成整个第4页,共47页。KETTLE的要求环境(的要求环境(JDK版本)、安装、基本操作版本)、安装、基本操作KETTLE要求先安装JDK1.5版本或以上无需安装下载后直接运行spoon.bat即可5第5页,共47页。KETTLE的组件的类型基本说明(作业与转换)Kettle中有两种脚本文件,transformation(转换,后缀为.ktr)和job(作业, 后缀为.kjb),tran
5、sformation完成针对数据的基础转换,好比工厂里的生产流水线,每个组件相当于一个员工;job则完成整个工作流的控制,好比工厂里的管理。如果用记事本打开文件可发现转换和作业都是xml类型文件。6第6页,共47页。KETTLE的组件的类型基本说明(作业与转换)7作业:分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执行前面的再执行后面的,每个步骤执行结果分两种:true(成功)/false(失败),根据返回结果可以控制流程走向。第7页,共47页。KETTLE的组件的类型基本说明(作业与转换)8作业流程图说明第8页,共47页。KE
6、TTLE的组件的类型基本说明(作业与转换)9转换:一传递分复制和分发两种模式。开始所有步骤同时运行,记录会从最前端的步骤向后传递,传递到相应步骤则该记录被该步骤作相应处理,处理完成再把记录往后传递,记录第9页,共47页。KETTLE的组件的类型基本说明(作业与转换)10复制:把一份数据复制成多份,后面步骤各占一份。分发:把一份数据平均分配给后面步骤。第10页,共47页。基于表对表的同步11表对表同步是最基本的同步方式之一实现步骤:一、建立源库连接和目标库连接二、使用表输入组件进行源表数据读取三、对记录进行适配整理四、使用表输出组件输出到目标表第11页,共47页。KETTLE的组件的类型基本说明
7、(作业与转换)12新建一个转换:文件新建转换第12页,共47页。基于表对表的同步13第13页,共47页。基于表对表的同步14第14页,共47页。基于表对表的同步15第15页,共47页。基于表对表的同步16第16页,共47页。基于文件到表的同步17新建一个转换流程:从文件读取记录插入到数据库中第17页,共47页。基于文件到表的同步18第18页,共47页。基于文件到表的同步19第19页,共47页。基于文件到表的同步20第20页,共47页。基于表到文件的同步21新建一个转换实现从表里读取记录生成文件第21页,共47页。基于表到文件的同步22第22页,共47页。基于表到文件的同步23第23页,共47页
8、。基于表到文件的同步24第24页,共47页。JAVASCRIPT的基本应用25第25页,共47页。文件FTP下载、上传26作业:FTP下载从FTP上下载相应文件到指定目录下第26页,共47页。文件FTP下载、上传27第27页,共47页。文件FTP下载、上传28第28页,共47页。文件FTP下载、上传29作业:FTP上传上传本地文件到相应FTP指定目录上第29页,共47页。文件FTP下载、上传30第30页,共47页。作业调用作业、转换31文件新建作业作业可以调用作业,这样方便流程控制。第31页,共47页。作业调用作业、转换32第32页,共47页。作业调用作业、转换33作业也可以调用转换第33页,
9、共47页。作业调用作业、转换34第34页,共47页。启动脚本说明35KETTLE程序启动分两种,一种是作业、一种是转换。作业调用启动脚本: kitchen.sh( kitchen.bat)转换调用启动脚本: pan.sh( pan.bat)第35页,共47页。启动脚本说明36kitchen.sh(span.sh)说明第36页,共47页。启动脚本说明37Kitchen.bat(span.bat)说明第37页,共47页。启动脚本说明38WINDOWS系统下的作业启动脚本写法/file 作业入口路径/level 日志输出等级/logfile 日志输出文件第38页,共47页。启动脚本说明39LINUX
10、系统下的启动脚本写法第39页,共47页。启动脚本说明40转换调动脚本写法WINDOWS和LINUX系统的启动脚本的写法基本一样,就是pan.sh/pan.bat的区别第40页,共47页。Java调用引用Kettle jar包第41页,共47页。Java调用JOB传入变量传入变量JOB文件设置变量:变量变量传递:传递:Variable substitution 选中第42页,共47页。Java调用JOB调用JOBJobMeta jobMeta = new JobMeta(jobPath, null);JVM设置变量:System.getProperties().setProperty(key,
11、value);Job job=new Job(null, jobMeta);job.start();job.waitUntilFinished();第43页,共47页。Java调用KTR传入变量第44页,共47页。Java调用KTR调用ktrTransMeta localTransMeta = localTransMeta = new TransMeta(ktrPath);设置变量localTransMeta.setVariable(key,value)Trans tran=new Trans(localTransMeta )tran.execute(null);tran.waitUntilF
12、inished();第45页,共47页。使用原则可以使用sql 来做的一些操作尽量用sql ; Group , merge , stream lookup ,split field 这些操作都是比较慢的,想办法避免它们.能用sql 就用sql尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete , 后insert .尽量不要用kettle 的calculate 计算步骤,能用数据库本身的sql 就用sql ,不能用sql 就尽量想办法用procedure , 实在不行才是calculate 步骤.能使用truncate table 的时候,就不要使用delete all row 这种类似sql尽量提高批处理的commit size如果删除操作是基于某一个分区的,就不要使用delete row 这种方式;直接truncate 分区( ALTER TABLE tablename TRUNCATE PARTITION PART_1 )第46页,共47页。演讲完毕,谢谢观看!第47页,共47页。