Kettle体系结构与源码分析Word文档格式.docx
- 文档编号:15812637
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:130
- 大小:2.99MB
Kettle体系结构与源码分析Word文档格式.docx
《Kettle体系结构与源码分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《Kettle体系结构与源码分析Word文档格式.docx(130页珍藏版)》请在冰豆网上搜索。
StepMeta类,保存的是Step的一些公共信息的类,每个类的具体的元数据将保存在显示了StepMetaInterface的类里面。
(2)数据集成引擎
数据集成引擎包括Step引擎、Job引擎和数据库访问引擎三大部分,主要负责调用插件,并返回相应信息。
(3)UI
UI显示Spoon这个核心组件的界面,通过xul实现菜单栏、工具栏的定制化,显示插件界面接口元素,其中的TransGraph类和JobGraph类是用于显示转换和Job的类。
●TransGraph类
TransGraph类与显示
选中转换标签后,红框内的编辑区对象对应org.pentaho.di.ui.spoon.trans包中的TransGraph类。
●JobGraph类
JobGraph类与显示
选中Job标签后,红框内的编辑区对象对应org.pentaho.di.ui.spoon.job包中的JobGraph类。
(4)插件管理模块
Kettle是众多“可供插入的地方”(扩展点)和“可以插入的东西”(扩展)共同组成的集合体。
在我们的生活中,电源接线板就是一种“扩展点”,很多“扩展”(也就是电线插头)可以插在它上面。
插件管理引擎主要负责插件的注册,在Kettle中不管是以后的扩展还是系统集成的功能,本质上来讲都是插件,管理方式和运行机制是一致的。
系统集成的功能点也均实现了对应的扩展接口,只是在插接的说明上略有不同。
Kettle的扩展点包括step插件、jobentry插件、Database插件、Partioner插件、debugging插件。
4.功能模块
Kettle的主要包括四大功能模块:
Chef——工作(job)设计工具
(GUI方式);
Kitchen——工作(job)执行器
(命令行方式);
Spoon——转换(transform)设计工具
Span——转换(trasform)执行器
(命令行方式)。
(1)Chef—工作(job)设计器
这是一个GUI工具,操作方式主要通过拖拽。
何谓工作?
多个作业项,按特定的工作流串联起来,形成一项工作。
正如:
我的工作是软件开发。
我的作业项是:
设计、编码、测试!
先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。
1)Chef中的作业项
转换:
指定更细的转换任务,通过Spoon生成,通过Field来输入参数;
SQL:
sql语句执行;
FTP:
下载ftp文件;
邮件:
发送邮件;
检查表是否存在;
检查文件是否存在;
执行shell脚本:
如dos命令。
批处理:
(注意:
windows批处理不能有输出到控制台)。
Job包:
作为嵌套作业使用。
JavaScript执行:
如果有自已的Script引擎,可以很方便的替换成自定义Script,来扩充其功能;
SFTP:
安全的Ftp协议传输;
HTTP方式的上传/下载。
2)工作流
工作流是作业项的连接方式,分为三种:
无条件,成功,失败。
为了方便工作流使用,KETTLE提供了几个辅助结点单元(也可将其作为简单的作业项):
Start单元:
任务必须由此开始。
设计作业时,以此为起点。
OK单元:
可以编制做为中间任务单元,且进行脚本编制,用来控制流程。
ERROR单元:
用途同上。
DUMMY单元:
什么都不做,主要是用来支持多分支的情况。
3)存储方式
支持XML存储,或存储到指定数据库中。
一些默认的配置(如数据库存储位置……),在系统的用户目录下,单独建立了一个.Kettle目录,用来保存用户的这些设置。
4)LogView:
可查看执行日志。
(2)Kitchen—作业执行器
是一个作业执行引擎,用来执行作业。
这是一个命令行执行工具,参数如下:
-rep
:
Repositoryname
任务包所在存储名
-user
Repositoryusername
执行人
-pass
Repositorypassword
执行人密码
-job
Thenameofthejobtolaunch
任务包名称
-dir
Thedirectory(don'
tforgettheleading/or/)
-file
Thefilename(JobXML)tolaunch
-level
Thelogginglevel(Basic,Detailed,Debug,Rowlevel,Error,Nothing)
指定日志级别
-log
Theloggingfiletowriteto
指定日志文件
-listdir
:
Listthedirectoriesintherepository
列出指定存储中的目录结构。
-listjobs:
Listthejobsinthespecifieddirectory
列出指定目录下的所有任务
-listrep
Listthedefinedrepositories
列出所有的存储
-norep
Don'
tlogintotherepository
不写日志
(3)Spoon—转换过程设计器
GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被Chef所包含,作为作业中的一个作业项。
1)Input-Steps:
输入步骤
Textfileinput:
文本文件输入
可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。
Tableinput:
数据表输入
实际上是视图方式输入,因为输入的是sql语句。
当然,需要指定数据源(数据源的定制方式在后面讲一下)
Getsysteminfo:
取系统信息
就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。
GenerateRows:
生成多行。
这个需要匹配使用,主要用于生成多行的数据输入,比如配合Addsequence可以生成一个指定序号的数据列。
XBaseInput
ExcelInput
XMLInput
2)Output-Steps:
输出步聚
Textfileoutput:
文本文件输出。
这个用来作测试蛮好,呵呵。
很方便的看到转换的输出。
Tableoutput:
输出到目的表。
Insert/Update:
目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。
Update:
同上,只是不支持增加操作。
XMLOutput:
XML输出。
3)Look-up:
查找操作
●DataBase
●Stream
●Procedure
●Databasejoin
4)Transform
转换
●Selectvalues
对输入的行记录数据的字段进行更改
(更改数据类型,更改字段名或删除)
数据类型变更时,数据的转换有固定规则,可简单定制参数。
可用来进行数据表的改装。
●Filterrows
对输入的行记录进行指定复杂条件的过滤。
用途可扩充sql语句现有的过滤功能。
但现有提供逻辑功能超出标准sql的不多。
●Sortrows
对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。
●Addsequence
为数据流增加一个序列,这个配合其它Step(Generaterows,rowsjoin),可以生成序列表,如日期维度表(年、月、日)。
●Dummy
不做任何处理,主要用来作为分支节点。
●JoinRows
对所有输入流做笛卡儿乘积。
●Aggregate
聚合,分组处理
●Groupby
分组,用途可扩充sql语句现有的分组,聚合函数。
但我想可能会有其它方式的sql语句能实现。
●JavaScriptvalue
使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。
●RowNormaliser
该步骤可以从透视表中还原数据到事实表,通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。
●Uniquerows
去掉输入流中的重复行,在使用该节点前要先排序,否则只能删除连续的重复行。
●Calculator
提供了一组函数对列值进行运算,用该方式比用户自定义JAVASCRIPT脚本速度更快。
●MergeRows
用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中。
●Addconstants:
增加常量值。
●Rowdenormaliser
同Normaliser过程相反。
●Rowflattener
表扁平化处理,指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。
除了上述基本节点类型外还定义了扩展节点类型
SPLIT
FIELDS:
按指定分隔符拆分字段;
EXECUTESQLSCRIPT:
执行SQL语句;
CUBEINPUT:
CUBE输入;
CUBEOUTPUT:
CUBE输出。
(4)Pan—转换的执行工具
命令行执行方式,可以执行由Spoon生成的转换任务。
同样,不支持调度。
参数与Kitchen类似。
(5)其它
●Connection
可以配置多个数据源,在Job或是Trans中使用,这意味着可以实现跨数据库的任务。
支持大多数市面上流行的数据库。
5.概念模型
Kettle的执行分为两个层次:
Job和Transformation。
两个层次的最主要区别在于数据传递和运行方式。
(1)Transformation(转换)
Transformation(转换)是由一系列被称之为step(步骤)的逻辑工作的网络。
转换本质上是数据流。
下图是一个转换的例子,这个转换从文本文件中读取数据,过滤,然后排序,最后将数据加载到数据库。
本质上,转换是一组图形化的数据转换配置的逻辑结构。
转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kettle 体系结构 源码 分析