对应概念
步骤(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)
- 包含了数据行,但是它们不是以数据流的方式来传递,而是等一个【作业项】执行完成后在传递给下一个【作业项】