Kettle Spoon.docx

上传人:b****8 文档编号:11034044 上传时间:2023-02-24 格式:DOCX 页数:17 大小:427.03KB
下载 相关 举报
Kettle Spoon.docx_第1页
第1页 / 共17页
Kettle Spoon.docx_第2页
第2页 / 共17页
Kettle Spoon.docx_第3页
第3页 / 共17页
Kettle Spoon.docx_第4页
第4页 / 共17页
Kettle Spoon.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Kettle Spoon.docx

《Kettle Spoon.docx》由会员分享,可在线阅读,更多相关《Kettle Spoon.docx(17页珍藏版)》请在冰豆网上搜索。

Kettle Spoon.docx

KettleSpoon

Kettle简要说明文档

一.Spoon

1.登陆方式

1.1以创建Repository的方式登陆,会把生成的transformation保存到数据库上,在Sybase数据库环境上有存在很多bug,不推荐以该种方式登陆。

1.2以不创建资源库(NoRepository)的方式登陆,会把生成的transformation保存到相应的文件,即以文件方式管理。

以下都是在不创建资源库下的说明!

以Sybase作为数据库!

2.创建连接

例如

3.基本功能

3.1以文本文件作为数据源,以表的方式保存(文本文件中内容为中文时,相应存入到表中的记录为乱码,存入到文件中时不存在中文乱码问题)

双击Textfileinput先选择要作为数据源的文本文件,再点击Add,点面板中Content,去掉Header复选框,点面板中Fields,点Getfields为文本文件设置列,如图1,双击Tableoutput,选择Connection,输入Targettable,点SQL以生成sql语句,再Execute,如图2

图1

图2

3.2以文本文件作为数据源,以文件的方式保存

设置数据源操作与3.1类似,双击Textfileoutput以设置文本文件输出格式,可以点面板中Content列来设置,可去除Separator,Enclosure中内容来维持与源文本文件格式一致,如图3

图3

3.3以Excel文件作为数据源,以表的方式保存(当excel文件中有内容为中文时,相应存入到表中的记录内容为乱码)

双击ExcelInput选择要作为数据源的excel文件并将它Add,点面板中Sheets----Getsheetname(s)…,将相应的sheet加入,如图4;点面板中Fields----Getfieldsfromheaderrow…以得到相应表中的字段,如图5

图4

图5

3.4分别以2个表中的数据作为数据源,并且过滤掉重复的记录,再以表的方式保存(2个作为数据源的表中的字段必须一致)

双击Uniquerows,点击Get以得到上一Step得到的字段,可以对字段进行筛选,如图6

图6

3.5以表的数据作为数据源,根据条件过滤掉记录,再以表的方式保存

双击Filterrows,可以双击选择相应字段,双击可以为字段赋值,双击”+”可以连接下一个条件

图7

3.6以表的数据作为数据源,根据条件过滤掉字段,再以表的方式保存

双击Selectvalues,点击Getfieldstoselect一得到上一个Step中的所有字段并且筛选字段,如图8

图8

3.7以表的数据作为数据源,根据条件将数据存入到目标表

当条件全部相等只作更新,否则将往表中插入数据,如图9

图9

只做更新。

3.8以表的数据作为数据源,对表中字段进行计算后,数据再存入到目标表

双击Calculator进入设置面板,点击Calculation可进入条件表达式界面,如图10

图10

3.9以表的数据作为数据源,对表中字段先进行排序,再分组,数据再存入到目标表(推荐分组前先排序)

双击Sortrows----GetFields并且筛选出排序字段,如图11,双击Groupby,再点击GetFields以筛选出分组字段,点击Getloogupfields以筛选出所要查找的字段,如图12

图11

图12

3.10比如说有这样一个要求,有2个表A,B,A表中有字段a,b,B表中有字段a,c,d,我要得到C表,C表字段是e,f,e字段来源于A表的a,f字段来源于B表的c+d

图13

3.11获取系统信息问题

图14

如图可以将获取的系统信息值赋给变量,该变量可以传向下一个step,在下一个step的sql语句里可以使用该变量,但是预览step的时候出现异常(报空指向错),原因不明

3.12javascriptvalue问题

图15

如图15,使用javascriptvalue可以实现复杂的字段运算,图中a,b分别是来源于上一step的2个字段,upper()方法将字段的值全部转化为大写,转化后可以插入到目标表,如果说有一字段c,该字段是日期类型,c.dat2str(yyyyMMdd),便把c的值转化成”yyyyMMdd”格式的值,可以供下一step使用

3.13调用存储过程问题

(1)如果无输入输出参数

方法一:

可以使用如下图标

“调用DB存储过程”原本是需要一个输入step来作为存储过程的上一个step,否则无法执行,现在已经通过修改源代码实现可直接调用存储过程,存储过程名称原本是[数据库库名称].[存储过程名称]改成[用户角色名].[存储过程名称],如图16

图16

方法二:

可以使用如下图标

需要在图17中写执行存储过程的语句

图17

(2)如果有输入输出参数且输入输出参数的值不来自于上一个step

如第一种情况的方法二

(3)如果有输入输出参数,且输入输出参数的值来自于上一个step,比如来自与系统信息,如下方法

双击”获取系统信息”,将要使用的信息值取一个name,如图18,再双击”SetVariables”,将上一step获得的信息值赋给变量,Variablescopetype是设置变量范围的,如图19,双击”执行SQL脚本”,点击获取字段(此步为必须),然后在SQL窗口中写SQL语句,在语句中使用到上一step变量的时候一律用’?

’代替,顺序和获取系统信息中时的一致,比如此例中va这个变量对应第一个问号,vb这个变量对应第二个问号,顺序关系至关重要!

且必须选择”执行每一行”

图18

图19

图20

3.14int型和varchar型相互转换问题

现已通过修改be.ibridge.kettle.core.database下的Database.java实现相互转换问题,以后可以实现更多类型转换问题

4.注意

4.1程序有时候会突然强制退出,所以要做到随时保存transformation

二.Chef

1.基本功能

1.1定时执行作业

图21

如图21,如果设置定时,请选择”重复”,间隔时间可以按分钟,按天,按周,按月,双击abcm_proc.ktr(abcm_proc.ktr是一个transformation),在文件名处点浏览选择由spoon生成的transformation文件,如图22

图22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

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

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