使用kettle采集并处理mysql数据库中的数据

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 使用kettle采集并处理mysql数据库中的数据

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

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

一、任务描述

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


二、任务目标

1、掌握使用kettle采集并处理mysql数据库中的数据


三、任务环境

Ubuntu16.04、Java1.8、Kettle7.1


四、任务分析

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

 Kettle组成部分:


0c79e2a6a5e5459dbda775a0e25ec7ae.png

Kettle概念模型图:

9d8a8a28ae2c4bd593f7894a773d0f29.png


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

 Transformation(转换):

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

 Jobs(工作):

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


五、 任务实施

步骤1、环境准备

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

 启动kettle。

70581cb8f2824790877e6980d8c65799.png



图1 启动kettle

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

ef73d3ac32934d3781ace4c80b8dbb5a.png



图2 开启mysql


步骤2、创建Transformmations

新建一个”Transformmations”(双击Transformmations即可),然后选择”Design”栏,将”Input”下的”Table input”和”Transform”栏下的”Select values”,”Sort rows”,”Unique rows”然后是”Flow”下的”Filter rows”以及”Output”栏下的”Table output”六个图标拖进工作区。按住Shift键,鼠标拖拽”Table input”图标到”Select values”图标上,产生连线。同理其他的线也连上。注意箭头方向。如图3所示

731fbf45970f421c9968a6573a652f53.png



图3 创建Transformmations

 设置”Table input”相关内容(双击图表即可),mysql数据库密码为”root”。如图4-6所示。

ef79121ce33e4bc0a7a2333c8349d0f0.png



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


10469ff0583c4d3783e01cd87b141854.png


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


04ca8a1ba176489d9e251cf5e768c378.png


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

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


510e8358b0ae4e8d911f434f3f005939.png


图7 设置”Select values”相关内容

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


41430ba61a8f4c72b475cdac433c820e.png


图8 设置”Sort rows”

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

43c4bbbb18cf4aa3983c571b6bc61b8f.png



图9 设置”Unique rows”

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

2b855dd792de412e97eabeac50781101.png



图10 设置”Filter rows”

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

c60ae13bce504718be3fb74db10e3133.png



图11 设置”Table output”

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

7dd15f05252a40f184e12b689c8d7dc4.png



图12 设置目标表

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


0f51baed33fc438b8a28636e54d7d7cb.png


图13 设置字段映射


步骤3、运行任务

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

a19e1a209c6a4408abaa50fbef7bd94d.png



图14 运行任务


0c21b07e2f16421f88ffe27766882c32.png


图15 保存任务

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

1b9bef18986e44beb8e597713adcb227.png



图16 查看运行结果

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

684407d98df84b77acc30ba90fa8f091.png



图17 进入数据库


ecb995e23d8d4308a4876fd6274ebb0e.png


图18 查看表数据


♥ 知识链接

Hop

一个Hop 代表两个步骤之间的一个或者多个数据流。一个Hop 总是代表着两个Job Entry 之间的连接,并且能够被原始的Job Entry 设置,无条件的执行下一个Job Entry,


♥ 温馨提示

Output Stream:一个Output Stream 是离开一个步骤时的行的堆栈。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
23天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
15天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
123 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
25天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
85 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
15天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
52 14
|
18天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
47 9
|
22天前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
29天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
26天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
44 1
|
27天前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
136 2
|
30天前
|
人工智能 Cloud Native 容灾
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
下一篇
无影云桌面