使用kettle进行数据的多表关联

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 使用kettle进行数据的多表关联

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

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

一、任务描述

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


二、任务目标

1、掌握使用kettle进行数据的多表关联


三、任务环境

Ubuntu16.04、Java1.8、Kettle7.1


四、任务分析

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

 Kettle组成部分:

e4541a317da34a99b647e3f92b09da99.png


Kettle概念模型图:

16cf47c27b7b47af925ff18deb570d88.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。


216b207a97c448f59e2c88336b138453.png


图1 启动kettle

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


d7becf67a01e4e1bb9b4273ac3eba102.png


图2 开启mysql


步骤2、创建Transformmations

新建一个”Transformmations”(双击Transformmations即可),然后选择”Design”栏,将”Input”下的”Table input”(拖过去两个)和”Lookup”栏下的”Stream lookup”,以及”Output”栏下的”Table output”三个图标拖进工作区。按住Shift键,鼠标拖拽”Table input”图标到”Stream lookup”图标上,产生连线。同理”Table output”的线也连上。注意箭头方向。如图3所示


4c3ef7965af04e57b5f14e55af0ef001.png


图3 创建Transformmations

 设置”Table input”相关内容(双击图表即可)。如图4-6所示。

30a297103bb54810bbb5db18ddcab901.png



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


1a323ea5083947c0b66297bc9a1154ea.png


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



5df41f8a853e43449c21524e597c2465.png

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

 设置”Table input 2”相关内容(双击图表即可)。如图7-9所示。


54ffe710560a42719a91914cd4989cf9.png


图7 设置”Table input 2”相关内容

606e32c0e0134fecbea8494e3338d70c.png



图8 设置”Table input 2”相关内容



d7bd7490f0114559a57c9a2d5e8044fe.png

图9 设置”Table input 2”相关内容

 设置”Stream lookup”相关内容(双击即可)。如图10-11所示。


da844705397541ab8a7ecf1bc0b09e7d.png


图10 设置”Stream lookup”

6733e1a11dea438b8b4ce152863c8a89.png



图11 设置完毕

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

c72ea0fd8bda41879e14d87cd2f19a25.png



图12 设置”Table output”

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


c4930fa4d3d14bc49d3090c9d0845b69.png


图13 设置目标表

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

58aabff2701d4258b5fb99d711ef239c.png



图14 设置字段映射


步骤3、运行任务

运行,将两张表相互关联,批量导入到数据库。如图15-16所示。


5dfc2442c50f47eab698d2d210523d2e.png


图15 运行任务


c4b5d1142c3f4be18e624e38b6590d98.png


图16 保存任务

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

7944c365a0bb4bd6b35556fd86932776.png



图17 查看运行结果

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

1f4c38231a604e73bf4740c21fb59d62.png



图18 查看表


581a45fb5cb14c6295c20198d8a656db.png


图19 查看表数据


♥ 知识链接

ETL是BI/DW( Business Intelligence/Data Warehouse , 商务智能/数据仓库)的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。


♥ 温馨提示

ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Oracle 关系型数据库
sqoop的导入导出以及where条件过滤数据导出
sqoop的导入导出以及where条件过滤数据导出
|
3月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 SQL BI
深入解析实时数仓Doris:Rollup上卷表与查询
深入解析实时数仓Doris:Rollup上卷表与查询
|
6月前
|
SQL 存储 测试技术
提升50%+!Presto如何提升Hudi表查询性能?
提升50%+!Presto如何提升Hudi表查询性能?
134 0
|
6月前
kettle开发篇-行转列
kettle开发篇-行转列
367 0
|
6月前
|
存储
kettle开发篇-列转行
kettle开发篇-列转行
233 0
|
6月前
|
存储
kettle开发篇-列拆分为多行
kettle开发篇-列拆分为多行
265 0
|
SQL 分布式计算 数据管理
聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起
聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起
216 0
|
SQL 数据库 索引
关系数据库SQL数据查询(二)
关系数据库SQL数据查询
122 0
|
SQL 数据库
关系数据库SQL数据查询(一)
关系数据库SQL数据查询
821 0