ImageVerifierCode 换一换
格式:DOCX , 页数:130 ,大小:2.99MB ,
资源ID:2901597      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2901597.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Kettle体系结构与源码分析.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Kettle体系结构与源码分析.docx

1、Kettle体系结构与源码分析Kettle程序分析1.简介ETL是数据抽取(Extract)、转换(Transform)、装载(Load)的过程。Kettle是一款国外开源的ETL工具,有两种脚本文件transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。2.相关概念Job:一个作业,由不同逻辑功能的entry组件构成,数据从一个entry组件传递到另一个entry组件,并在entry组件中进行相应的处理。Transformation:完成针对数据的基础转换,即一个数据转换过程。Entry:实体,即job型组件。用来完成特定功能应

2、用,是job的组成单元、执行单元。Step:步骤,是Transformation的功能单元,用来完成整个转换过程的一个特定步骤。Hop:工作流或转换过程的流向指示,从一个组件指向另一个组件,在kettle源工程中有三种hop,无条件流向、判断为真时流向、判断为假时流向。3.体系结构kettle平台是整个系统的基础,包括元数据管理引擎、数据集成引擎、UI和插件管理模块。(1)元数据管理引擎元数据管理引擎管理ktr、kjb或者元数据库,插件通过该引擎获取基本信息,主要包括TransMeta、JobMeta和StepMeta三个类。TransMeta类,定义了一个转换(对应一个.ktr文件),提供了

3、保存和加载该文件的方法;JobMeta类,同样对应于一个工作(对应一个.kjb文件),提供保存和加载方法;StepMeta类,保存的是Step的一些公共信息的类,每个类的具体的元数据将保存在显示了StepMetaInterface的类里面。(2)数据集成引擎数据集成引擎包括Step引擎、Job引擎和数据库访问引擎三大部分,主要负责调用插件,并返回相应信息。(3)UIUI显示Spoon这个核心组件的界面,通过xul实现菜单栏、工具栏的定制化,显示插件界面接口元素,其中的TransGraph类和JobGraph类是用于显示转换和Job的类。TransGraph类TransGraph类与显示选中转换

4、标签后,红框内的编辑区对象对应org.pentaho.di.ui.spoon.trans包中的TransGraph类。JobGraph类JobGraph类与显示选中Job标签后,红框内的编辑区对象对应org.pentaho.di.ui.spoon.job包中的JobGraph类。(4)插件管理模块Kettle是众多“可供插入的地方”(扩展点)和“可以插入的东西”(扩展)共同组成的集合体。在我们的生活中,电源接线板就是一种“扩展点”,很多“扩展”(也就是电线插头)可以插在它上面。插件管理引擎主要负责插件的注册,在Kettle中不管是以后的扩展还是系统集成的功能,本质上来讲都是插件,管理方式和运行

5、机制是一致的。系统集成的功能点也均实现了对应的扩展接口,只是在插接的说明上略有不同。Kettle的扩展点包括step插件、job entry插件、Database插件、Partioner插件、debugging插件。4.功能模块Kettle的主要包括四大功能模块:Chef工作(job)设计工具(GUI方式);Kitchen工作(job)执行器(命令行方式);Spoon转换(transform)设计工具(GUI方式);Span转换(trasform)执行器(命令行方式)。(1)Chef工作(job)设计器这是一个GUI工具,操作方式主要通过拖拽。何谓工作?多个作业项,按特定的工作流串联起来,形成

6、一项工作。正如:我的工作是软件开发。我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。1)Chef中的作业项转换:指定更细的转换任务,通过Spoon生成,通过Field来输入参数;SQL:sql语句执行;FTP:下载ftp文件;邮件:发送邮件;检查表是否存在;检查文件是否存在;执行shell脚本:如dos命令。批处理:(注意:windows批处理不能有输出到控制台)。Job包:作为嵌套作业使用。JavaScript执行:如果有自已的Script引擎,可以很方便的替换成自定义Script,来扩充其功能;SFTP:安全的Ftp协议传输;

7、HTTP方式的上传/下载。2)工作流工作流是作业项的连接方式,分为三种:无条件,成功,失败。为了方便工作流使用,KETTLE提供了几个辅助结点单元(也可将其作为简单的作业项):Start单元:任务必须由此开始。设计作业时,以此为起点。OK单元:可以编制做为中间任务单元,且进行脚本编制,用来控制流程。ERROR单元:用途同上。DUMMY单元:什么都不做,主要是用来支持多分支的情况。3)存储方式支持XML存储,或存储到指定数据库中。一些默认的配置(如数据库存储位置),在系统的用户目录下,单独建立了一个.Kettle目录,用来保存用户的这些设置。4)LogView:可查看执行日志。(2)Kitche

8、n作业执行器是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,参数如下: -rep : Repository name任务包所在存储名 -user : Repository username执行人 -pass : Repository password执行人密码 -job : The name of the job to launch任务包名称 -dir : The directory (dont forget the leading / or /) -file : The filename (Job XML) to launch -level : The logging level

9、(Basic, Detailed, Debug, Rowlevel, Error, Nothing)指定日志级别 -log : The logging file to write to指定日志文件 -listdir: List the directories in the repository列出指定存储中的目录结构。 -listjobs : List the jobs in the specified directory列出指定目录下的所有任务 -listrep: List the defined repositories列出所有的存储 -norep : Dont log into the

10、repository不写日志(3)Spoon转换过程设计器 GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被Chef所包含,作为作业中的一个作业项。1)Input-Steps:输入步骤Text file input:文本文件输入可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。Table input:数据表输入实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下)Get system info:取系统信息就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。Generate Rows:生成多行。这个

11、需要匹配使用,主要用于生成多行的数据输入,比如配合Add sequence可以生成一个指定序号的数据列。XBase InputExcel InputXML Input2)Output-Steps:输出步聚Text file output:文本文件输出。这个用来作测试蛮好,呵呵。很方便的看到转换的输出。Table output:输出到目的表。Insert/Update:目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。Update:同上,只是不支持增加操作。XML Output:XML输出。3)Look-up:查找操作Data BaseStreamProcedureDatabase j

12、oin4)Transform转换Select values对输入的行记录数据的字段进行更改(更改数据类型,更改字段名或删除)数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。Filter rows对输入的行记录进行指定复杂条件的过滤。用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。Sort rows对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。Add sequence为数据流增加一个序列,这个配合其它Step(Generate rows, rows join),可以生成序列表,如日期维度表(年、月、日)。Dummy不做

13、任何处理,主要用来作为分支节点。Join Rows对所有输入流做笛卡儿乘积。Aggregate聚合,分组处理Group by分组,用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。Java Script value使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。Row Normaliser该步骤可以从透视表中还原数据到事实表,通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。Unique rows去掉输入流中的重复行,在使用该节点前要先排序,否则只能删除连续的重复行。Calculator提供了一组函数对列值

14、进行运算,用该方式比用户自定义JAVA SCRIPT脚本速度更快。Merge Rows用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中。Add constants:增加常量值。Row denormaliser同Normaliser过程相反。Row flattener表扁平化处理,指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。除了上述基本节点类型外还定义了扩展节点类型SPLITFIELDS:按指定分隔符拆分字段;EXECUTE SQL SCRIPT:执行SQL语句;CUBE INPUT:CUBE输入;CUBE OUTPUT:CUBE输出。(4)Pan转

15、换的执行工具命令行执行方式,可以执行由Spoon生成的转换任务。同样,不支持调度。参数与Kitchen类似。(5)其它Connection可以配置多个数据源,在Job或是Trans中使用,这意味着可以实现跨数据库的任务。支持大多数市面上流行的数据库。5.概念模型Kettle的执行分为两个层次:Job和Transformation。两个层次的最主要区别在于数据传递和运行方式。(1)Transformation(转换)Transformation(转换)是由一系列被称之为step(步骤)的逻辑工作的网络。转换本质上是数据流。下图是一个转换的例子,这个转换从文本文件中读取数据,过滤,然后排序,最后将数据加载到数据库。本质上,转换是一组图形化的数据转换配置的逻辑结构。转

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1