kettle使用总结.docx
- 文档编号:8386766
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:38
- 大小:6.01MB
kettle使用总结.docx
《kettle使用总结.docx》由会员分享,可在线阅读,更多相关《kettle使用总结.docx(38页珍藏版)》请在冰豆网上搜索。
kettle使用总结
Kettle使用笔记
一、基本概念:
1.1、资源库
保存kettle脚本或转换、存放数据库连接的地方,可以建立多个数据库连接,使用时就无需每次重复建立
1.2、数据库连接(dblinks)
连接数据库的功能,需处理数据库中的数据时创建,可连接Oracle、SqlServer、MySQL、DB2等
1.3、转换(trans)
处理数据的ETL过程,里面存放许多处理数据的组件,完成后保存会生成一个ktl文件。
1.4、作业(job)
自动、定时执行转换的步骤的名称,可以在自动执行转换的过程添加参数进行控制。
1.5、步骤(steps)
转换和作用的每个操作都是一个步骤。
二、工具栏:
2.1、资源库概念
保存kettle脚本或转换的地方,相当于myeclipes的workspace,另一种保存kettle脚本或流程的方法是需要保存的时候用文件保存,点击另存为出现
(PS:
打开kettle的时候加载的也是资源库)
2.2、资源库位置
Tools->数据库->连接数据库
2.3、数据库连接
创建数据库连接的时候会同时创建数据库连接?
右键点击新建转换->点击主对象树->右键DB连接->新建数据库连接
(PS:
创建数据库后可以点击Test判断数据库连接创建成功了没!
,OracleRAC环境下的数据库连接创建数据库连接的方法不同)
三、基本操作:
3.1、轮流发送模式和复制发送模式的区别
如果获取的数据必须同时进行多步处理(一种方式是将数据复制后处理,一种是获取的数据进行轮流的间隔处理),设置方式为:
选中DataGrid–>点击右键–>数据发送->选择轮流发送模式或复制发送模式
下图为复制处理的方式:
红框选中的标签为复制处理
3.2、分离步骤的方法
比如下图中分离出步骤”删除”的方法:
选中”删除”->点击右键->点击分离步骤
3.3、过滤错误数据的方法
采集的数据保存到数据库的时候如果有错误就,整个ETL处理流程就会停止,可以用过滤错误的方法将错误的数据写到文本中,保证ETL流程继续执行
步骤:
在连接”表输出”和“文本文件输出2”的时候选择”
ErrorHandingofstep”效果如下图(PS:
可以明确是哪个字段,那条数据出现的错误)
3.4、查询步骤中数据详情的方法
比如查看下图中”表输出”步骤的数据情况的步骤:
选中”表输出”->点击右键->选择显示输入\输出字段
四、转换组件介绍:
4.1、核心对象-输入目录下组件
4.1.1、表输入组件及属性
4.1.1.1允许延迟转换
像Oracled的BLOB类型字段,需要的时候开始不加载这些数据,最后输出的时候才进行
4.1.1.2替换SQL语句里的变量(只在Job里面应用)
配置需注意的地方:
1、SQL语句的条件必须用${}符合关联起来
2、替换SQL语句里的变量必须勾选
3、Job中的参数组件的设置及转换必须指明是哪个转换
4.1.1.3从步骤插入数据
配置需注意的地方:
1、从”获取系统信息”组件中输入的参数名称必须和表输入的字段名相同
2、表输入的where条件中的值用”?
”代替
3、从步骤插入数据必须勾选
4、获取系统信息组件中的参数类型必须选“命令行参数1”
5、执行JOB后,在参数输入栏中输入你的参数值
4.1.1.4表输入组件里的执行每一行?
(必须和从步骤插入数据选项一起使用)
配置需注意的地方:
1、从”DataGrid”组件中输入的参数名称必须和表输入的字段名相同.且该字段有多个值
2、表输入的where条件中的值用”?
”代替
3、从步骤插入数据、执行每一行?
两个选项必须勾选
4.1.1.5记录数量限制
如果查询的数据有多条,可选择”记录数量限制”选项进行查询数据的数量进行限制,比如只取100条。
4.1.2、DataGrid组件
DataGrid组件可以直接从文件中获取数据:
(在Meta中输入filename、在Data中输入文件路径和文件名,可以输入多个)
作用:
测试用的表结构和数据:
双击后进行编辑(不用从数据库中取表机构和)
Meta:
测试用的表结构
Data:
编辑测试用的数据
4.1.3、Excel输入组件
1、用通配符匹配xls文件的方法:
在文件或目录项中选择目录或文件,点击增加按钮将文件或目录增加到选中的文件项中,在通配符号项中输入”.*.\.xls”,点击显示文件名称按钮,会列出所选目录下的所有xls文件,选择你需要的文件即可。
(或输入“file*.*.\.xls”匹配已file开头的所有xls文件)
2、工作表TAB页的作用:
列出你选择的xls中所有的sheet页面,选择你需要的sheet页面
3、字段TAB页的作用:
点击获取来自头部数据的字段可以显示你选择的xls中sheet页面的字段项,可以点击预览记录来预览xls中的数据。
4.1.4、GetdatafromXML输入组件
4.1.5、XMLInputSteam(StAX)输入组件
4.1.6、生成记录组件
生成记录组件作用:
生成测试的数据,和DataGrid组件作用类似(区别是生成记录组件一次可以生成多条记录,在限制属性里面配置)
4.2、核心对象-输出目录下组件
4.2.1、表输出组件
1、选中tt这个表,点击鼠标右键可以查询tt这个表的记录信息,或者点击右上角的Actions这个按钮
2、勾选Specifydatabasefields后,点击Getfields按钮可以对源数据字段和目的数据字段进行匹配
3、勾选剪裁表字段选项,不勾选的话,输出表的组件中数据会累加,勾选后,输出表插入数据前会将输出表清空后,再继续插入
4.2.2、MicrosoftExcelOutput(MicrosoftExcelWriter)组件
MicrosoftExcelOutput是输出的excel2003版本,MicrosoftExcelWriter是输出的excel2007版本,功能同样
双击MicrosoftExcelOutput组件后
1、字段中需点击获取字段
2、文件选项中文件名选项选择输出excel的目录并为其命名
内容TAB目录下的Splitevery...rows选项说明:
填入数字后,如果获取的数据条数大于填入的数字,Kettle工具会自动将数据按你填入的数值拆分成多个excel文件
4.2.3、XML输出组件
1、在文件的TAB页里面的文件名称项中输入xml文件的目录名称
2、在字段TAB页里面点击获取字段
内容TAB目录下的父XML元素、记录XML元素可以换成你自己的XML节点字段
4.2.4、文本文件输出组件
文件TAB目录下的PSoutputtoservlet选项:
不输出到文件而输出到流里面
字段TAB目录下的”TrimType”选项,可选是否去掉空格
4.2.5、更新组件
Skiplookup选项说明:
只更新符合条件的记录,比如输入中有3条记录,需更新2条记录,则Skiplookup必须选,否则kettle脚本报错
4.2.6、删除组件
4.2.7、插入、更新组件
更新字段说明:
更新字段要选择目标表的所有字段(因为如果字段没有的话,不会进行插入操作)。
不执行任何更新选项说明:
勾选上后,如果值有差异,不会进行更新操作,但如果记录条数有差异,会进行插入操作
4.2.8、Synchronizeaftermerge组件
说明:
AdvancedTAB目录下的值是固定的3个值:
new\changed\deleted区别只是你需不需要进行处理
4.3、核心对象-Utility目录下组件
4.3.1、Writetolog组件
功能:
将转换中步骤的结果打印到日志控制台
4.3.2、Clonerow组件
Clonerow组件属性说明:
Nrclones:
每条记录克隆的条数;
Addcloneflagtooutput?
:
是否添加一个flag标记位
Cloneflagfield:
克隆标记位字段的字段名
Addclonenumtooutput?
:
是否添加一个统计克隆记录条数的字段
Clonenumfield:
统计克隆条数的字段名
4.3.3、Delayrow组件
Delayrow组件:
设置延迟时间的组件
PS:
该组件是每一条数据都延迟你设置的时间
4.3.4、Mail组件
PS:
你发件邮箱的SMTP选项必须勾选,否则发送不了邮件(QQ的登录邮箱->设置->账户->搜索SMTP将其选项勾上)
Mail组件的源数据设置:
Mail组件的设置:
4.4、核心对象-Flow目录下组件
4.4.1、过滤记录组件
过滤记录组件属性说明:
Send'true'datatostep:
过滤的正确数据的操作步骤
Send'false'datatostep:
过滤的错误数据的操作步骤
Thecondition:
在该选项中选择输入源数据字段、判断条件、判断值
PS:
Send'true'datatostep和Send'false'datatostep属性都必须有值
4.4.2、Switch/Case组件
Switch/Case组件各属性说明:
Fieldnametoswitch:
选择你要判断的字段
Casevaluedatatype:
你选择的判断字段的类型
Casevalue中value、Targetstep:
value中填入你要判断的值,Targetstep中填入满足这个值的操作
Defaulttargetstep:
如果不满足Casevalue中的任何一个值的操作
4.4.3、空操作(什么也不做)组件
空操作(什么也不做)组件作用:
该组件没有作用,不知道开发这个组件是干嘛用的!
4.4.4、BlockingStep组件
BlockingStep组件:
阻塞组件,其作用是:
必须等待BlockingStep组件之前的数据处理完后,才会执行BlockingStep组件后面的操作。
PSallrows?
属性:
将阻塞的数据保存到内存或文件中,等待BlockingStep组件前面的数据处理完后才允许通过所有的数据
4.4.5、Identifylastrowinastream组件
Identifylastrowinastream组件作用:
判断该条记录是否是最后一条记录,并将判断结果输出出来
4.4.6、Abort组件
Abort组件:
是一个终止组件,当满足Abort组件设置的条件时,整个转换过程就会被终止
4.5、核心对象-转换目录下组件
4.5.1、行转列组件
4.5.2、值映射组件
值映射组件功能:
根据字典转换为对应的值
4.5.3、Replaceinstring组件
Replaceinstring组件功能:
在输出的name字段中用aa替换掉code字段中00的字符
Replacewithfield属性:
用某个字段的值替换掉
4.5.4、Setfieldvalue组件
Setfieldvalue组件作用:
用指定字段的值代替另外一个字段的值
4.5.5、Setfieldvaluetoaconstant组件
Setfieldvaluetoaconstant组件作用:
用指定的常量值替换掉你指定字段的值
4.5.6、Splitfieldtorows组件
Splitfieldtorows组件作用:
切分含有指定符合的字段,形成新的字段
4.5.7、Stringoperations组件
Stringoperations组件作用:
对string类型字段操作的组件(去空格、大小写转换、拼接)
4.5.8、Stringscut组件
Stringscut组件作用:
对string类型字段进行剪切处理(获取从Cutfrom位到Cutto位的字符结果)
4.5.9、增加常量组件
增加常量组件作用:
增加一个常量字段,字段的值为增加的值
4.5.10、增加序列组件
增加序列组件作用:
增加一个序列字段,序列字段的值为序列值
起始值可配置为获取到的最大序列值:
如:
${MAX_ID}
4.5.11、RowNormaliser组件
RowNormaliser组件作用:
将行的值转换成多列
4.5.12、拆分字段组件
拆分字段组件作用:
将一个含多个字符的值进行拆分形成新的字段值
4.5.13、去除重复记录组件(Uniquerows(HashSet)组件)
去除重复记录组件:
(该组件的输入值必须对去重的字段进行排序,顺序、倒序都可以)
“增加计数器到输出?
”属性作用:
统计去重后还剩的每个字段的记录数
Uniquerows(HashSet)组件:
该组件的功能也是去重,但该组件无需排序
4.5.14、字段选择组件
字段选择组件可以用“选择和修改”或“移除”两种方式对数据源的字段进行挑选,达到只保留自己所需要字段的目的
“元数据”选项的作用:
对源数据进行数据标准化的调整(包括转换类型、修改字段长度)
4.5.15、排序记录组件
排序记录组件可以设置内存使用的百分比和内存中存储的最大记录数
4.5.16、行扁平化组件
行扁平化组件作用:
将多行记录转换成一行记录形成多个字段
4.6、核心对象-脚本目录下组件
PS:
查看脚本目录下组件中方法的使用方法和参数情况:
选中你需要用的方法->点击右键->点击Sample
4.6.1、ModifiedJavaScriptValue组件
ModifiedJavaScriptValue组件:
JS脚本组件
PS:
如果想将ModifiedJavaScriptValue组件中定义对象的值输出到下一个组件,则必须将定义的对象在组件的下部字段中定义
PS:
ModifiedJavaScriptValue组件中字段中“Replacevalue'Filedanme'or'Renameto'”属性非常重要,他表示是否用你定义的字段替换掉数据源中的字段
4.6.2、UserDefinedJavaClass组件
UserDefinedJavaClass组件:
可以在该组件中用java编写业务逻辑(可以自己写组件)
4.6.3、UserDefinedJavaExpression组件
PS:
可以将自己写的JAVA方法打包成jar包,然后将该jar包放在kettle的kettle4.3\distrib\libext目录下,然后就可以在UserDefinedJavaExpression组件中调用该java方法(调用方法是:
TestUtil.add(age,age)其中TestUtil的jar包的名称,add是jar包里面的方法),kettle中导入包以后,必须重新启动kettle.
UserDefinedJavaExpression组件:
在组件中,可以写简单的表达式
4.6.4、执行SQL脚本组件
执行SQL脚本组件:
返回执行后的SQL语句记录数,把返回的记录数统计到”包含状态的字段”属性里面(不会返回你想查询的表记录值)
PS:
组件中的变量“?
”必须用单引号引用起来,否则报错
执行SQL脚本组件数据源:
执行SQL脚本组件需配置的地方:
4.6.5、ExecuterowSQLscript组件
ExecuterowSQLscript组件:
和执行SQL脚本组件功能类似。
PS:
这个组件的结果测试的结果是不准确的!
4.7、核心对象-连接目录下组件
4.7.1、合并记录组件
4.8、核心对象-作业目录下组件
4.8.1、SetVariables组件
SetVariables组件作用:
将源数据的值当做参数值输入到转换的步骤中去
4.9、核心对象-查询目录下组件
4.9.1、数据库查询组件
数据库查询组件属性说明:
如果查询失败,不要忽略这一行:
应该是要忽略这一行。
Failonmultipleresult?
:
如果出现错误,这个转换就会停止。
4.9.2、数据库连接组件
数据库连接组件中的SQL语句中的表是想要连接的表名
Theparameterstouse:
组件的源数据中的字段,必须和组件中SQL语句的变量字段相同
Outjoin?
:
不管副表(组件中SQL语句中的表)有没有数据,都会连接起来输出
4.9.3、调用DB存储过程组件
该组件的结果:
返回一个结果集
五、JOB组件介绍:
打开job组件的方法:
Newfile–>Job
5.1、核心对象-通用目录下组件介绍
5.1.1、START组件
JOB的起始组件,是JOB必须的,无需配置
5.1.2、Setvariables组件
JOB中传入参数的组件
5.1.3、Transformation组件
指定转换文件的组件(即通过Transformation组件,指定你想定时执行脚本的组件)、可以多个转换顺序执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- kettle 使用 总结