Kettle(一)转换,步骤,跳接线

术语定义:

Transformation-----转换

Step----------------步骤

Hops----------------跳接线

一个步骤是KETTLE中的最小执行单元,用于实现指定的单一逻辑任务。

一个转换是一批步骤组成的网状结构,用于实现一个相对完整的任务,转换,实际上定义了数据的流向。先看一个例子:

上图是一个转换,它从文本文件中读取数据,然后对其进行过滤,排序,最后将结果数据加载到一个关系型数据库中的一张表中。在数据过滤的过程中,当遇到错误时,数据会流向空操作。

转换,本质上是一张定向图,它描绘了数据转换逻辑的一个集合。在kettle中,转换文件的后缀是.ktr。

与转换相关的两个核心组件是步骤和跳接线:

步骤:是转换的一个构建块,比如文本文件输入输出步骤。在KETTLE中,大约有140个步骤,并基于功能进行分组,比如输入步骤,输出步骤,脚本步骤等等。转换中的每一个步骤用于执行特定的操作,比如进行输入操作,进行排序操作等等,用户可以编辑配置转换,以实现自身需求的功能。

跳接线:用于连接转换中的各个步骤,并将前一个或前多个步骤的元数据传递到下一个步骤中。在上图中,看起来每个步骤是依次执行的,其实并不是这样。跳接线在决定数据在步骤间的流向时并不依赖数据执行体(即步骤)的顺序。当启动转换时,每个步骤都会创建各个的线程并推送传递数据。

【注意】

  所有步骤在启动和运行时都是并行的,因此步骤间的初始化顺序是不固定的。这也就是为什么,在前一个步骤中设置的变量不能在后续的步骤中使用。

双击步骤可对其进行编辑,按住shift+鼠标左键可以将步骤进行连接。

一个步骤可以拥有多个连接,转换中的数据流可以在其内的多个步骤间流通,在KETTLE的IDE中,跳接线由箭头表示,箭头的方向决定了数据的流向。当一个步骤的结果集被推送到多个步骤时,数据可以以复制的方式传递,也可以以分发的方式传递。复制的方式即每个后续的步骤收到的数据都是上一步骤的完整结果集,分发方式即每个后续的步骤收到的数据是上一步骤次序结果集,比如步骤A以分发的方式向步骤B和C推送数据,则B收到的数据中A结果集的1,3,5。。号记录,C收到的数据是A结果集的2,4,6。。号记录。

/******************************外星人乔丹拍板时间***************************************/

由于转换中的步骤的启动顺序不固定,且以并行的方式独立的运行在各自的线程内,所以前步骤设置的变量在后步骤中可能

获取不到,而针对每个步骤的产出,即输出结果,则可以由跳接线推送到下一个步骤中。

所以,在所有步骤启动完成之前,不能确保后续步骤拿到前一步骤的数据,而当所有步骤都处于运行状态,即都启动完成之后,

则可以由跳接线确保后续步骤可以拿到前一步骤的输出结果。

Kettle(一)转换,步骤,跳接线,布布扣,bubuko.com

时间: 2024-10-10 22:58:12

Kettle(一)转换,步骤,跳接线的相关文章

kettle子转换即映射

kettle子转换即映射 子转换是非常好的特性,可以实现整个转换重用:所以如果你需要拷贝.粘贴一些相同的步骤到多个其他转换中,就可以考虑使用子转换(即映射),可以使你的ETL程序更简洁. 子转换通常从父转换中接收行输入数据,针对输入数据进行处理,再传回给父转换.所以子转换需要有一个输入步骤和用于运行时连接到父转换的输出步骤.这些接口步骤中定义输入.输出行数据的字段结构.子转换为了实现可重用性,所以当父转换调用子转换,父转换的行字段被映射到子转换的字段作为输入:同样映射发生在处理完,返回给父转换.

kettle转换提高性能拆分转换步骤_20161201

今天是12月1号,前期用kettle做了月报自动报表的转换和作业,今天运行时候发现一个报表的程序跑起来失败,心里很纳闷,上过月刚跑的没问题,怎么会无缘无故的失败. 通过看kettle运行日志,发现一个错误,c盘left no space 也就是在系统盘上没有足够的空间存储临时表,这时候才考虑到可能是在转换的步骤里设置的步骤过多,有很多个表输入, 由于kettle输出执行顺序是自上而下,但是输入是无序的,在很多步骤同时输入的时候就会占用很大的内存,性能就会很慢. 打开那个出问题的kettle转换文

KETTLE使用javascript步骤过滤特殊字符

使用kettle在抽取大量excel数据时,总是遇到excel中有一些特殊字符,导致ExecuteSQL script步骤执行失败,本文记录一些方法过滤一些特殊字符.同行有更好的方式实现,欢迎指点,共同学习. 完整的实现转换截图如下 1.  使用javascript步骤过滤所有string字段的字符 使用javascript步骤可以通过代码来实现,避免增加过多的步骤,且一次性过滤所有的字段:代码如下: for (vari=0;i<getInputRowMeta().size();i++){ /

kettle中javascript步骤错误处理

javascript步骤错误处理 如果你熟悉kettle转换的错误特性,你可能想知道在javascript步骤如何使用.支持错误机制的步骤用户界面机制是相同的,在javascript步骤右击,选择"定义错误处理"启用错误处理并配置.javascript代码可以识别错误行,并将他们转发到配置的错误处理步骤,通过使用_step_对象的putError()方法,需要以下几个参数: 1)    RowMetaInterface对象描述行结构 2)    当前的错误行 3)    在此行检测的错

kettle组件-转换

1:列转行2:列转行3:去除重复记录      步骤名称:保持唯一性      增加计数器到输出?:当勾选了此项,并在计数器字段后给予了名称,则将会在该字段下显示去掉的重复行数.      字段名称:用来去重的字段,可选多个字段,表示多个字段都相同时表示重复.      该功能类似与sql中的distinct关键字. 4:增加序列      一个序列是在某个起始值和增量的基础之上,经常改变的整数值.可以使用数据库定义好的序列,也可以使用kettle决定的序列.      kettle序列在同一个

Kettle行列转换

Kettle在控件中拥有行列转换功能,但是行列转换貌似是弄反了. 一.行转列 1.数据库脚本 create TABLE StudentInfo ( studentno int, subject varchar(10), grade int );insert into StudentInfo values(201105545,'语文',80); insert into StudentInfo values(201105545,'数学',82); insert into StudentInfo va

Kettle合并记录步骤

转载: http://blog.itpub.net/post/37422/464323 该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配.比较.合并. 需要设置的参数: 旧数据来源:旧数据来源的步骤 新数据来源.新数据来源的步骤 标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种. 1. “identical” – 旧数据和新数据一样 2. “changed” – 数据发生了变化; 3. “new” –

kettle 合并记录步骤中的 关键字段和 比较字段的说明

该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配.比较.合并. 需要设置的参数: 旧数据来源:旧数据来源的步骤 新数据来源.新数据来源的步骤 标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种. 1. "identical" – 旧数据和新数据一样 2. "changed" – 数据发生了变化; 3. "new" – 新数据中有而旧数据中没有的记录 4.

kettle基本使用

kettle的几个子程序的功能和启动方式 spoon.bat:图形界面方式启动作业和转换设计器 pan.bat:命令行方式执行转换 kitchen.bat:命令行方式执行作业 carte.bat:启动web服务,用于kettle的远程运行或集群运行 encr.bat:密码加密 kettle介绍--转换步骤简介 转换类步骤是对数据进行各种形式转换所用到的步骤. 例如:字段选择,计算器,增加常量 kettle介绍--流程步骤简介 流程步骤是用来控制数据流的步骤.一般不对数据进行操作,只是控制数据流.