miki艾比利的博客

愿居于一城,与卿所见美好......

您现在的位置是:首页>漫生活>详细内容

【转载】kettle转换定义错误处理

发布时间:2019-10-10 14:23:55 编辑:miki艾比利浏览(1050)评论(0)

    Kettle使用_1转换之错误处理

    2018-03-14 23:19:24 SunShine2025 阅读数 4782更多

    分类专栏: ETL

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    本文链接:https://blog.csdn.net/shenliang1985/article/details/79561802

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

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

     

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

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

     

     

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

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

     

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

     

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

    1. CREATE TABLE `tb_kettle` (
    2.   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '元数据标识',
    3.   `name` varchar(100) DEFAULT NULL COMMENT '姓名',
    4.   `birthday` date DEFAULT NULL COMMENT '出生日期',
    5.   `des` varchar(6) DEFAULT NULL,
    6.   PRIMARY KEY (`id`)
    7. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULTCHARSET=utf8;
    8.  
    9. INSERT INTO tb_kettle(name, birthday, des)
    10.   VALUES ('Tom', '1988/3/23 0:00:00', 'good');
    11.  
    12. INSERT INTO tb_kettle(name, birthday, des)
    13.   VALUES ('Tim', '1978/2/16 0:00:00', 'nice');
    14.  
    15. INSERT INTO tb_kettle(name, birthday, des)
    16.   VALUES ('Kate', '1968/6/24 0:00:00', 'badguy');
    17.  
    18. INSERT INTO tb_kettle(name, birthday, des)
    19.   VALUES ('Mike', '1998/3/13 0:00:00', 'badman');

     

     

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

    1. CREATE TABLE `tb_kettle_out` (
    2.   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '元数据标识',
    3.   `name` varchar(100) DEFAULT NULL COMMENT '姓名',
    4.   `birthday` date DEFAULT NULL COMMENT '出生日期',
    5.   `des` varchar(4) DEFAULT NULL,
    6.   PRIMARY KEY (`id`)
    7. ) 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条记录.

     

     

     

关键字词:ETL#kettle#错误处理