ETL工具-KETTLE教程 实例实战4----转换(值映射、列转行,增加常量、增加序列等)
附:Kettle实战视频教程,需要的朋友可以看看学习下哈~~
- kettle实战第一讲-文件和数据库表的互相转换处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第二讲-数据库单表的全量同步_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第三讲-数据库单表的增量同步_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第四讲-同步错误原因记录到数据库日志表_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第五讲-多个数据库表融合到一个数据库业务表_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第六讲-比较不同的数据库表进行数据的一致性处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第七讲-通过配置文件做表的全量同步,一个作业统统搞定_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第八讲-通过配置文件做数据表的增量同步,一个作业统统搞定_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第九讲-通过配置文件做表的全量同步_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第十讲-windows下的kettle作业调度_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
- kettle实战第十一讲-Linux下的kettle作业调度_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
接着上一讲,讲完了常用的输入、输出控件后,这一节我们来讲下常用的转换控件,如下图:
3、转换
3.1 值映射:将一个数据流的内容,转换成另外的数据流,并输出。作用如同sql语句中的decode函数。
此处用到三个控件,表输入、表输出(可以参考前面的内容)和值映射。三个控件用hop线进行连接。
双击值映射,如上图所示配置好相应的源值和目标值,通过连线从A表连接到B表。运行结果如下:
3.2 列转行:将二维数据流的其中1列数据,转换为行(也就是列转换为行的表头),在根据关键字段进行展示。
此处用到两个控件,表输入(可以参考前面的内容)和列转行。两个控件用hop线进行连接。
双击列转行,如上图所示配置好关键字段、构成分组的字段和目标字段。运行结果如上图步骤4。
3.3 剪切字符串:如同各种数据库的substr函数,用处不大可以忽略。
3.4去除重复记录:根据某个字段进行剔重,类似于sql语句中的distinct
此处用到两个控件,表输入(可以参考前面的内容)和去除重复记录。两个控件用hop线进行连接。
表输入需要先按照比较字段进行排序,如上图所示配置好计数器字段和用来比较的字段。运行结果如上图步骤3
3.5 增加常量、增加序列:增加常量和增加数据库序列
如上图所示,配置好常量值和序列值,即可生成
3.6 字段选择:将上一步骤数据流中的数据进行格式转换(主要用于时间的转换)
此处用到两个控件,表输入(可以参考前面的内容)和字段选择。两个控件用hop线进行连接。
表输入中存在包含时间的字段(可以看到不是按照标注的日期时间格式输出),如下左图,选择cjsj时间进行转换候。运行结果如下右图:
3.7 字符串操作:如同各种数据库的各种字符串处理函数,用处不大可以忽略
3.8 字符串替换:如同各种数据库的replace函数,用处不大可以忽略
3.9 拆分字段:如同各种数据库的split函数,将字段按照分隔符拆分成多个字段
此处用到两个控件,表输入(可以参考前面的内容)和拆分字段。两个控件用hop线进行连接。
拆分字段选择需要拆分的字段、分隔符、和拆分后的字段,点击运行。运行结果如下图:
接着上一讲,讲完了常用的转换控件后,接下来我们来讲下常用的应用控件,如下图:
4、转换
4.1 写日志 可以通过写日志,将上一个数据流中日志信息打印出来,可以设置具体的日志级别
如上图所示,配置好日志头信息,设置好日志级别,打印相应的日志
往期文章:
注意:因某些限制,最新源代码和后续通用配置实现数据抽取 已放置在笔者公众号上,请关注微信公众号: 【JAVA大师】, 回复关键字:【KETTLE】,获取kettle安装程序和运行实例(表结构和kjb、ktr文件)。
同时笔者原创了一套视频教程:现免费发放100套,先到先得。获得方法:扫描下方二维码,关注获得
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异