您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > KETTLE基础培训
Kettle基础培训(一)目录一、Kettle介绍二、Kettle的要求环境(JDK版本)、安装、基本操作。三、Kettle的组件的类型基本说明(作业与转换)四、基于表对表的同步五、基于文件到表的同步六、基于表到文件的同步七、JAVASCRIPT的基本应用八、文件FTP下载、上传。九、作业调用作业、转换。十、启动脚本说明。十一、JAVA调用作业、转换十二、使用原则简介ETL•ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(BusinessIntelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。•ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。简介Kettle•Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。•Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。•Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。•Kettle中有两种脚本文件,transformation和job,transformation工作流的控制。完成针对数据的基础转换,job则完成整个KETTLE的要求环境(JDK版本)、安装、基本操作•KETTLE要求先安装JDK1.5版本或以上•无需安装下载后直接运行spoon.bat即可5KETTLE的组件的类型基本说明(作业与转换)•Kettle中有两种脚本文件,transformation(转换,后缀为.ktr)和job(作业,后缀为.kjb),transformation完成针对数据的基础转换,好比工厂里的生产流水线,每个组件相当于一个员工;job则完成整个工作流的控制,好比工厂里的管理。•如果用记事本打开文件可发现转换和作业都是xml类型文件。6KETTLE的组件的类型基本说明(作业与转换)7•作业:分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步聚会先执行前面的再执行后面的,每个步骤执行结果分两种:true(成功)/false(失败),根据返回结果可以控制流程走向。KETTLE的组件的类型基本说明(作业与转换)8•作业流程图说明KETTLE的组件的类型基本说明(作业与转换)9•转换:一传递分复制和分发两种模式。开始所有步骤同时运行,记录会从最前端的步骤向后传递,传递到相应步骤则该记录被该步骤作相应处理,处理完成再把记录往后传递,记录KETTLE的组件的类型基本说明(作业与转换)10•复制:把一份数据复制成多份,后面步骤各占一份。•分发:把一份数据平均分配给后面步骤。基于表对表的同步11•表对表同步是最基本的同步方式之一•实现步骤:一、建立源库连接和目标库连接二、使用表输入组件进行源表数据读取三、对记录进行适配整理四、使用表输出组件输出到目标表KETTLE的组件的类型基本说明(作业与转换)12•新建一个转换:文件->新建->转换基于表对表的同步13基于表对表的同步14基于表对表的同步15基于表对表的同步16基于文件到表的同步17•新建一个转换•流程:从文件读取记录插入到数据库中基于文件到表的同步18基于文件到表的同步19基于文件到表的同步20基于表到文件的同步21•新建一个转换•实现从表里读取记录生成文件基于表到文件的同步22基于表到文件的同步23基于表到文件的同步24JAVASCRIPT的基本应用25文件FTP下载、上传26•作业:FTP下载•从FTP上下载相应文件到指定目录下文件FTP下载、上传27文件FTP下载、上传28文件FTP下载、上传29•作业:FTP上传•上传本地文件到相应FTP指定目录上文件FTP下载、上传30作业调用作业、转换31•文件->新建->作业•作业可以调用作业,这样方便流程控制。作业调用作业、转换32作业调用作业、转换33•作业也可以调用转换作业调用作业、转换34启动脚本说明35•KETTLE程序启动分两种,一种是作业、一种是转换。•作业调用启动脚本:kitchen.sh(kitchen.bat)•转换调用启动脚本:pan.sh(pan.bat)启动脚本说明36•kitchen.sh(span.sh)说明启动脚本说明37•Kitchen.bat(span.bat)说明启动脚本说明38•WINDOWS系统下的作业启动脚本写法•/file作业入口路径•/level日志输出等级•/logfile日志输出文件启动脚本说明39•LINUX系统下的启动脚本写法启动脚本说明40•转换调动脚本写法•WINDOWS和LINUX系统的启动脚本的写法基本一样,就是pan.sh/pan.bat的区别Java调用•引用Kettlejar包Java调用JOB传入变量JOB文件设置变量:变量传递:Variablesubstitution选中Java调用JOB调用JOBJobMetajobMeta=newJobMeta(jobPath,null);JVM设置变量:System.getProperties().setProperty(key,value);Jobjob=newJob(null,jobMeta);job.start();job.waitUntilFinished();Java调用KTR•传入变量Java调用KTR•调用ktrTransMetalocalTransMeta=localTransMeta=newTransMeta(ktrPath);设置变量localTransMeta.setVariable(key,value)Transtran=newTrans(localTransMeta)tran.execute(null);tran.waitUntilFinished();使用原则•可以使用sql来做的一些操作尽量用sql;Group,merge,streamlookup,splitfield这些操作都是比较慢的,想办法避免它们.能用sql就用sql•尽量避免使用update,delete操作,尤其是update,如果可以把update变成先delete,后insert.•尽量不要用kettle的calculate计算步骤,能用数据库本身的sql就用sql,不能用sql就尽量想办法用procedure,实在不行才是calculate步骤.•能使用truncatetable的时候,就不要使用deleteallrow这种类似sql•尽量提高批处理的commitsize•如果删除操作是基于某一个分区的,就不要使用deleterow这种方式;直接truncate分区(ALTERTABLEtablenameTRUNCATEPARTITIONPART_1)
本文标题:KETTLE基础培训
链接地址:https://www.777doc.com/doc-958992 .html