文本文件输入(text input):读取大量不同的文本文件。大多是通过工具生成的CSV文件。
表输入(table Input):常用来利用连接和SQL,从数据中读取信息,自动生成基本的SQL语句。
获取系统信息(get system info):这个步骤从 Kettle 环境中获取信息。
生成行(Generate Rows ):这个步骤输出一定数量的行,缺省为空。可选包括一定数量的静态字段。
Cube输入(文件反序列化)(De-serialize from file):从二进制 Kettle Cube 文件中读取数据行。 备注:这个步骤仅仅用来存储短期数据。不同版本之间不保证文件的格式一样。
XBase输入: 使用这一步可以读取大多数被称为 XBase family派生的 DBF文件。
Excel输入:利用这个步骤可以从 Kettle 支持的系统的 Excel文件里面读取数据。
XML输入:这个步骤允许你读取存储在 XML 文件中的数据。它也提供一个接口,你可以定义你想读取的文件名、XML 文件的数据重复部分、获取的字段等。你可以指定元素或属性字段。
获取文件名(Get File Names):这个步骤可以获取系统的文件名信息。
文本文件输出(Text File Output):
表输出(Table output):这个步骤可以存储信息到数据库表中。
插入/更新(Insert/Update):这个步骤利用查询关键字在表中搜索行。如果行没有找到,就插入行。如果能被找 到,并且要被更新的字段没有任何改变,就什么也不做。如果有不同,行就会被更新。
更新(Update ):这个步骤类似于插入/更新步骤,除了对数据表不作插入操作之外。它仅仅执行更新操作。
删除(Delete):这个步骤类似于上一步,除了不更新操作。所有的行均被删除。
Cube output(序列化到文件)(Serialize to file):这一步骤存储数据到一个二进制文件。这个步骤有个优势就是回读的时候,文本文件的内容不需要解析。这是因为元数据也同时存储在 CUBE 文件里面。
XML输出:这个步骤允许你从源中写入行到一个或者多个 XML 文件。
EXCEL输出:利用这个步骤,在 Kettle 支持的系统中,你可以写入数据到一个或者多个Excel 文件中。
Access 输出(Microsoft Access Output): 允许你在转换中创建一个新的 Access 数据库文件作为输出。
数据库查询(Database lookup):这个步骤类型允许你在数据库表中查找值。
流查询(Stream lookup):这个步骤类型允许你从其它步骤中查询信息。首先,“源步骤”的数据被读到内存中,然后被用来从主要的流中查询数据。
调用数据库存储过程(Call DB Procedure):这个步骤允许你运行一个数据库存储过程,获取返回结果。
HTTP 客户端(HTTP Cient):HTTP 客户端根据一个附带条件的基准 URL,来调用一个简单的调用。
字段选择 (Select values) :这个步骤常常用来 选择字段 重命名字段 指定字段的长度或者精度
下面是三个不同标签的功能:
选择和修改:指定需要流到输出流中的字段的精确顺序和名称
删除:指定必须从输出流中删除的字段
元数据:修改元数据字段的名称、类型、长度和精度
过滤记录(Filter rows):这个步骤允许你根据条件和比较符来过滤记录。 一旦这个步骤连接到先前的步骤中,你可以简单的单击“<field>”,“=”和“<value>” 区域来构建条件。
排序记录(Sort rows):这个步骤利用你指定的字段排序行,无论他们是按照升序还是降序。
备注:当行数超过 5000 行的时候,Kettle 使用临时文件来排序行。
添加序列(Add sequence):这个步骤在流中增加一个序列。一个序列是在某个起始值和增量的基础上,经常改变的整数值。你可以使用数据库的序列,也可以使用 Kettle 决定的序列。
备注:Kettle 序列在同一个转换中是唯一使用的。每一次转换运行的时候,序列的值又会重新循环一次(从开始值开始)
空操作-什么都不做(Dummy-do nothing):这个操作什么都不做。它的主要作用是,在你想测试什么的时候,充当一个占位符。例如有一个转换,你至少需要两个彼此连接的步骤。如果你想测试文本文件输入步骤,你可以将它连接到一个 Dummy 步骤。
行转列(Row Normaliser):这个步骤转动表,标准化数据。
拆分字段(Split Fields):这个步骤允许你根据分隔符来拆分字段。
去除重复记录(Unique rows):这个步骤从输入流中称移除重复的记录。
分组(Group By):这个步骤允许你通过定义分组的字段来计算值。
例如:计算产品的平均销售额,获取库存的黄色衬衫的数量等等。
设置为空值(Null if):如果某个字符串的值等于指定的值,设置那个值为空。
计算器(Calculator ):这个步骤提供一个功能列表,可以在字段值上运行。
计算器的一个重要优势是,它有着几倍于常用的 JavaScript 脚本的速度。
增加 XML (XML Add ):这个步骤允许你将在 XML 中的行字段内容编码,XML 以字符串字段的形式添加到行中。
增加常量(Add constants ):这个步骤很简单,主要是添加常量到流中。
它的使用也很容易:用字符串形式指定名称,类型和值。利用选择的数据类型指定转换格式。
行转列(Row Denormaliser ):这个步骤允许你通过查询键值对来反向规格化数据。也可以立即转换数据类型。
行扁平化(Flattener ):这个步骤允许你扁平化预备的数据。
值映射(Value Mapper ):这个步骤简单的映射字符串,从一个值映射到另一个值。通常你想解中转换表的问题,不管怎么说,这是一种可选的方案:简单的将转换表作一部分。
例如:如果你想替换 Language codes,你可以:
使用的字段名:LanuguageCode 目标字段名:LanguageDesc
源值/目标值:EN/English,FR/French,NL/Dutch,ES/Spanish,DE/German,…
被冻结的步骤(Blocking step ):它冻结所有的输出,直到从上一步骤来的最后一行数据到达,最后一行数据将发送到下一步。你可以使用这个步骤触发常用插件、存储过程和 Java Script等等。
记录关联(笛卡尔输出)(Join Rows-Cartesian Product ):这个步骤允许你组合输入流中的所有行(笛卡尔输出)。
数据库连接(Database Join ):这个步骤允许你使用先前步骤的数据,运行一个数据库查询。
能够指定查询参数:在 SQL 查询中使用“?” ; 在 SQL 查询中使用数据网格中的字段
合并记录(Merge rows ):这个步骤允许你比较两个行流。如果你想在两个不同的时间比较比较数据,这是非常有用的。它常被用于数据仓库源系统没有包含最后更新日期的情况。
两个行流被合并,一个是引用流(旧数据),一个比较流(新数据)。每次都是行的最后版本通过进入下一步骤。行有以下标记:
“identical”:关键字在两个流中都存在,并且值相同
“changed”: 关键字在两个流中都存在,但是一个或者更多的值不同
“new”:引用流中没有找到关键字
“deleted”: 比较流中没有找到关键字
比较流中的数据进入下一步骤,除非在“删除“的情况。
存储合并(Stored Merge ):这个步骤合并来自多个输入步骤的数据行,并且这些行用指定的关键字排序。
合并连接(Merge Join) :这个步骤将来自两个不同的步骤输入的数据执行一个高效的合并。合并选项包括INNER、LEFT OUTER、RIGHT OUTER、FULL OUTER。
备注:这个步骤将输入的行按指定的字段存储
Java Script 值(Java Script Value ):这个步骤允许你用 JavaScript 语言做复杂的运算。使用的 JavaScript 引擎是 Rhino 1.5R5。
改进的 Java Script 值(Modified Java Script Value ):这个步骤是“Javascript Values”的进改版本,它可以提供更好的效率,也更容
易使用。
执行 SQL 语句(Execute SQL script ):在这个步骤中你可以执行 SQL 脚本,或者在转换初始化的时候执行,或者在步骤的每一个输入行执行。
维度更新/查询(Dimension lookup/update ):
联合更新/查询(Combination lookup/update ):这个步骤允许你在一个 junk-dimesion 表里存储信息。
映射(Mapping ):如果你希望某个转换多次运行,你可以将重复的部分添加到一个映射中。映射是一个这样的转换:指定输入如何从映射输入中到达 ;指定输入字段如何转换:字段被添加或者删除
从结果获取记录(Get rows from result ):这个步骤返回在一个任务中先前步骤生成的行。你可以进入选择先前步骤生成的元数据字段。
复制记录到结果(Copy rows to result ):这个步骤允许你在一个任务中将行数据(内存中的)传递到下一个步骤
设置变量(Set Variable):这个步骤允许你在一个任务中或者虚拟机中设置变量。它仅仅可以用一行数据来设置变量值。
获取变量(Get Variable ):这个步骤允许你获取一个变量,它可以返回行或者附加值到输入行。
备注:你需要指定完整的变量格式${variable}或者%%variable%%。
从以前的结果获取文件(Get files from result ):每次在转换、任务、文件细节、任务条目、步骤等处理、使用或者创建一个文件时,文件被捕获并且附加到结果中。你可以使用这个步骤访问那些信息。
复制文件名到结果(Set files in result):在某种情况下,我们可以操纵输出结果中的文件列表。例如 mail 任务条目可以使用文件列表来关联邮件,可能你不需要发送所有的文件,你可以在此步骤中指定你想要发送的邮件。
记录注射器(Injector ):注射器主要是针对以下人使用:想利用 Kettle API 和 JAVA 来注射记录到转换中。
套接字读入器(Socket Reader):套接字读入器是通过 TCP/IP 协议将数据从一个服务器向另一个服务器传输。
套接字输写器(Socket Writer):套接字输写器是通过 TCP/IP 协议将数据从一个服务器向另一个服务器传输。
聚合行(Aggregate Rows ):这个步骤允许你在所有行的基础上快速的聚集行。
流 XML 输入(Streaming XML Input):这个步骤主要提供值的解析,它信赖于 SAX 解析器,在大文件解析上能提供更好的性能。
它与 XML 输入非常相似,仅仅在内容和字段制表符上略有不同。
中止(Abort ):这个步骤允许你在观察输入的时候中止步骤。它的主要用途是错误处理,在一定数量的行流过错误的连接时中止转换。
Oracle 批量装载(Oracle bulk loader ):这个步骤允许你大批量加载数据到 Oracle 数据库,它将用一个正确的装载格式,然后调用 Oracle 的 SQL*Loader 数据加载工具加载到指定的表中。