KETTLE基础培训(共47张).pptx
Kettle 基础基础培训培训 (一)目录一、一、 Kettle 介绍介绍二、二、 Kettle的的要求环境(要求环境(JDK版本)、安装、基本操作。版本)、安装、基本操作。三、三、 Kettle的的组件的类型基本说明(作业与转换)组件的类型基本说明(作业与转换)四、四、基于表对表的基于表对表的同步同步五、基于文件到表的同步五、基于文件到表的同步六、六、基于表到文件的同步基于表到文件的同步七、七、JAVASCRIPT的基本应用的基本应用八、八、文件文件FTP下载、上传。下载、上传。九、九、作业调用作业、转换。作业调用作业、转换。十、十、启动脚本说明启动脚本说明。十一、十一、JAVA调用作业、转换调用作业、转换十二、使用原则十二、使用原则简介ETLETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么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调用 引用Kettle jar包Java调用JOB传入变量传入变量JOB文件设置变量:变量变量传递:传递:Variable substitution 选中Java调用JOB调用JOBJobMeta jobMeta = new JobMeta(jobPath, null);JVM设置变量:System.getProperties().setProperty(key, value);Job job=new Job(null, jobMeta);job.start();job.waitUntilFinished();Java调用KTR 传入变量Java调用KTR 调用ktrTransMeta localTransMeta = localTransMeta = new TransMeta(ktrPath);设置变量localTransMeta.setVariable(key,value)Trans tran=new Trans(localTransMeta )tran.execute(null);tran.waitUntilFinished();使用原则 可以使用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 )演讲完毕,谢谢观看!