KETTLE使用培训ppt课件_第1页
KETTLE使用培训ppt课件_第2页
KETTLE使用培训ppt课件_第3页
KETTLE使用培训ppt课件_第4页
KETTLE使用培训ppt课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、Kettle运用培训部门:EOMS讲师:刘晓源目录目的Kettle引见Kettle实战运用原那么目的 了解Kettle的作用与运用。Kettle引见目的Kettle引见总体引见家族引见概念定义Kettle实战运用原那么本节目的:1、知道Kettle是什么,能做什么。2、知道Kettle的一些概念。总体引见 Kettle是一个ETLExtract-Transform-Load 工具集,它为用户管理来自不同数据库的数据,描画本人要做的数据操作提供图形化的操作界面。总体引见运用Kettle能为我们工程带来以下益处:对于业务人员 转换和任务Job以步骤流的方式呈现,更加直观,业务人员与开发人员沟通时可

2、以把留意力集中在业务上。对于开发人员 1、图形化界面更加直观,开发人员上手快,加快开发效率。 即使是二次开发,图形化的步骤展现使二次开发人员更快进入开发形状,不用把精神浪费在代码阅读和业务逻辑分析上。 2、Kettle的javascript步骤运转开发人员经过编写JavaScript代码实现业务逻辑,并且允许在JavaScript调用java文件来实现复杂数据采集过滤逻辑。这样,开发人员只须把留意力放在写业务采集逻辑上就可以了,降低了开发采集的难度。 3、Kettle提供方便的调试工具和详细的日志文件,方便开发人员跟踪调试。 4、Kettle提供计算I/O、数据库读/写次数工具,方便开发人员在

3、开发完成后察看,以便性能调优。总体引见要在工程上更好的发扬Kettle的优势,还有以下一些问题待处理:1、调用方式问题:Kettle只提供了简单的调用方式。本人本身不提供轮训等工具。目前测试经过的只用两种:一种是在图形界面上点运转。另一种是在命令行方式输入运转命令。假设要实现轮训采集,需求经过Kettle的API实现调用,即需求交融Kettle。并且假设涉及到及时采集,除了交融问题,对采集的算法和性能也有很高的要求。2、性能问题:由于Kettle只是一个很灵敏的采集工具,实现同一个采集的方式可以有很多种,性能的瓶颈还是在采集算法上后面还有一些提高性能的原那么,所以为了更好的运用Kettle,需

4、求整理一些常用的采集算法和采集模板。3、Kettle本身的问题:Kettle属于开源产品,该产品还在不断的完善中,虽然有一个比较详细的运用文档,但是并不是很详细,很多细节必需上论坛找或更多的只能经过看源代码并且写demo来测实验证。而且由于Kettle的实现是基于多线程的,存在一定的线程bug。Kettle引见目的Kettle引见总体引见家族引见概念定义Kettle实战运用原那么KETTLE引见 Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。SPOON 允许他经过图形界面来设计ETL转换过程Transformation。例如,从EOMS系统抽取信息,并把这些信

5、息存储到一个文本文件里的转换义务如下:KETTLE引见KETTLE引见PAN 允许他批量运转由Spoon设计的ETL转换 (例如运用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。 CHEF 允许他创建义务Job。 义务经过允许每个转换,义务,脚本等等,更有利于自动化更新数据仓库的复杂任务。义务经过允许每个转换,义务,脚本等等。义务将会被检查,看看能否正确地运转了。(下面是一个Chef的义务图)KITCHEN 允许他批量运转用Chef设计的jobs。例如用schedulerKITCHEN 允许他批量运用由Chef设计的义务 (例如运用一个时间调度器)。KITCHEN也是一个后台运转

6、的程序。Kettle引见目的Kettle引见总体引见家族引见概念定义Kettle实战运用原那么概念引见 本节引见Kettle中的两个重要的定义: Transformation 转换 和 Job任务,用Kettle可以话Transformation 图和Job图。 Job与Transformation的差别是:Transformation专注于数据的ETL,而Job的范围比较广,可以是Transformation,也可以是Mail、SQL、Shell、FTP等等,甚至可以是另外一个Job。Transformation转换定义 如右图,Transformation主要是由Step 和Hop组成。

7、Transformation主要包括几个 原型概念:Step、Hop、 InputStream、OutputStream、 Row、Value。下面给出定义Step步骤如右图的“Table Input,每个Step就是一个元操作。Hop腾跃线衔接Step的线,代表了数据的流向。InputStream输入流输入Step的数据流OutputStream输出流从Step输出的数据流Row记录行InputStream中存在多个Row,Row存在多个Value。Value值值,带类型的值,例如String类型的值。概念引见Job任务定义Job Entry任务实体执行详细的义务例如调用转换Hop衔接Job

8、 Entry的线。可以指定能否有条件的执行。例如,根据前一个Job Entry 执行的结果,判别能否执行这条Hop指向的下一个Job Entry 。 Kettle实战目的Kettle引见Kettle实战常用Step引见检查、调试、运转日志采集demo运用原那么常用Step引见生成字段和空操作生成记录功能:用于生成数据行用途:普通用来模拟数据测试用。空操作 功能:什么都不做。 用途:1、汇总数据集待汇总的数据集必需 构造字段一致2、调试时作为展现数据的节点常用Step引见Table Input和Table Outputa1表字段名:a,bA2表字段名:a,c在这个demo中可以看出两点:1、数据

9、流输入/出流中的数据字段名与生成该数据流的Step自动获取。2、表输出是按照数据流的数据自动匹配并且插入到输出表中的。常用Step引见字段选择用于挑选数据流中的字段。常用Step引见获取系统信息 可以经过获取系统信息获取系统的一些信息,以及获取调用转换时传入的参数。常用Step引见Merge Join MergeJoin Step做的衔接运算是在内存中运转的。它有一个特殊要求:要求做集合的衔接key必需已经按一样方式排好序了无论是用Sql的orderby还是用KETTLE提供的排序记录Step,要不然会出现不可预知的错误,例如右图。常用Step引见修正后的图Kettle实战目的Kettle引见

10、Kettle实战常用Step引见检查、调试、运转日志采集demo运用原那么检查、调试、运转右图红框标出的工具栏 运转 预览 调试 检查检查、调试、运转 检查 检查功能检查出图中的运用级错误不能检查出逻辑错误。点击 检查按钮后弹出以下图:红色的为错误,必需处理。黄色的为警告,能够会引起错误,不一定需求处理。检查、调试、运转 预览 可以看到执行完该步骤后的输出数据有的能够看不到,例如,需求参数传入的执行步骤。普通在个别步骤中也有预览按钮。检查、调试、运转 调试 调试转换,可以输入参数和设置要观测的步骤。从中可以看到每个步骤的输出结果。检查、调试、运转 运转 运转后可以看到一下结果。对部分参数解释一

11、下:读:从输入流读取的记录数。写:输出到输出流的记录数。输入:从数据库读取的记录数。输出:输出到数据库的记录数。错误:执行时错误数。激活:Step执行的形状。时间:执行该步骤的时间。速度:该Step处置每行记录用的时间。Pri/in/out:显示由于该Step的输入缓存为空,或者输出缓存已满而等待进入休眠的时间。Kettle实战目的Kettle引见Kettle实战常用Step引见检查、调试、运转日志采集demo运用原那么日志 在Kettle的日志机制中存储方式分两类,一类是存储在文本日志里,一类是存储在数据库里。本节暂时只引见记录在日志里的情况。日志日志级别:可以点击 记录配置日志级别。Not

12、hing不显示任何输出。Error只显示Error。Minimal只记录必要日志。Basic默认日志级别。Detailed输出对话级别的日志。Debug输出调试级别的日志。Row level每一行的操作都会记录日志。Kettle实战目的Kettle引见Kettle实战常用Step引见检查、调试、运转日志采集demo运用原那么采集demo采集demo1和采集demo2阐明 两个demo实现的业务是一样的,区别是demo2多用了几个step去实现衔接功能。意在阐明两点:1、假设一条sql实现不了的,可以经过Kettle提供的step实现。2、Kettle很灵敏,所以从性能上思索,对开发人员的要求也

13、是挺高的,下面一节会给出一些原那么。采集demo采集demo1采集demo采集demo2运用原那么目的Kettle引见Kettle实战运用原那么运用原那么尽量运用数据库衔接池尽量提高批处置的commit size尽量运用缓存,缓存尽量大一些主要是文本文件和数据流Kettle 是Java 做的,尽量用大一点的内存参数启动Kettle.可以运用sql 来做的一些操作尽量用sql Group , merge , stream lookup ,split field 这些操作都是比较慢的,想方法防止他们.,能用sql 就用sql插入大量数据的时候尽量把索引删掉尽量防止运用update , delete 操作,尤其是update , 假设可以把update 变成先delete , 后insert .运用原那么能运用truncate table 的时候,就不要运用delete all row 这种类似sql合理的分区假设删除操作是基于某一个分区的,就不要运用delete row 这种方式不论是delete sql 还是delete 步骤,直接把分区drop 掉,再重新创建尽量减少输入的数据集的大小增量更新也是为了这个目的尽量运用数据库原生的方式装载文本文件(Oracle 的sqlloader , mysql 的bulk

温馨提示

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

评论

0/150

提交评论