1、Kettle SpoonKettle简要说明文档一. Spoon1 . 登陆方式1.1 以创建Repository的方式登陆,会把生成的transformation保存到数据库上,在Sybase数据库环境上有存在很多bug,不推荐以该种方式登陆。 1.2 以不创建资源库(No Repository)的方式登陆,会把生成的transformation保存到相应的文件,即以文件方式管理。以下都是在不创建资源库下的说明!以Sybase作为数据库!2 . 创建连接 例如3 . 基本功能3.1 以文本文件作为数据源,以表的方式保存(文本文件中内容为中文时,相应存入到表中的记录为乱码,存入到文件中时不存在
2、中文乱码问题) 双击 Text file input先选择要作为数据源的文本文件,再点击Add,点面板中Content,去掉Header复选框,点面板中Fields,点Get fields为文本文件设置列,如图1,双击Table output,选择Connection,输入Target table,点SQL以生成sql语句,再Execute,如图2图1图23.2以文本文件作为数据源,以文件的方式保存设置数据源操作与3.1类似,双击Text file output以设置文本文件输出格式,可以点面板中Content列来设置,可去除Separator,Enclosure中内容来维持与源文本文件格式一
3、致,如图3图33.3以Excel文件作为数据源,以表的方式保存(当excel文件中有内容为中文时,相应存入到表中的记录内容为乱码)双击Excel Input选择要作为数据源的excel文件并将它Add,点面板中Sheets-Get sheetname(s),将相应的sheet加入,如图4;点面板中Fields-Get fields from header row以得到相应表中的字段,如图5图4图53.4分别以2个表中的数据作为数据源,并且过滤掉重复的记录,再以表的方式保存(2个作为数据源的表中的字段必须一致)双击Unique rows,点击Get以得到上一Step得到的字段,可以对字段进行筛选
4、,如图6图63.5以表的数据作为数据源,根据条件过滤掉记录,再以表的方式保存双击Filter rows,可以双击选择相应字段,双击可以为字段赋值,双击”+”可以连接下一个条件图73.6以表的数据作为数据源,根据条件过滤掉字段,再以表的方式保存双击Select values,点击Get fields to select一得到上一个Step中的所有字段并且筛选字段,如图8图83.7以表的数据作为数据源,根据条件将数据存入到目标表当条件全部相等只作更新,否则将往表中插入数据,如图9图9只做更新。3.8以表的数据作为数据源,对表中字段进行计算后,数据再存入到目标表双击Calculator进入设置面板,
5、点击Calculation可进入条件表达式界面,如图10图103.9以表的数据作为数据源,对表中字段先进行排序,再分组,数据再存入到目标表(推荐分组前先排序)双击Sort rows-Get Fields并且筛选出排序字段,如图11,双击Group by,再点击Get Fields以筛选出分组字段,点击Get loogup fields以筛选出所要查找的字段,如图12图11 图123.10比如说有这样一个要求,有2个表A,B,A表中有字段a,b,B表中有字段a,c,d,我要得到C表,C表字段是e,f,e字段来源于A表的a,f字段来源于B表的c+d图133.11获取系统信息问题图14如图可以将获取
6、的系统信息值赋给变量,该变量可以传向下一个step,在下一个step的sql语句里可以使用该变量,但是预览step的时候出现异常(报空指向错),原因不明3.12java script value问题图15如图15,使用java script value可以实现复杂的字段运算,图中a,b分别是来源于上一step的2个字段,upper()方法将字段的值全部转化为大写,转化后可以插入到目标表,如果说有一字段c,该字段是日期类型,c.dat2str(yyyyMMdd),便把c的值转化成”yyyyMMdd”格式的值,可以供下一step使用3.13调用存储过程问题(1)如果无输入输出参数方法一:可以使用如
7、下图标“调用DB存储过程”原本是需要一个输入step来作为存储过程的上一个step,否则无法执行,现在已经通过修改源代码实现可直接调用存储过程,存储过程名称原本是数据库库名称.存储过程名称改成用户角色名.存储过程名称,如图16图16方法二:可以使用如下图标需要在图17中写执行存储过程的语句图17(2)如果有输入输出参数且输入输出参数的值不来自于上一个step如第一种情况的方法二(3)如果有输入输出参数,且输入输出参数的值来自于上一个step,比如来自与系统信息,如下方法双击”获取系统信息”,将要使用的信息值取一个name,如图18,再双击”Set Variables”,将上一step获得的信息
8、值赋给变量,Variable scope type是设置变量范围的,如图19,双击”执行SQL脚本”,点击获取字段(此步为必须),然后在SQL窗口中写SQL语句,在语句中使用到上一step变量的时候一律用?代替,顺序和获取系统信息中时的一致,比如此例中va这个变量对应第一个问号,vb这个变量对应第二个问号,顺序关系至关重要!,且必须选择”执行每一行”图18图19图203.14 int型和varchar型相互转换问题现已通过修改be.ibridge.kettle.core.database下的Database.java实现相互转换问题,以后可以实现更多类型转换问题4 . 注意4.1 程序有时候会突然强制退出,所以要做到随时保存transformation二. Chef1 . 基本功能 1.1 定时执行作业图21如图21,如果设置定时,请选择”重复”,间隔时间可以按分钟,按天,按周,按月,双击abcm_proc.ktr(abcm_proc.ktr是一个transformation),在文件名处点浏览选择由spoon生成的transformation文件,如图22图22
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1