kettle庖丁解牛第27篇之多种数据源统一输出

Posted 飞哥大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle庖丁解牛第27篇之多种数据源统一输出相关的知识,希望对你有一定的参考价值。

引言

在上一篇文章中,我们主要讲解的是:删除组件的各种详细设置,最后实战演示了,从excel文件中读取数据,然后通过删除组件,把excel中的数据和mysql库表中的数据通过指定进行关联,能关联上的,就进行删除操作。

在本篇文章中,我们要用前面讲的输入\\输出组件,汇总的讲一个小案例了。

数据的输入端,它是随便变化的(文本、excel、xml、json、表)。数据的输出端,它也是随便变化的(文本、excel、xml、json、表)。数据从输入端经过处理,最终数据通过输出端写出到目标位置保存,数据在kettle中流转罢了。这样看来kettle的输入组件和输出组件,非常符合开发的松耦合标准。

转换

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

创建转换

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

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_02

保存转换

kettle庖丁解牛第27篇之多种数据源统一输出_etl_03

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

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_04

kettle庖丁解牛第27篇之多种数据源统一输出_转换_05

实战演示

我们在日常工作中,数据来源也是非常多元化的。此处我们模拟一下,从文本文件\\excel\\csv,这3类文件中读取数据。然后通过表输出组件,把数据最终保存在指定的mysql库表中。转换整体设置效果如下图:

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_06

a、创建测试数据环境

操作语句

创建bigdata库

mysql> create database bigdata;

指定使用bigdata库

mysql> use bigdata;

创建test表

mysql> create table test(id int,name char(50),age int);

查询test表中的数据(无数据)

mysql> select * from test;

操作截图

kettle庖丁解牛第27篇之多种数据源统一输出_etl_07


b、创建txt文件

我在D盘下,创建一个txt文件,命名为test。第1行是文件表头,从第2行开始是数据。此文件有3列数据,每1列通过","分割。我使用的分割符,它是英文的。你要注意你的分割符,它是中文的?还是英文的?

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_08

c、创建excle文件

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

kettle庖丁解牛第27篇之多种数据源统一输出_作业_09

d、创建csv文件

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

kettle庖丁解牛第27篇之多种数据源统一输出_转换_10

e、文本文件输入设置

kettle庖丁解牛第27篇之多种数据源统一输出_etl_11

kettle庖丁解牛第27篇之多种数据源统一输出_作业_12

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_13

预览数据

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_14

kettle庖丁解牛第27篇之多种数据源统一输出_转换_15

kettle庖丁解牛第27篇之多种数据源统一输出_作业_16

f、Excel输入设置

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_17

kettle庖丁解牛第27篇之多种数据源统一输出_作业_18

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_19

预览数据

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_20

kettle庖丁解牛第27篇之多种数据源统一输出_etl_21

kettle庖丁解牛第27篇之多种数据源统一输出_作业_22

g、CSV文件输入设置

kettle庖丁解牛第27篇之多种数据源统一输出_转换_23

预览数据

kettle庖丁解牛第27篇之多种数据源统一输出_转换_24

kettle庖丁解牛第27篇之多种数据源统一输出_作业_25

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_26

h、追加流设置

此组件的功能非常简单,把2个数据流整合在一起,按指定的前后顺序一起输出。

kettle庖丁解牛第27篇之多种数据源统一输出_作业_27

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_28

i、字段选择设置

这个组件常常用来:选择字段、重命名字段、指定字段的长度或者精度。此处我们使用它,修改元数据字段的类型。

如果不使用此组件,在CSV文件输入组件和追加流关联时,就会报错:youre mixing rows with different storage types。

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_29

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_30

j、表输出设置

kettle庖丁解牛第27篇之多种数据源统一输出_作业_31

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_32

k、运行转换

kettle庖丁解牛第27篇之多种数据源统一输出_etl_33

kettle庖丁解牛第27篇之多种数据源统一输出_etl_34

kettle庖丁解牛第27篇之多种数据源统一输出_多数据源_35

kettle庖丁解牛第27篇之多种数据源统一输出_etl_36

l、验证结果表中数据

kettle庖丁解牛第27篇之多种数据源统一输出_kettle_37

兄弟们,看到mysql库表中的数据,是不是感觉非常爽,感觉之前那些组件没有白学,今天终于用上一些了。

其实,我只是随便编了一个案例,大家工作中还会遇到各种的案例。只要兄弟们把常用组件的基础打好,遇到各种案例就像拼积木一样,把组件组合在一起解决问题,就可以了。

结束语

本篇文章主要讲解了:一个综合小案例(从文本文件\\excel\\csv,这3类文件中读取数据。然后通过表输出组件,把数据最终保存在指定的mysql库表中)。

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

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


以上是关于kettle庖丁解牛第27篇之多种数据源统一输出的主要内容,如果未能解决你的问题,请参考以下文章

kettle庖丁解牛第21篇之SQL文件输出

kettle庖丁解牛第28篇之oracle数据迁移到mysql库

kettle庖丁解牛第2篇之初识kettle

kettle庖丁解牛第26篇之删除

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

kettle庖丁解牛第10篇之表输入