首页 > 其他分享 >Kettle增量插入和更新

Kettle增量插入和更新

时间:2022-12-03 12:07:23浏览次数:52  
标签:insert 增量 数据库 Kettle 插入 values userA userB into

将数据源A库中的某张表的数据插入更新到数据库B中。

​为方便演示,我们在数据库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。

Kettle增量插入和更新_数据

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

Kettle增量插入和更新_数据库_02

Kettle增量插入和更新_数据库_03

选择新建选项的操作视图

Kettle增量插入和更新_数据库_04

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

Kettle增量插入和更新_数据库连接_05

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

Kettle增量插入和更新_数据_06

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

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

Kettle增量插入和更新_数据库_07

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

Kettle增量插入和更新_数据库连接_08

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

Kettle增量插入和更新_数据_09

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

Kettle增量插入和更新_数据_10

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

Kettle增量插入和更新_数据_11

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

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

Kettle增量插入和更新_数据库_12

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

Kettle增量插入和更新_数据库_13

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

Kettle增量插入和更新_数据库_14

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

Kettle增量插入和更新_数据_15


标签:insert,增量,数据库,Kettle,插入,values,userA,userB,into
From: https://blog.51cto.com/u_15867943/5900802

相关文章

  • SQLServer中批量插入数据方式的性能对比
    昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的性能优化问题,顿时来了兴趣,把自己的想法向两位同事说了一下,于是有了本文。公司技术背景:数......
  • ASP.NET 向SQLSERVER中批量插入数据
    usingSystem.Data;usingSystem.Diagnostics;usingSystem.Data.SqlClient;stringconnectionString="DataSource=HG-J3EJJ9LSW5PY;InitialCatalog=Test......
  • C#中数据的批量插入和更新_Asp.net
    对于海量数据的插入和更新,ADO.NET确实不如JDBC做到好,JDBC有统一的模型来进行批操作.使用起来非常方便: PreparedStatementps=conn.prepareStatement("insertorupd......
  • golang的插入排序算法
    1、什么是插入排序?先看一个例子:{7,6,1,9,3}无序数列中,我们约定好无序数列的第一个元素7作为有序数列{7},然后分别对{6,1,9,3}的数与7进行比较移位得到新的有序数列。第一次迭......
  • 【问题】Unknown return value type: java.lang.Integer springboot插入数据 报错
    很诡异的事情发生了。。。。。。。在使用springboot搭建一个springboot整合mybatis的demo时,测试插入数据的方法,数据成功插入数据库了,但是控制台却报了这个错,提示为止返回类......
  • POI插入行,合并行的单元格
    1、POI插入行,合并行的单元格2、代码/** * *@Title:insertRow *@Description:TODO插入行 *@paramsheet *@paraminsertRowIndex *@Author:......
  • 力扣 701. 二叉搜索树中的插入操作
    701.二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据 保证 ......
  • Kettle字段合并
    将数据源A库中的某张表或某几个表中的字段合并后的数据插入到数据库B中。我们在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的字段“surname”......
  • MyBatis批量插入的五种方式
    前言这里我列举了MyBatis和MyBatis-Plus常用的五种批量插入的方式,进行了详细的总结归纳。准备工作MyBatis利用For循环批量插入MyBatis的手动批量提交MyBatis以集合方......
  • leetcode-搜索插入位置
    intsearchInsert(std::vector<int>&nums,inttarget){inti=0;intsize=nums.size();for(;i<size;i++){if(nums[i]>=target){......