Kettle使用_1转换之错误处理

需求:通过kettle配置数据转换失败的日志记录.

解决方法:通过表输入、表输出、文本文件输出等组件完成该功能.

注: 其它案例详见 ETL-Kettle专栏 Kettle 50个脚本(代码)

1)  配置数据库连接,这里输入连接名、主机名称、数据库名称、数据库用户名、密码等数据库的基本信息

2)  新建立个转换,或者通过快捷键Ctrl+N建立

 

3) 在核心对象里找到输入这个分类,然后下拉找到表输入组件

4)定位到表输入这个组件并将其拖放到右边的面板中

5)双击表入组件,对组件相应内容进行修改

6)创建验证表tb_kettle并插入数据后修改表输入组件中SQL的内容见下截图示意:

CREATE TABLE `tb_kettle` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '元数据标识',
  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `des` varchar(6) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULTCHARSET=utf8;

INSERT INTO tb_kettle(name, birthday, des)
  VALUES ('Tom', '1988/3/23 0:00:00', 'good');

INSERT INTO tb_kettle(name, birthday, des)
  VALUES ('Tim', '1978/2/16 0:00:00', 'nice');

INSERT INTO tb_kettle(name, birthday, des)
  VALUES ('Kate', '1968/6/24 0:00:00', 'badguy');

INSERT INTO tb_kettle(name, birthday, des)
  VALUES ('Mike', '1998/3/13 0:00:00', 'badman');

7)我们先定义好要输出的表结构,这里为了演示错误处理的过程,故意将des字段定义短了些,见如下SQL语句.

CREATE TABLE `tb_kettle_out` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '元数据标识',
  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `des` varchar(4) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

注:此步可直接在数据库里执行,也可以在表输入组件里执行该DDL.

7)同理找到输出这个分类并找到表输出这个组件,然后拖到右边面板中.这时需要做个动作:点击表输入组件,按住SHIFT键,将表输入和表输出连接起来,见下图所示:

8)双击表输出组件,选择要输出的表,如果tb_kettle_out已经在数据库里建好则只需要选择即可,如果还未创建,可以参照步骤9

9)如果想在表输入时执行DDL,可参见下面的步骤,先双击表输出组件,在选中表后执行DDL,详细步骤见下图所示:

10)同理拖动一个文本文件输出组件并将表输出和其连接,这里选择错误处理步骤

11)右击表输出,选中定义错误处理选项并定义错误相关的字段名称,具体见下图: 

 

12)右击文本文件输出,设置错误文件要输出的字段,具体设置见下图: 

 

13)运行转换并验证执行结果

 

打开错误文本文件不难发现tb_kettle里的4条记录有2条在错误日志内:

同时查看tb_kettle_out不难发现进来了2条记录.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShenLiang2025

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值