ETL-kettle数据转换及组件使用详解

目录

一、txt文本转换成excel

1、新建、转换

2、构建流程图

3、配置数据流图中的各个组件

3.1、配置文件文本输入组件

 3.2、 配置Excel输出组件

4、保存执行

二、excel转换成mysql

(1)在MySQL数据库中创建数据库,这个根据自身情况。我就在现有test库中测试了。

(2)根据以上步骤,新建转换。

(3)构建流程图,选择excel输入和表输出

(4)将两个组件连接起来

(5)双击表输入,文件选择源文件的位置,然后点击增加,在点击【工作表】,获取工作表名称,把标签移到右边

(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。

  (7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。

(8)点击「预览记录」按钮查看抽取到的数据。如果数据格式有我呢提,在调整格式

(9)点击「确定」按钮并保存。

(10)配置MySQL组件,双击表输出组件

(11)输入目标表的名称为:user,后续Kettle将在MySQL中创建一张名为 user 的表格。

(12)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,

(13)保存并执行转换

(14)查看数据,由于ID 数据过大,需要把属性换成 bigint

三、 MySQL表之间转换

1、共享数据库连接

2、需求:将user表中的数据,转换到user1表中

3、新建转换

4、构建kettle流程图

5、配置Kettle数据流图中的组件

 四、插入和更新组件

1、需求

2、新建转换,步骤同上

3、构建kettle流程图

4、执行转换

5、结果查询,目标表数据已经更新和插入

  五、switch/case组件

1、需求

2、构建流程图

3、配置组件

4、执行

 六、SQL脚本组件

1、需求

2、构建kettle流程图

3、配置组件,双击组件

4、保存执行


一、txt文本转换成excel

txt文本内容
id,name,age,gender,province,city,region,phone,birthday,hobby,register_date
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
267456198006210000,李四,25,1,河南省,郑州市,郑东新区,18681109672,1980-6-21,音乐;阅读;旅游,2017-4-7 9:14
892456199007203000,王五,24,1,湖北省,武汉市,汉阳区,18798009102,1990-7-20,写代码;读代码;算法,2016-6-8 7:34
492456198712198000,赵六,26,2,陕西省,西安市,莲湖区,18189189195,1987-12-19,购物;旅游,2016-1-9 19:15
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44

1、新建、转换

然后将需要的转换方式拖拽到右侧面板并运行即可完成转换

2、构建流程图

(1)将左边的核心对象中的输入文件夹下的文本文件输入 拖拽到中间空白区域。

 

(2)从输出文件夹中将Excel输出 组件拖拽到中间空白区域。

 

(3)按住Shift键点击 文本文件输入组件,移动鼠标到Excel输出,然后释放鼠标,这样就可以将两个组件连接到一起。

 

3、配置数据流图中的各个组件

现在数据流的转换方式与转换方向已经确定,接下来要做的就是,配置每个组件,微调参数。

3.1、配置文件文本输入组件

(1)双击文本文件输入组件,在弹出窗口中点击「浏览」按钮。选择要转换的文本文件。

 (2)点击「增加」按钮,将文件加入到要抽取的数据中来。注意:不点添加按钮,将不会抽取数据。

(3)点击「内容」选项卡,将分隔符修改为逗号(注意是英文状态的逗号),将编码方式修改为:UTF-8。

 

(4)点击「字段」选项卡,再点击「获取字段」按钮,可以读取到txt文件中的所有字段。获取完也可以预览。点确定保存。

 

 3.2、 配置Excel输出组件

(1)双击 Excel输出组件,在弹出窗口中点击「浏览」按钮。我先暂时保存到桌面。然后点击确定。记得把扩展名删除

(2)点击「字段」选项卡,获取字段,将age的格式设置为0,表示只输出不带小数点的数字。然后点击确定。

 

4、保存执行

(1)点击工具条上方的保存按钮,或者按快捷键Ctrl + s。

 (2)点击工具栏上的播放按钮启动执行。点击启动

 也会有日志输出

执行结果,如果执行结果表中,长数字有逗号分隔的话,在双击表输出,【字段】 格式那一列,调整格式即可

二、excel转换成mysql

表格就按照我们刚才转换的表格来转换成MySQL数据

(1)在MySQL数据库中创建数据库,这个根据自身情况。我就在现有test库中测试了。

(2)根据以上步骤,新建转换。

(3)构建流程图,选择excel输入和表输出

(4)将两个组件连接起来

(5)双击表输入,文件选择源文件的位置,然后点击增加,在点击【工作表】,获取工作表名称,把标签移到右边

 

(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。

 

  (7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。

(8)点击「预览记录」按钮查看抽取到的数据。如果数据格式有我呢提,在调整格式

 

(9)点击「确定」按钮并保存。

(10)配置MySQL组件,双击表输出组件

        数据库连接这里 点击新建连接,配置数据库连接信息,点击测试连接,看是否成功,如果报错,看是否世缺少jdbc的驱动,去MySQL官网下载对应的驱动即可。

 

(11)输入目标表的名称为:user,后续Kettle将在MySQL中创建一张名为 user 的表格。

 

(12)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,

        我们将age和gender字段的数据类型改为INT类型。并点击执行按钮,会自动在MySQL数据库中创建该表。可以去数据库验证下。执行完之后,点击确定并保存组件信息。

 

(13)保存并执行转换

(14)查看数据,由于ID 数据过大,需要把属性换成 bigint

 三、 MySQL表之间转换

1、共享数据库连接

        在后续的Kettle中,我们需要多次用到上面的数据库连接。在Kettle中,可以将一个数据库共享,这样其他的Kettle转换就都可以复用该数据库连接了。

(1)在转换中,点击「主对象树」,点击[DB连接]右键新建数据库连接(如果连接已经存在,则无需创建)

(2)右键单击需要的数据库连接,选择「共享」

(3)发现刚刚选择的数据库连接已经变成黑体字,说明已经共享成功。

2、需求:将user表中的数据,转换到user1表中

3、新建转换

4、构建kettle流程图

(1)从核心对象的输入组件中,将「表输入」、「表输出」组件拖拽到中间的空白处。

(2)安装Shift键,并鼠标左键点击表输入组件,并拉动鼠标,移动到表输出组件,松开鼠标。

5、配置Kettle数据流图中的组件

(1)双击表输入组件,在弹出对话框中选择「获取SQL查询语句」。选择要转换的表。点击否

 

(2)点击「预览」按钮,查看是否能够从MySQL读取数据。

(3)双击表输出组件,在目标表输入t_user1,点击SQL按钮,会自动生成sql创建表语句,然后执行。

(4)保存转换,并启动。

(5)查询数据库,user表中的数据已经同步过来了。因为我加了筛选条件,所以只有张三的数据被同步了。

 四、插入和更新组件

        插入/更新组件能够将Kettle抽取的数据,与某个表的数据进行对比,如果数据存在就更新,不存在就插入。

1、需求

修改 user中的张三这一行数据,修改 age 为 30。如果想插入指定的数据,只能通过表输出组件

2、新建转换,步骤同上

3、构建kettle流程图

        1、选择一个表输入、表输出组件,将两个组件连接

        2、配置流程图中的表输入组件,如上2.5.1步骤

        3、双击 插入/更新 组件,在目标表,点击浏览按钮,找到user1表。

        4、添加用来查询的关键字,并获取和更新字段,确定,保存

原表:

 

目标表:

 

4、执行转换

 

5、结果查询,目标表数据已经更新和插入

  五、switch/case组件

kettle中提供了一种实现判断的组件叫做switch/case。

1、需求

从 user 表中读取所有用户数据,将性别为男的用户导出到一个Excel、性别为女的导出到另外一个Excel。

2、构建流程图

(1)将表输入组件拖拽到中间的空白区域。

(2)从流程文件夹中将 Switch/case 组件拖拽到中间的空白区域。

(3)再分别拖入两个Excel输出组件。

(4)按住shift键,将组件按照下图方式连接起来。

3、配置组件

(1)配置表输入组件

双击表输入组件,点击获取sql查询。

(2)配置switch/case组件

        此处要指定,按照性别来判断输出到Excel文件。需要设置 Switch字段为gender,在Case值列表中将值分别改为男、女。如果gender是男的话,则将数据装载到 Excel输出 - 男,如果gender是女的话,将数据装载到 Excel输出 - 女。

 (3)配置Excel输出组件

双击Excel输出组件,分别指定输出到指定的文件夹中。两个输出组件操作相同。

 

 

(4)配置完成之后,保存,

4、执行

执行结果就能看出来,已经转换到表中

 六、SQL脚本组件

执行SQL脚本组件,可以让Kettle执行一段SQL脚本。我们可以利用它来自动执行某些操作。

1、需求

使用Kettle执行SQL脚本,将 user1 表中的数据清空。

2、构建kettle流程图

我们在核心对象中,将脚本文件夹下的【执行SQL脚本】拖拽到右侧的空白中,如图所示:

3、配置组件,双击组件

我们要将 t_user1 表中的数据清空,所以脚本中要执行的语句如下:

TRUNCATE TABLE t_user1;

4、保存执行

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626602.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(python)cryptography-安全的加密

前言 cryptography 是一个广泛使用的 Python 加密库,提供了各种加密、哈希和签名算法的实现。它支持多种加密算法,如 AES、RSA、ECC 等,以及哈希函数(如 SHA-256、SHA-384 等)和数字签名算法(如 DSA、ECDSA 等). 目录 …

一本书打通SLAM在智能汽车/自动驾驶领域应用

自动驾驶技术已成为当今数字化时代汽车行业的热点话题之一。随着技术的不断成熟,越来越多的车辆采用激光SLAM(即时定位与地图构建)和视觉SLAM技术,实现更高层次的智能网联汽车。SLAM技术在智能网联汽车中的应用是非常重要的&#…

[XYCTF新生赛]-PWN:baby_gift解析(函数调用前需清空eax)

查看保护 查看ida 这里有一处栈溢出,并且从汇编上看,程序将rbp0x20处设置为了rdi,让我们可以控制rdi的值。而程序没有可利用的pop。 完整exp: from pwn import* pprocess(./babygift) premote(gz.imxbt.cn,20833) printf_plt0x4…

如何通过ETL工具对数据进行去重

在数据处理流程中,数据去重是一个至关重要的环节,它能够确保数据分析的准确性和效率。ETL(Extract, Transform, Load)工具作为数据集成的重要组成部分,提供了强大的功能来帮助用户实现数据的抽取、转换和加载&#xff…

【Unity Shader入门精要 第7章】基础纹理(一)

1. 纹理映射 每一张纹理可以看作拥有一个属于自己的2D坐标空间,其横轴用U表示,纵轴用V表示,因此也称为UV坐标空间。 UV空间的坐标范围为[0,0]到[1,1],在Unity中,UV空间也是从左下到右上&#…

神经网络复习--卷积神经网络及其扩展

文章目录 卷积卷积网络反向传播已知池化层误差,反向求上一层隐藏层误差已知卷积层的误差,推导该层的W, b的梯度 注意力机制Transformer卷积变体 卷积 卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,每个平面由多个独…

免费pr相册模板mogrt|手机壁纸AI绘画摄影作品照片展示模板视频素材

pr相册模板mogrt,手机壁纸、电脑桌面壁纸、AI绘画、摄影作品、照片展示模板视频素材。 Premiere Pro 2023及以上版本。 全高清(19201080)分辨率/30fps。 通用表达式(适用于所有特效语言)。 免费下载:https…

防火墙技术的演进,什么是下一代防火墙(NGFW)?

防火墙技术的演进 防火墙技术的演进经历了不同阶段,从包过滤防火墙到状态检测防火墙,再到集成多种安全功能的UTM(统一威胁管理)设备,最终发展到具备应用识别能力的NGFW(下一代防火墙)。 包过滤…

49.乐理基础-拍号的类型-单拍子、复拍子

当前写的东西,如果只是想要看懂乐谱的话,它是没什么意义的,就像我们要把 0,1,2,3,4,5。。。称为自然数,1,2,3,4,5称为正整…

鸿蒙OS开发:【Stage模型应用程序包结构】

Stage模型应用程序包结构 为了让开发者能对应用程序包在不同阶段的形态更有清晰的认知,分别对开发态、编译态、发布态的应用程序结构展开介绍。 开发态包结构 在DevEco Studio上[创建一个项目工程],并尝试创建多个不同类型的Module。根据实际工程中的…

MongoDB 推出新项目,助力企业构建生成式 AI 现代应用程序

MongoDB AI Applications Program可为组织提供战略路线图、行业专业知识及所需技术,加速从构思到大规模部署生成式 AI 应用程序 MongoDB (纳斯达克股票代码:MDB) 近日宣布推出 MongoDB AI Applications Program (MongoDB AI应用项目,简称&am…

使用VSCode生成代码、查询数据表

利用VSCode中百度生成 一、 1、输入内容:“给我生成一个student表,要求有id,createDate,userName,phone,age,sex,introduce的列信息,给我DDL与DML,5条信息都为中文信息,并且有一个userName必须等于张先生” 2、将生成的语句复制粘贴到数据库…

SpringBoot 3.2.5 + ElasticSearch 8.12.0 - SpringData 开发指南

目录 一、SpringData ElasticSearch 1.1、环境配置 1.2、创建实体类 1.3、ElasticSearchTemplate 的使用 1.3.1、创建索引库,设置映射 1.3.2、创建索引映射注意事项 1.3.3、简单的 CRUD 1.3.4、三种构建搜索条件的方式 1.3.5、NativeQuery 搜索实战 1.3.6…

Optional用法

说明:Optional和Stream一样,是Java8引入的特性,本文介绍Optional的几个实际用法。Steam流使用,参考下面这篇文章: Stream流使用 使用 1.保证值存在 // 1.保证值存在,pageNumber,pageSizeInte…

PR标题模板,视频内容要点提示文字列表模板剪辑素材

Premiere Pro的要点列表标题模板。 主要特点: 可以无限制地添加任意数量的列表项。 使用直观的控件轻松自定义列表的各个方面。只需点击几下,即可调整颜色、大小、位置等。 轻松调整颜色,享受完全的创作自由。 可以轻松调整列表项之间的间距…

mybatis-plus之数据源切换事务失效问题

为什么存在数据源切换和食物时效问题? 由于业务数据来源不同 需要配置多个数据源来进行数据的查询 编辑等操作 这一切换业务对数据的一致性要求很高那就要保证ACID啦 也就是数据的有效性 要么是成功的 要么是失败的。 数据源切换采用mybatisplus支持 多数据源配置&a…

Linux下VMamba 环境复现+环境测试

# 1. 创建自己的虚拟环境 conda create -n VMamba python3.10.13 conda activate VMamba # 2. cuda-11.8 conda install cudatoolkit11.8 -c nvidia # 3. torch torchvision torchaudio 与 官网命令一致 pip install torch2.1.1 torchvision0.16.1 torchaudio2.1.1 --index-url…

自集成式 HTTP 代理方案

前言 大部分程序员,想必都会有一个常用的抓包代理工具; 但在座的各位,可曾见过这样一款集成在 Web 应用中的代理工具? ​,时长00:45 它是明显区别于传统代理工具的,有以下特性: 零安装、零配…

解决AdaptiveAvgPool2d部署算子不支持问题

一、Pytorch中AdaptiveAvgPool2d函数详解 torch.nn.AdaptiveAvgPool2d()接受两个参数,分别为输出特征图的长和宽,其通道数前后不发生变化。如以下: self.global_avgpool nn.AdaptiveAvgPool2d(1) # 输出N*C*1*1 self.global_avgpool …

AcWing166. 数独-DFS剪枝与优化

题目 思路 思考问题:搜索顺序->考虑剪枝搜索顺序:先随意选择一个空格子,枚举该格子可填写的数字,当所有格子都填完的时候,说明可以退出了剪枝: 优化搜索顺序:随意选择一个空格子&#xff1a…