KETTLE使用培训(共38张)(PPT 38页)_第1页
KETTLE使用培训(共38张)(PPT 38页)_第2页
KETTLE使用培训(共38张)(PPT 38页)_第3页
KETTLE使用培训(共38张)(PPT 38页)_第4页
KETTLE使用培训(共38张)(PPT 38页)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Kettle使用培训部门:EOMS讲师:刘晓源第1页,共38页。目录目的Kettle介绍Kettle实战使用原则第2页,共38页。目的 了解Kettle的作用与使用。第3页,共38页。Kettle介绍目的Kettle介绍总体介绍家族介绍概念定义Kettle实战使用原则本节目标:1、知道Kettle是什么,能做什么。2、知道Kettle的一些概念。第4页,共38页。总体介绍 Kettle是一个ETL(Extract-Transform-Load )工具集,它为用户管理来自不同数据库的数据,描述自己要做的数据操作提供图形化的操作界面。第5页,共38页。总体介绍使用Kettle能为我们项目带来以下好

2、处:对于业务人员 转换和工作(Job)以步骤流的方式呈现,更加直观,业务人员与开发人员沟通时可以把注意力集中在业务上。对于开发人员 1、图形化界面更加直观,开发人员上手快,加快开发效率。 即使是二次开发,图形化的步骤展现使二次开发人员更快进入开发状态,不用把精力浪费在代码阅读和业务逻辑分析上。 2、Kettle的javascript步骤运行开发人员通过编写JavaScript代码实现业务逻辑,并且允许在JavaScript调用java文件来实现复杂数据采集过滤逻辑。这样,开发人员只须把注意力放在写业务采集逻辑上就可以了,降低了开发采集的难度。 3、Kettle提供方便的调试工具和详细的日志文件

3、,方便开发人员跟踪调试。 4、Kettle提供计算I/O、数据库读/写次数工具,方便开发人员在开发完成后观察,以便性能调优。第6页,共38页。总体介绍要在项目上更好的发挥Kettle的优势,还有以下一些问题待解决:1、调用方式问题:Kettle只提供了简单的调用方式。自己本身不提供轮训等工具。目前测试通过的只用两种:一种是在图形界面上点运行。另一种是在命令行模式输入运行命令。如果要实现轮训采集,需要通过Kettle的API实现调用,即需要融合Kettle。并且如果涉及到及时采集,除了融合问题,对采集的算法和性能也有很高的要求。2、性能问题:由于Kettle只是一个很灵活的采集工具,实现同一个采

4、集的方式可以有很多种,性能的瓶颈还是在采集算法上(后面还有一些提高性能的原则),所以为了更好的使用Kettle,需要整理一些常用的采集算法和采集模板。3、Kettle本身的问题:Kettle属于开源产品,该产品还在不断的完善中,虽然有一个比较详细的使用文档,但是并不是很详细,很多细节必须上论坛找或更多的只能通过看源代码并且写demo来测试验证。而且由于Kettle的实现是基于多线程的,存在一定的线程bug。第7页,共38页。Kettle介绍目的Kettle介绍总体介绍家族介绍概念定义Kettle实战使用原则第8页,共38页。KETTLE介绍 Kettle家族目前包括4个产品:Spoon、Pan

5、、CHEF、Kitchen。SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。例如,从EOMS系统抽取信息,并把这些信息存储到一个文本文件里的转换任务如下:第9页,共38页。KETTLE介绍第10页,共38页。KETTLE介绍PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。 CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。(下面是一个Chef的任务

6、图)KITCHEN 允许你批量运行用Chef设计的jobs。(例如用scheduler)KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。第11页,共38页。Kettle介绍目的Kettle介绍总体介绍家族介绍概念定义Kettle实战使用原则第12页,共38页。概念介绍 本节介绍Kettle中的两个重要的定义: Transformation (转换) 和 Job(工作),用Kettle可以话Transformation 图和Job图。 Job与Transformation的差别是:Transformation专注于数据的ETL

7、,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一个Job。Transformation(转换)定义 如右图,Transformation主要是由Step 和Hop组成。 Transformation主要包括几个 原型概念:Step、Hop、 InputStream、OutputStream、 Row、Value。下面给出定义Step(步骤)如右图的“Table Input”,每个Step就是一个元操作。Hop(跳跃线)连接Step的线,代表了数据的流向。InputStream(输入流)输入Step的数据流Output

8、Stream(输出流)从Step输出的数据流Row(记录行)InputStream中存在多个Row,Row存在多个Value。Value(值)值,带类型的值,例如String类型的值。第13页,共38页。概念介绍Job(工作)定义Job Entry(工作实体)执行具体的任务(例如调用转换)Hop连接Job Entry的线。可以指定是否有条件的执行。例如,根据前一个Job Entry 执行的结果,判断是否执行这条Hop指向的下一个Job Entry 。 第14页,共38页。Kettle实战目的Kettle介绍Kettle实战常用Step介绍检查、调试、运行日志采集demo使用原则第15页,共38

9、页。常用Step介绍生成字段和空操作生成记录功能:用于生成数据行用途:一般用来模拟数据测试用。空操作 功能:什么都不做。 用途:1、汇总数据集(待汇总的数据集必须 结构(字段)一致)2、调试时作为展现数据的节点第16页,共38页。常用Step介绍Table Input和Table Outputa1表字段名:a,bA2表字段名:a,c在这个demo中可以看出两点:1、数据流(输入/出流)中的数据字段名与生成该数据流的Step自动获取。2、表输出是按照数据流的数据自动匹配并且插入到输出表中的。第17页,共38页。常用Step介绍字段选择用于筛选数据流中的字段。第18页,共38页。常用Step介绍获

10、取系统信息 可以通过获取系统信息获取系统的一些信息,以及获取调用转换时传入的参数。第19页,共38页。常用Step介绍Merge Join MergeJoin Step做的连接运算是在内存中运行的。它有一个特殊要求:要求做集合的连接key必须已经按相同方式排好序了(无论是用Sql的orderby还是用KETTLE提供的排序记录Step),要不然会出现不可预知的错误,例如右图。第20页,共38页。常用Step介绍修改后的图第21页,共38页。Kettle实战目的Kettle介绍Kettle实战常用Step介绍检查、调试、运行日志采集demo使用原则第22页,共38页。检查、调试、运行右图红框标出

11、的工具栏 运行 预览 调试 检查第23页,共38页。检查、调试、运行 检查 检查功能检查出图中的应用级错误(不能检查出逻辑错误)。点击 检查按钮后弹出下图:红色的为错误,必须解决。黄色的为警告,可能会引起错误,不一定需要解决。第24页,共38页。检查、调试、运行 预览 能够看到执行完该步骤后的输出数据(有的可能看不到,例如,需要参数传入的执行步骤)。一般在个别步骤中也有预览按钮。第25页,共38页。检查、调试、运行 调试 调试转换,可以输入参数和设置要观测的步骤。从中可以看到每个步骤的输出结果。第26页,共38页。检查、调试、运行 运行 运行后可以看到一下结果。对部分参数解释一下:读:从输入流

12、读取的记录数。写:输出到输出流的记录数。输入:从数据库读取的记录数。输出:输出到数据库的记录数。错误:执行时错误数。激活:Step执行的状态。时间:执行该步骤的时间。速度:该Step处理每行记录用的时间。Pri/in/out:显示因为该Step的输入缓存为空,或者输出缓存已满而等待进入休眠的时间。第27页,共38页。Kettle实战目的Kettle介绍Kettle实战常用Step介绍检查、调试、运行日志采集demo使用原则第28页,共38页。日志 在Kettle的日志机制中存储方式分两类,一类是存储在文本日志里,一类是存储在数据库里。本节暂时只介绍记录在日志里的情况。第29页,共38页。日志日

13、志级别:可以点击 记录配置日志级别。Nothing不显示任何输出。Error只显示Error。Minimal只记录必要日志。Basic默认日志级别。Detailed输出对话级别的日志。Debug输出调试级别的日志。Row level每一行的操作都会记录日志。第30页,共38页。Kettle实战目的Kettle介绍Kettle实战常用Step介绍检查、调试、运行日志采集demo使用原则第31页,共38页。采集demo采集demo1和采集demo2说明 两个demo实现的业务是一样的,区别是demo2多用了几个step去实现连接功能。意在说明两点:1、如果一条sql实现不了的,可以通过Kettle

14、提供的step实现。2、Kettle很灵活,所以从性能上考虑,对开发人员的要求也是挺高的,下面一节会给出一些原则。第32页,共38页。采集demo采集demo1第33页,共38页。采集demo采集demo2第34页,共38页。使用原则目的Kettle介绍Kettle实战使用原则第35页,共38页。使用原则尽量使用数据库连接池尽量提高批处理的commit size尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流)Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle.可以使用sql 来做的一些操作尽量用sql Group , merge , stream lookup ,sp

15、lit field 这些操作都是比较慢的,想办法避免他们.,能用sql 就用sql插入大量数据的时候尽量把索引删掉尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete , 后insert .第36页,共38页。使用原则能使用truncate table 的时候,就不要使用delete all row 这种类似sql合理的分区如果删除操作是基于某一个分区的,就不要使用delete row 这种方式(不管是delete sql 还是delete 步骤),直接把分区drop 掉,再重新创建尽量缩小输入的数据集的大小(增量更新也是为了这个目的)尽量使用数据库原生的方式装载文本文件(Oracle 的sqlloader , mysql 的bulk loader 步骤)尽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论