映射(子转换)
如果你希望某个转换多次运行,你可以将重复的部分添加到一个映射中。映射是这样一个转换:
1、 指定输入如何从映射输入中到达。
2、 指定输入字段如何转换:字段被添加或者删除。
26 / 42
从结果获取记录
这个步骤返回在一个任务中先前步骤生成的行。你可以进入选择先前步骤生成的元数据字段。
复制记录到结果(字符串)
这个步骤允许你在一个任务中将行数据(内存中的)传递到下一个步骤。
Set Variables(设置变量)
这个步骤允许你在一个任务中或者虚拟机中设置变量。他仅仅可以用一行数据来设置变量值。 下面是可以用的范围设定:
1、 Valid in the virtual machine:整个虚拟机将知道这个变量,转换仅仅可以在单机模式下运行。 2、 Valid in the parent job:变量仅仅在父任务中可用。
3、 Valid in the grand-parent job:变量仅仅在祖父任务中合法。 4、 Valid in the root job:变量仅仅在根任务中合法。
27 / 42
Get Variables(获取变量)
这个步骤允许你获取一个变量,它可以返回行或者附加值到输入行。 备注:你需要指定完整的变量格式${varibale}或者%%variable%%
Get files from result(从以前的结果获取文件)
1、 每次在转换、任务、文件细节、任务条目、步骤等处理、使用或者创建一个文件时,文
件被捕获并且附加到结果中。你可以使用这个步骤访问那些信息。 2、 下面是输出的字段。 字段名 Type filename Path Parentorigin Origin Comment timestamp 类型 String String String String String String Date Somefile.txt C:\\Foo\\Bar\\somefile.txt Process files transformation Text File Input Read by text file input 2006-06023 12:34:56 示例 Normal,Log,Error,Error-line 等 Set files in result
在某种情况下,我们可以操纵输出结果中的文件列表。例如mail任务条目可以使用文件列表来关联邮件,可能你不需要发送所有的文件,你可以在此步骤中指定你想要发送的邮件。
28 / 42
Injector(记录注射器)
注射器主要针对一下人使用:想利用Kettle API和Java来注射记录到转换中。 下面是如何使用它:
1、 你可以使用RowProducer对象来访问一个Trans对象。
2、 你可以参考在包中的使用案例:be.ibridge.kettle.test.rowproducer 3、 使用以下代码
Trans trans = new Trans(…TransMeta); Trans.prepareException(args);
RowProducer rp = trans.addRowProducer(String stepName,int stepCopy)
然后你可以在转换中启动线程,在转换运行的时候注射行。 Trans.startThreads(); …
rp.putRow(Row SomeRowYouHaveToInject); …
Socket reader(套接字读入器)
套接字读入器是通过TCP/IP协议将数据从一个服务器向另一个服务器传输。
29 / 42
套接字输写器(Socket writer)
套接字输写器是通过TCP/IP协议将数据从一个服务器向另一个服务器传输。
聚合记录
这个步骤允许你在所有行的基础上快速的集合行。下面是可用的聚集类型: SUM/AVERAGE/COUNT/MIN/MAX/FIRST(字段的第一个值)/LAST(字段的最后一个值) 字段:聚合类型的字段。
备注:分组步骤也能实现相同的功能,还可以进行分组聚合,此步骤不可以,不推荐使用。
流XML输入(属sax解析,和Get data from xml功能相同)
这个步骤主要提供值的解析,他信赖与SAX解析器,在大文件解析上能够提供更好的性能。它与XML输入非常相似,仅仅在内容和字段制表符上略有不同。
1、 Include filename in:输出中将包含文件名字段。 2、 Rownum in output:输出包含行号 3、 Location(see also):指定xml文件中重复的元素经由的路径。以下的元素列被用来指定元
素及其位置:A:指定一个属性;Ep:指定位置定义的元素;Ea:指定属性定义的元素。例如Ea=Object/class:car,表示属性class的值为car的Object元素。 4、 重复:如果你想重复上一行中的值就是用此选项。 5、 Precision(精度)
6、 Position:Ep=proTypeId2/n ,其中n表示proTypeId2元素处于第n列。A=class/1:class
属性位于第一个位置。
30 / 42