概述

前面介绍了用sql去实现行列转换,而kettle在控件中拥有行列转换功能,是不是也可以做行列转换呢?


一、行转列

1.数据库脚本

create database test; use test; create table t_score( studentno int not null, #学号 name varchar(20) not null, #名字 subject varchar(10) not null, #科目 grade int default 0 #分数 ); INSERT INTO `t_score`(studentno,name,subject,grade) VALUES (1001,'王海', '语文', 86), (1001,'王海', '数学', 83), (1001,'王海', '英语', 93), (1002,'陶俊', '语文', 88), (1002,'陶俊', '数学', 84), (1002,'陶俊', '英语', 94), (1003,'刘可', '语文', 80), (1003,'刘可', '数学', 86), (1003,'刘可', '英语', 88), (1004,'李春', '语文', 89), (1004,'李春', '数学', 80), (1004,'李春', '英语', 87);

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(1)

2.总体行转列示意图

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(2)

2.1表输入配置

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(3)

2.2列转行配置

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(4)

2.3字段选择配置

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(5)

2.4文本文件输出配置

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(6)

输出到文件后查看内容

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(7)

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(8)

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(9)


二、列转行

1.数据库脚本

CREATE TABLE t_score2(studentno INT,name varchar(20),chinese INT,math INT,english int); INSERT INTO t_score2 VALUES(1001,'王海',70,74,76); INSERT INTO t_score2 VALUES(1002,'陶俊',80,82,84); INSERT INTO t_score2 VALUES(1003,'刘可',90,93,94); INSERT INTO t_score2 VALUES(1004,'李春',88,77,94);

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(10)

2.整体示意图

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(11)

2.1表输入

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(12)

2.2行转列

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(13)

2.3字段选择

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(14)

2.4Excel输出

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(15)

3.执行后查看输出文件

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(16)

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(17)


到这里我们就用kettle工具实现了行转列和列转行的功能,大家有空也可以测试一下。觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

kettle如何设置成数据集合(基于kettle工具实现数据表行列转换)(18)

,