今天我们来了解一些kettle相关核心概念。
不热身了,直接开始。
1、可视化编程:Kettle可以归为VPL语言,即可视化编程语言,主要是因为kettle可以通过图形化的方式来进行各项复杂的ETL程序开发和工作流开发。
2、kettle里的代码就是转化和作业,那什么是转换呢?
转换(transaformation)主要负责数据的处理工作,包括输入、转换、输出等操作,由下图可知,转换是由多个step组成的,比如csv文件输入、excel输出等。连接各个步骤(step)的hops称为节点连接,也有人叫做“跳”,它定义的数据流的流动通道。kettle中数据的最小单位是行,在各个节点中流动的可以认为是缓存的行集数据。
3、步骤【steps】是啥?
步骤可以理解成是用来组成转换的各个节点,它定义了数据的一种操作,kettle中的核心对象所列的输入、输出、转换等都是一个个步骤的合集。步骤的特性主要有如下几点:
(1)步骤有名字,且在同一个转换内唯一,名字可自定义,建议见名知意。
(2)每个步骤基本上都包含读、写两个操作,可理解成从前一个步骤读取数据,往下一个步骤写出数据。
(3)步骤间通过hop(节点)连接,定义了数据的流动方向。
(4)一个步骤可以有多个hop连接,数据的分发方式可以指定成分发或者复制模式。分发即轮流接收,复制可以理解成同时发送所有数据。
4、Hop (跳)
hop是指两个步骤间的连接,可以理解成数据行的缓存,缓存的阈值大小是可以设置的。当缓存达到设置阈值时,上一个步骤将停止写入,直到有新的空间出现。当缓存为空时,下一个步骤将停止读取数据,直到有新的数据进来。
5、元数据
元数据可以理解成字段的属性描述,一行数据可以有多个字段。
(1)名称:即字段名,在一行内需要唯一。
(2)数据类型:数据类型,像String、Number、Integer、BigNumber、Date、Boolean、Binary。
(3)格式:数据的显示方式,像日期格式、数据保留小数位格式等。
(4)长度:定义数据的长度,如字符串的长度等。
(5)精度:BigNumber数据类型的十进制精度。
(6)货币符号:¥
(7)小数点符号:十进制数据的小数点格式。
(8)分组符号:数值类型数据的分组符号。可以是点(.)或逗号(,)或单引号(’)
6、数据类型
String、Number(双精度浮点数)、Integer、BigNumber任意精度数据、Date、Boolean、Binary(二进制字段可以包含图像、声音、视频)。
7、并行
并行是指转换中每个步骤都是一个独立的线程运行,转换中所有的步骤都是以并发的方式执行,当转换启动后所有的步骤都同时间启动,从上一个步骤读数据并写出数据到下一个步骤,直到跳中没有缓存的数据。如果所有步骤都终止了,整个转换也就终止了。
8、job(作业)
job定义了一个完整的工作流,知道了转换是并行执行的,所以就需要一个串行的调度工具来执行转换。
结束!!!!