Kettle转换控件

转换属于ETL的T,T就是Transform清洗、转换。

ETL三个部分中,T花费时间最长,是“一般情况下这部分工作量是整个ETL的2/3。

  1. Concat fields (连接字段)
Concat fields就是多个字段连接起来形成一个新的字段。

kettle mongodb input fields 自定义 字段_数据


kettle mongodb input fields 自定义 字段_字符串_02

kettle mongodb input fields 自定义 字段_数据_03

  1. 值映射
值映射就是把字段的一个值映射成其他的值。
在数据质量规范上使用非常多,比如很多系统对应性别gender字段的定义不同。
系统1:1 男、2女
系统2:f 男、m 女
数据仓库统一为:female 男、male女

kettle mongodb input fields 自定义 字段_字符串_04

kettle mongodb input fields 自定义 字段_字段_05

kettle mongodb input fields 自定义 字段_字段_06

kettle mongodb input fields 自定义 字段_数据_07

  1. 增加常量
增加常量就是在本身的数据流里面添加一列数据,该列的数据都是相同的值。

kettle mongodb input fields 自定义 字段_数据_08

  1. 增加序列
增加序列是给数据流添加一个序列字段。

kettle mongodb input fields 自定义 字段_字符串_09

kettle mongodb input fields 自定义 字段_字段_10

kettle mongodb input fields 自定义 字段_字符串_11


kettle mongodb input fields 自定义 字段_字段_12

  1. 字段选择
字段选择是从数据流中选择字段、改变名称、修改数据类型。

kettle mongodb input fields 自定义 字段_字段_13

kettle mongodb input fields 自定义 字段_字段_14

kettle mongodb input fields 自定义 字段_字段_15

  1. 计算器
计算器是一个函数集合来创建新的字段,还可以设置字段是否移除(临时字段)。

kettle mongodb input fields 自定义 字段_字段_16

  1. 字符串-剪切-操作-替换
剪切字符串是指定输入流字段裁剪的位置剪切出新的字段。

kettle mongodb input fields 自定义 字段_数据_17

kettle mongodb input fields 自定义 字段_数据_18

kettle mongodb input fields 自定义 字段_字段_19

字符串替换是指定搜索内容和替换内容,如果输入流的字段匹配上搜索内容就进行替换生成新字段。

kettle mongodb input fields 自定义 字段_数据_20

kettle mongodb input fields 自定义 字段_数据_21

kettle mongodb input fields 自定义 字段_字段_22

kettle mongodb input fields 自定义 字段_数据_23


字符串操作是去除字符串两端的空格和大小写切换,并生成新的字段


kettle mongodb input fields 自定义 字段_字符串_24

kettle mongodb input fields 自定义 字段_数据_25

kettle mongodb input fields 自定义 字段_字符串_26

kettle mongodb input fields 自定义 字段_字段_27

kettle mongodb input fields 自定义 字段_字符串_28

  1. 去除重复记录+排序记录
去除重复记录是去除数据流里面相同的数据行。
注意:必须先对数据流进行排序!

kettle mongodb input fields 自定义 字段_字段_29


排序记录是按照指定的字段的升序或降序对数据流排序


kettle mongodb input fields 自定义 字段_字符串_30

kettle mongodb input fields 自定义 字段_字符串_31

kettle mongodb input fields 自定义 字段_字段_32

  1. 唯一行(哈希值)
唯一行(哈希值)就是删除数据流重复的行。
注意:唯一行(哈希值)和(排序记录+去除重复记录)效果一样的,但是实现的原理不同!
唯一行(哈希值)执行的效率会高一些!

kettle mongodb input fields 自定义 字段_数据_33

  1. 拆分字段
拆分字段是把字段按照分隔符拆分成两个或多个字段。
注意:拆分字段后,原字段就不存在于数据流中

kettle mongodb input fields 自定义 字段_数据_34

kettle mongodb input fields 自定义 字段_数据_35

kettle mongodb input fields 自定义 字段_数据_36

  1. 列拆分为多行


  1. 列转行
列转行就是如果数据一列有相同的值,按照指定的字段,把多行数据转换为一行数据。
去除一些原来的列名,把一列数据变为字段。
注意:列转行之前数据流必须进行排序!

kettle mongodb input fields 自定义 字段_数据_37

kettle mongodb input fields 自定义 字段_数据_38

kettle mongodb input fields 自定义 字段_字符串_39

kettle mongodb input fields 自定义 字段_数据_40

kettle mongodb input fields 自定义 字段_字符串_41

  1. 行转列
行转列就是把数据字段的字段名转换为一列,把数据行变为数据列。

kettle mongodb input fields 自定义 字段_数据_42

kettle mongodb input fields 自定义 字段_字符串_43

kettle mongodb input fields 自定义 字段_数据_44

kettle mongodb input fields 自定义 字段_字符串_45

kettle mongodb input fields 自定义 字段_字段_46

  1. 行扁平化
行扁平化就是把同一组的多行数据合并成为一行。
注意:
只有数据流的同类数据数据行记录一致的情况才可使用!
数据流必须进行排序,否则结果会不正确!

kettle mongodb input fields 自定义 字段_字段_47

kettle mongodb input fields 自定义 字段_字段_48