欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

kettle java代码组件(java新手代码大全)

程序员文章站 2023-11-10 11:38:10
概述row normaliser(行转列)此步骤将输入流的行转换为列。可以使用此步骤对列的重复组进行规范化。选项行转列row normaliser(行转列))步骤有以下选项:step name(步骤名...

概述

row normaliser(行转列)此步骤将输入流的行转换为列。可以使用此步骤对列的重复组进行规范化。

选项

kettle java代码组件(java新手代码大全)

行转列

row normaliser(行转列))步骤有以下选项:

step name(步骤名称):在画布上指定row normaliser(行转列)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

type field(type字段):指定输出数据中的新列的名称。

字段

fieldname(字段名称):要规范化的字段的名称。

type(key值):指定用于对字段进行分类的字符串。

new field(value字段):指定要在其中传输新值的字段。

get fields(获取字段):检索流中传入的所有字段的列表。

示例

示例采用一个栏目的每月访问量统计数据为基础演示数据,把栏目每月访问量一行数据转换以月为列的多行数据。

/*栏目每月访问量统计表*/

drop table if exists `catalog_traffic`;
create table `catalog_traffic` (
  `catalogid` varchar(10) not null comment '栏目编号',
  `catalogname` varchar(20) default null comment '栏目名称',
  `month1` bigint default 0 not null comment '1月访问量',
  `month2` bigint default 0 not null comment '2月访问量',
  `month3` bigint default 0 not null comment '3月访问量',
  `month4` bigint default 0 not null comment '4月访问量',
  `month5` bigint default 0 not null comment '5月访问量',
  `month6` bigint default 0 not null comment '6月访问量',
  `month7` bigint default 0 not null comment '7月访问量',
  `month8` bigint default 0 not null comment '8月访问量',
  `month9` bigint default 0 not null comment '9月访问量',
  `month10` bigint default 0 not null comment '10月访问量',
  `month11` bigint default 0 not null comment '11月访问量',
  `month12` bigint default 0 not null comment '12月访问量',
  primary key (`catalogid`)
) engine=innodb default charset=utf8;
insert  into `catalog_traffic`(`catalogid`,`catalogname`,`month1`,`month2`,`month3`,`month4`,`month5`,`month6`,`month7`,`month8`,`month9`,`month10`,`month11`,`month12`) values ('1','栏目1',166,676,8009,445,9900,909,909,345687,78734,7676,34434,3434);
insert  into `catalog_traffic`(`catalogid`,`catalogname`,`month1`,`month2`,`month3`,`month4`,`month5`,`month6`,`month7`,`month8`,`month9`,`month10`,`month11`,`month12`) values ('2','栏目2',767,676,545,454,9009,334,557,9033,343,56565,2323,34443);

1.建立数据库连接对象

示例采用mysql数据库作为示例,首先下载mysql驱动
https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47,然后放在在文件夹data-integrationlib下。然后重启spoon。如果已经添加过mysql驱动,则可由忽略此步骤。

切换至主对象树,双击db连接。

kettle java代码组件(java新手代码大全)

添加db连接

然后选项连接类型为mysql,并维护相关的链接信息。

kettle java代码组件(java新手代码大全)

维护数据库连接

连接信息维护完之后,点击测试,测试连接是否成功。

2.获取栏目每个月访问量统计表catalog_traffic数据作为数据输入源。

添加一个表输入步骤,数据库连接上面创建的db连接名称demo,然后从获取sql查询语句中选择表catalog_traffic,即可。

kettle java代码组件(java新手代码大全)

最后点击预览,预览结果数据。

kettle java代码组件(java新手代码大全)

预览数据

3.添加转换中的行转列步骤,并配置行转列选项

添加一个转换中的行转列。并建立从表输入到行转列的一个节点连接。

kettle java代码组件(java新手代码大全)

建立节点连接

在行转列配置key字段为month,然后获取点击获取字段,保留month1…month12,作为行专列字段,然后对应的key值为1…12,为对应月份的值。value的值设置为:count。

kettle java代码组件(java新手代码大全)

最后保存并点击运行。

kettle java代码组件(java新手代码大全)
kettle java代码组件(java新手代码大全)