Kettle系列教程-第八章:转换流程-转换组件
本系列教程基于Kettle 8.1(pdi-ce-8.1.0.0-365)。大部分内容同样适用于Kettle 7.x版本。
章节目录:
- 一、运行环境配置
- JDK
- JVM参数
- KETTLE_HOME
- 依赖包导入
- 二、转换与作业
- 转换流程
- 作业流程
- 三、数据库连接配置
- 创建数据库连接
- 共享数据库连接
- 数据库连接参数
- 四、资源库(数据库存储方式)
- 创建资源库
- 保存流程到资源库
- 从资源库打开流程
- 五、变量/参数
- 参数的配置与使用
- 变量的配置与使用
- 六、转换流程-输入组件
- Excel输入
- 表输入
- 七、转换流程-输出组件
- Excel输出
- 文本文件输出
- 表输出
- 八、转换流程-转换组件
- 九、脚本组件
- 转换-Java代码组件
- 作业-SQL组件
- 作业Shell组件
- 十、对接大数据平台
- 基础文件配置
- 上传文件到HDFS
- 连接Hive
- 十一、使用Windows计划任务定时执行Kettle作业
- 命令说明
- 编写批处理脚本执行Kettle作业
- 创建计划任务定时执行Kettle作业
- 十二、使用Java执行Kettle作业
- 搭建Kettle运行环境
- 代码示例(作业、转换、资源库)
本章说明
本章介绍一下转换分类下几个简单的组件:排序记录、去除重复记录、拆分字段、字段选择。其中在使用【去除重复记录】组件之前一定要对去重的字段进行排序:
本章使用一个小示例来介绍这几个组件的使用,数据准备如下:
要求目标表数据如下,即需要把原数据中name列不规范的数据处理掉并进行去重:
有人可能会说了,这个需求一个简单的SQL就可以做到,干嘛还要借助其他工具?首先,我只是用一个小示例来介绍这些组件的使用;其次Kettle是个专业的数据处理工具,在复杂处理逻辑下,最好是将这些处理步骤交给Kettle来做,而不是全部扔给数据库去做;另外,如果数据源是Excel或者文本文件的话,还能写SQL吗?
拖出如下组件构成一个完整的转换流程:
【排序记录】,以id字段进行排序:
【去除重复记录】,同样选择id字段:
【拆分字段】,选择需要拆分的字段name,指定分隔符”,“,分析原数据得知字段拆分后会有两个新字段,分别指定两个新字段相关信息(字段名、字段类型、去除空格类型):
【字段选择】,第一个选项卡【选择和修改】,用于选择需要保留的字段和修改字段名;【移除】选项卡用于移除不需要的字段;【元数据】选项卡用于修改数据流的元数据,比如数据类型、数据格式、字符集编码等。【选择和修改】与【移除】这两个选项卡只需要配置其中一个即可。这里我们移除掉name2字段并修改name1字段名为new_name:
最后再修改下表输出配置,勾选上【裁剪表】选项,用于清空旧数据,并指定数据库字段,修改字段映射关系如下:
配置完成,保存,执行,查看结果:
本章完!
下一章:脚本组件