对应概念
步骤(Step,又称为“控件”)
-  
是【转换】里的基本的组成部分,包括输入、输出、脚本等等。
 -  
步骤的关键特性
-  
每个步骤有且仅有一个名字,且这个名字在同一个【转换】范围内是唯一的,即在同一个转换中不能出现同名的步骤。
 -  
每个步骤都会读、写数据行(【生成记录】除外,它的作用是写数据)
 -  
步骤将数据写到与之相连的一个或多个【跳】,再通过【跳】将数据传到另一个步骤
 -  
大多数的步骤都可以有多个【跳】
 -  
一个步骤的数据发送可以被设置为“分发”或“复制”
-  
分发是目标步骤轮流接收记录
- 即多个步骤均分数据
 
 -  
复制是所有的记录被同时发送到所有的目标步骤
 
 -  
 
 -  
 
步骤 跳(Hop)
- 定义了一个数据流通道,即数据由一个【步骤】流(【跳】)向下一个【步骤】
 - 是【步骤】之间带箭头的连线
 - 跳实际上是两个【步骤】之间的被称为【行集】的数据行缓存
 
元数据
-  
每个步骤在输出【行】时都有对字段的描述,这种描述就是【行】的元数据
 -  
通常包含
-  
名称
- 数据行里的字段名是唯一的
 
 -  
数据类型
-  
字段的数据类型
 -  
种类
-  
String
- 字符类型数据
 
 -  
Number
- 双精度浮点数
 
 -  
Integer
- 带符号长整型
 
 -  
BigNumber
- 任意精度数据
 
 -  
Date
- 带毫秒精度的日期时间值
 
 -  
Boolean
- 取值为true和false的布尔值
 
 -  
Binary
- 二进制字段,可以包含图像、声音、视频及其他类型的二进制数据
 
 
 -  
 
 -  
 -  
格式
- 数据显示的方式
 
 -  
长度
- 字符串的长度或者BigNumber类型的长度
 
 -  
精度
- BigNumber数据类型的十进制精度
 
 -  
货币符号
- ¥
 
 -  
小数点符号
- 十进制数据的小数点格式
 
 -  
分组符号
- 数值类型数据的分组符号
 
 
 -  
 
行(Row)
- 在kettle中最小单位
 
行集(RowSet)
-  
数据流中流动的就是缓存的【行集】
 -  
行集的大小可以在转换的设置里定义
- 1.在转换窗口空白处点击鼠标右键
 - 2.选择【转换属性】
 - 3.打开【杂项】
 - 4.更改【记录集合里的记录数】
 - 此项影响的是缓存区最大的流量,默认是10000
 
 -  
当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间;
 -  
当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。
 
转换(transaformation)
-  
负责数据的输入、转换、校验、输出等工作
 -  
Kettle中使用【转换】完成数据ETL全部工作
 -  
【转换】有多个【步骤】组成,如文本文件输入、过滤输出行、执行SQL脚本等
- 各【步骤】由【跳】来链接。
 
 -  
不能定义一个执行顺序,因为所有【步骤】都是以“并发”方式执行
- 当【转换】启动后,所有【步骤】都同时启动,从他们的输入【跳】中读取数据,并把处理过的数据写到输出【跳】,直到输入【跳】中不再有数据就中止步骤的运行。当所有【步骤】都中止了,整个【转换】就中止了。
 
 
作业(Job)
-  
因为【转换】以“并行”方式执行,所以必须存在一个“串行”的调度工具来执行转换,这就是【作业】
 -  
负责定义一个完成整个工作流的控制,比如将【转换】的结果发送邮件给相关人员。
 -  
一个【作业】包含一个或多个【作业项】,这些【作业项】以某种顺序来执行
- 【作业】执行顺序由【作业项】之间的【跳】和每个【作业项】的执行结果来决定
 
 
作业 跳(Hop)
-  
是【作业项】之间的连接线,定义了作业的执行路径
 -  
每个【作业项】的不同的运行结果决定了【作业】的不同执行路径
 -  
作业跳分为三种情况
-  
无条件执行
-  
不论上一个【作业项】执行成功还是失败,下一个【作业项】都会执行
 -  
表现形式为带锁的蓝色连接线
 
 -  
 -  
当运行结果为真时执行
-  
当上一个【作业项】的执行结果为真时,执行下一个【作业项】,通常在需要无错误执行的情况下使用
 -  
表现形式为带对钩的绿色连接线
 
 -  
 -  
当运行结果为假时执行
-  
当上一个【作业项】的执行结果为假或没有成功执行时时,执行下一个【作业项】
 -  
表现形式为带叉号的红色连接线
 
 -  
 
 -  
 -  
在作业跳的标志上点击便可对其状态进行切换
 
作业项
-  
【作业】的基本构成部分,如同【转换】的步骤
 -  
【作业项】之间是步骤流,【转换步骤】之间是数据流
 -  
【转换】启动后所有步骤一起并行启动,【作业项】是严格按照执行顺序启动,一个【作业项】执行完后再执行下一个
 -  
在【作业项】之间可以传递一个【结果对象】
 -  
因为【作业】顺序执行【作业项】,所以必须通过“开始”定义一个【起点】
- 一个作业只能定一个开始作业项
 
 
结果对象(result object)
- 包含了数据行,但是它们不是以数据流的方式来传递,而是等一个【作业项】执行完成后在传递给下一个【作业项】

 










