使用kettle进行数据清洗

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 使用kettle进行数据清洗

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址

全文共计2175字,阅读大概需要3分钟

一、任务描述

本实验任务主要完成基于ubuntu环境的使用kettle进行数据清洗的工作。通过完成本实验任务,要求学生熟练掌握使用kettle进行数据清洗的方法,为后续实验的开展奠定ETL平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。


二、任务目标

1、掌握使用kettle进行数据清洗


三、任务环境

Ubuntu16.04、Java1.8、Kettle7.1


四、任务分析

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

 Kettle组成部分:


29228cbdb77f4512abc124d53aa3102b.png

Kettle概念模型图:

bd180ff3daea40d9bb85d64d7ccf2a94.png


Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

 Transformation(转换):

 Transformation(转换)是由一系列被称之为step(步骤)的逻辑工作的网络。转换本质上是数据流。下图是一个转换的例子,这个转换从文本文件中读取数据,过滤,然后排序,最后将数据加载到数据库。本质上,转换是一组图形化的数据转换配置的逻辑结构,转换的两个相关的主要组成部分是step(步骤)和hops(节点连接),转换文件的扩展名是.ktr。

 Jobs(工作):

 Jobs(工作)是基于工作流模型的,协调数据源、执行过程和相关依赖性的ETL活动,Jobs(工作)将功能性和实体过程聚合在了一起,工作由工作节点连接、工作实体和工作设置组成,工作文件的扩展名是.kjb。

 我们的任务是:

1、掌握使用kettle进行数据清洗


五、 任务实施

步骤1、环境准备

右击Ubuntu操作系统桌面,从弹出菜单中选择【Open Terminal Here】命令 打开终端。

 启动kettle。


938eaec0c1ae4966b5b4514fd275b5b0.png

图1 启动kettle


步骤2、创建Transformmations

新建一个”Transformmations”(双击Transformmations即可),然后选择”Design”栏,将”Input”下的”Text file input”和”Transform”栏下的”Strings cut”,”Select values”,”Sort rows”,”Unique rows”,然后是”Utility”下的”Null if…”,”If field value is null”,再就是”Flow”下的”Filter rows”以及”Output”栏下的”Table output”九个图标拖进工作区。按住Shift键,鼠标拖拽”Table input”图标到”Stream lookup”图标上,产生连线。同理其他的线也连上。注意箭头方向。如图2所示


0650dfff60df427192a724925d0a6537.png


图2 创建Transformmations

 设置”Text input”相关内容(双击图表即可)。如图3-8所示。


07e1ac6cc6a544aeb95ffb42ed00c00f.png


图3 设置”Text input”相关内容



534c86818f3040798e56f34dc35da3f5.png

图4 设置”Text input”相关内容


0f62e8bb0be84b4fb4a27916624c00e2.png


图5 设置”Text input”相关内容


ea2a0a57e9004fa0bd20411803c0d227.png


图6 设置”Text input”相关内容



b1366dc5199649d5bc3fb3b99d0c6874.png

图7 设置”Text input”相关内容


06c4342d9819411c93cc4919cc3159be.png


图8 设置”Text input”相关内容

 设置”Strings cut”相关内容(双击图表即可)。如图9所示。


7276afcabaf844f79edbe7946af1695d.png


图9 设置”Strings cut”相关内容

 设置”Null if…”相关内容(双击即可)。如图10所示。


696652f0e5574368811cd9bdb7bbb304.png


图10 设置”Null if…”

 设置”If field value is null”相关内容(双击图表即可)。如图11所示。


236ec68f589d44a49902227370b3c2a6.png


图11 设置”If field value is null”相关内容

 设置”Select values”相关内容(双击即可)。如图12-13所示。


bdfcbec663244665a4359636a2cbbe5d.png


图12 设置”Select values”


1738ff8b380d40b19fb8cf58bf43841e.png


图13 设置”Select values”

 设置”Sort rows”相关参数。如图14所示。



b6fc81748d5546b3bb2084d83c9b5841.png

图14 设置”Sort rows”

 设置”Unique rows”相关参数。如图15所示。


9619cd57cc4441eca1137600ff66bca8.png


图15 设置”Unique rows”

 设置”Filter rows”相关参数。如图16所示。

7ed3d94a164a47dd9f7b6125059946a6.png



图16 设置”Filter rows”

 开启mysql服务。如图17所示。


0d5251f38d6b4036abee62560e1a2e5e.png


图17 开启mysql

 设置”Table output”相关参数,双击”Table output”即可,mysql数据库密码为”root”。如图18所示。



c4e6754e692e48d29dd60e75974423e2.png

图18 设置”Table output”

 设置目标表。如图19所示。


29a88dcad52f4871ad312784befcdf39.png


图19 设置目标表

 设置字段映射,最后点击”OK”完成整个设置。如图20所示。


bfff151d71f8424e87fe5f66b1459bad.png


图20 设置字段映射


步骤3、运行任务

运行,清洗好的数据,批量导入到数据库。如图21-22所示。


d82b370861a24619918581d259ff125e.png


图21 运行任务


aed5c11c5e4f4e1a9d95d47b607fd5d2.png


图22 保存任务

 查看运行结果。如图23所示。


0f73792b65434f239a880bba8b3dcf14.png


图23 查看运行结果

 重新打开一个终端,进入mysql,切换到kettleDB数据库,检验记录是否导入。如图24-25所示。


152bd5c6e1a940c99b28ad27ef8adbae.png


图24 查看表


9edf91eacaa64c55856ec023f90a268c.png


图25 查看表数据


♥ 知识链接

ETL工具的典型代表

商业软件:Informatica、IBM Datastage、Oracle ODI、Microsoft SSIS…


开源软件:Kettle、Talend、CloverETL、Ketl,Octopus …


♥ 温馨提示

作业(job):负责将[转换]组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
kettle开发篇-空操作
kettle开发篇-空操作
296 0
|
数据采集 数据挖掘
kettle开发-数据清洗之字符串替换
kettle开发-数据清洗之字符串替换
675 2
|
SQL druid 搜索推荐
最强最全面的数仓建设规范指南 (一)
本文将全面讲解数仓建设规范,从数据模型规范,到数仓公共规范,数仓各层规范,最后到数仓命名规范,包括表命名,指标字段命名规范等!
14015 2
|
4月前
|
存储 数据管理 Apache
Doris建表分桶选择与优化建议
Apache Doris 中的分桶(Bucketing)是提升查询性能的重要优化手段。通过合理选择分桶列和分桶数,可提高数据并行处理能力与局部性。建议选用高基数、高频查询列作为分桶列,结合数据量与集群规模设置分桶数,推荐使用自动分桶(BUCKETS AUTO)。分桶策略包括哈希分桶与范围分桶,适用于不同场景。合理分桶可优化查询性能、导入效率与资源利用率,建议结合业务特征测试验证最佳方案。
441 0
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
Ubuntu 网络协议 Linux
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
5661 2
|
IDE Java 编译器
Java“找不到符号” 错误怎么查找解决
“找不到符号”是Java编程中常见的编译错误,通常表明代码试图访问未声明或不可见的符号(如类、方法或变量)。解决此问题需检查拼写、导入包是否正确及作用域是否合适。确保使用正确的类路径和库,可有效避免此类错误。若问题依旧,查阅官方文档或使用调试工具定位错误亦为良策。
6546 10
|
关系型数据库 MySQL Go
MySQL连接错误1045:完美解决指南
MySQL连接错误1045:完美解决指南
11659 0