4

kettle庖丁解牛第25篇之插入更新

 2 years ago
source link: https://blog.51cto.com/51power/5260582
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在上一篇文章中,我们主要讲解的是:更新组件的各种详细设置,最后实战演示了,从excel文件中读取数据,然后通过更新组件,对mysql库表中的数据进行更新操作。

在本篇文章中,我们接着介绍:kettle中的插入更新组件。

转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。

我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。

kettle庖丁解牛第25篇之插入更新_作业

kettle庖丁解牛第25篇之插入更新_转换_02

kettle庖丁解牛第25篇之插入更新_etl_03

给你新建的转换,起个名字,并保存

kettle庖丁解牛第25篇之插入更新_etl_04

kettle庖丁解牛第25篇之插入更新_etl_05

插入\更新

这个组件,利用查询关键字在表中搜索行。如果行没有找到,就插入行。如果能被找到,并且要被更新的字段没有任何改变,就什么也不做。如果有不同,行就会被更新。

kettle庖丁解牛第25篇之插入更新_转换_06

kettle庖丁解牛第25篇之插入更新_插入更新_07

kettle庖丁解牛第25篇之插入更新_作业_08

数据库连接

用来写数据的数据库连接。

简单来说:在oracle库中,理解成user。在mysql库中,理解成database。

要写数据的表名。

提交记录数量

提交之前要改变的行数。

不执行任何更新

不执行更新操作

用来查询的关键字

可以指定字段值或者比较符。可以用以下比较符:=,

<>,<,<=,>,LIKE,BETWEEN,IS NULL,IS NOT NULL。

指定你想要更新的字段。

我们要演示从excel文件中读取数据,然后通过更新组件,使用excel文件中的数据,和mysql库表中的数据进行匹配(通过id列),匹配成功就进行更新操作。如果匹配不成功,就把excel中的数据,插入到mysql的库表中。

a、创建excle文件

我在D盘下,创建一个xlsx文件,命名为bigdata。在sheet1中设计数据,第1行是文件表头,从第2行开始是数据,此文件有3列数据.。

kettle庖丁解牛第25篇之插入更新_作业_09

b、mysql库中的表数据

kettle庖丁解牛第25篇之插入更新_转换_10

c、创建转换

kettle庖丁解牛第25篇之插入更新_kettle_11

d、excel输入设置

增加Excel文件做为数据源

kettle庖丁解牛第25篇之插入更新_转换_12

kettle庖丁解牛第25篇之插入更新_插入更新_13

kettle庖丁解牛第25篇之插入更新_kettle_14

kettle庖丁解牛第25篇之插入更新_作业_15

指定工作表

kettle庖丁解牛第25篇之插入更新_kettle_16

kettle庖丁解牛第25篇之插入更新_作业_17

kettle庖丁解牛第25篇之插入更新_转换_18

kettle庖丁解牛第25篇之插入更新_插入更新_19

e、excle数据预览记录

kettle庖丁解牛第25篇之插入更新_作业_20

kettle庖丁解牛第25篇之插入更新_etl_21

kettle庖丁解牛第25篇之插入更新_作业_22

f、插入\更新组件

kettle庖丁解牛第25篇之插入更新_kettle_23

使用鼠标左键点击 Excel输入组件,按住shift键,从Excel输入组件拖拽到插入\更新组件,拖拽后的效果如下图:

kettle庖丁解牛第25篇之插入更新_etl_24

g、插入\更新设置

kettle庖丁解牛第25篇之插入更新_作业_25

h、运行转换

kettle庖丁解牛第25篇之插入更新_kettle_26

kettle庖丁解牛第25篇之插入更新_转换_27

kettle庖丁解牛第25篇之插入更新_转换_28

kettle庖丁解牛第25篇之插入更新_etl_29

i、验证结果表

kettle庖丁解牛第25篇之插入更新_转换_30

可以看到,通过id进行关联成功后,mysql库中的test表中的name和age列的值,已经被修改成excel文件中的数据了。excel中有2条记录和mysql的库表中关联不上的,这2条记录就insert到mysql的库表中了。

本篇文章主要讲解了:插入\更新组件的各种详细设置,最后实战演示了,从excel文件中读取数据,然后通过插入\更新组件,把excel中的数据和mysql库表中的数据通过指定进行关联,能关联上的,就update操作。关联不上的,就insert操作。

兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。

啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK