美文网首页数据仓库数据仓库胖达君的超级工具
Kettle入门之五 Kettle应用场景(增量插入和更新)

Kettle入门之五 Kettle应用场景(增量插入和更新)

作者: 开心跳蚤 | 来源:发表于2017-12-08 15:51 被阅读484次

    Kettle应用场景

    在此,我们主要对示例2进行说明。

    为方便演示,我们在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的数据插入更新到数据表userB中。

    create database testA;
    use testA;
    create table `userA`(
        `id`int(10) primary key,
        `name` varchar(50),
        `age` int(3)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    insert into userA values(1,'张三',25);
    insert into userA values(2,'李四',29);
    insert into userA values(3,'王五',28);
    insert into userA values(4,'赵六',28);
    
    create database testB;
    use testB;
    create table `userB`(
        `idB`int(10) primary key,
        `nameB` varchar(50),
        `ageB` int(3)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    insert into userB values(1,'张三',20);
    insert into userB values(2,'李四',21);
    insert into userB values(3,'王五',22);
    

    操作步骤

    1、运行软件,进入主界面。点击左上角的 文件 → 新建 → 转换新建一个转换,并保存,转换的后缀名为ktr。

    2、点击面板左侧的 主对象树 ,选择 DB连接 右键,选择 新建新建数据库连接向导 分别创建对数据库A和数据库B的连接。

    选择“新建”选项的操作视图 选择“新建数据库连接向导”选项的操作视图 1 选择“新建数据库连接向导”选项的操作视图 2 选择“新建数据库连接向导”选项的操作视图 3

    注意: 如果在点击测试连接时出现下图所示错误,检查我们的安装目录下的lib中是否有对应数据库连接的jar包文件(如mysql的jar文件:mysql-connector-java-5.1.6-bin.jar),下载对应的jar,放到lib文件夹下,重启kettle软件,即可。

    3、点击面板左侧的 核心对象 ,选择 输入文件夹下的 表输入 并把它拖到右侧的编辑区中。

    4、双击编辑区的“表输入”图标,编辑数据输入源。

    5、点击面板左侧的 核心对象 ,选择 输出文件夹下的 插入/更新 并把它拖到右侧的编辑区中,按住 shift 画线连接 “表输入”。

    6、双击编辑区的“插入/更新”图标,编辑控件内容。

    用来查询的关键字,此处只选择主键id,表示这里按照id查询,如果此id存在,则更新数据,若不存在则插入数据。

    7、到这里,我们最简单的一个插入/更新数据的转换已经建立完成了,点击“校验这个转换”,Kettle会校验并给出简单的报告。没有任何问题。

    8、点击“运行这个转换”,选择“本地执行”,点击“启动”来执行这个转换。

    9、转换成功后,我们可以在控制台中看到如下信息。检查本地数据库,数据库A的userA表中的数据已经全部被插入更新到了数据库B的userB表中。

    注:此示例适用于插入和更新目标源数据,无法将已经源表中的删除的记录同步到目标表中

    上一篇: Kettle入门之四 Kettle定时任务(后台任务)
    下一篇: Kettle入门之六 Kettle应用场景(字段合并)

    相关文章

      网友评论

      • sfrost:楼主还在吗?
        如果源表删除的记录无法同步以目标表,那可以在前面加个执行SQL脚本,删除目标表中的记录;然后全量将源表中的数据插入到目标表中。
        插入/更新:这个组件可以用在一些ERP数据抽取过程中,因为业务单据是不能被删除的,但可能这些单据的状态会变化(事后取消、字段值变动),此时就需要不断地增量插入,同时更新已有数据。
        不过还是值得测试,就是全量插入和插入/更新这两者的效率。

      本文标题:Kettle入门之五 Kettle应用场景(增量插入和更新)

      本文链接:https://www.haomeiwen.com/subject/bcwdixtx.html