在用kettle进行数据同步时,发现一个问题:目的数据库的数据少于源数据库的数据,丢失的数据去哪里了呢?

先上图:

kettle 数据同时插入删除问题kettle 数据同时插入删除问题

步骤1:从源数据库抽取数据

步骤2:删除目的数据库的数据

kettle 数据同时插入删除问题kettle 数据同时插入删除问题

步骤3:插入到目的数据库


但是问题来了,这么简单的一个过程,到底是哪里出了问题呢?

首先,我们需要了解kettle的运行过程,如上图,步骤1,2,3虽然是按照顺序执行的,但是是并行的!也就是说步骤1,2,3都是一条条数据执行的。

可以想象,步骤1不断地在抽取数据,步骤2不断地删除数据,步骤3不断地插入数据,目的数据库最后数据的多少就看各自的运行速度了。


那么怎么解决呢?

首先,把数据删除的执行脚本放在最前面,与并行的步骤分离

kettle 数据同时插入删除问题kettle 数据同时插入删除问题

然后,把红圈中的勾去掉,数据删除不再一条条执行

kettle 数据同时插入删除问题kettle 数据同时插入删除问题


最后执行一下,数据缺失问题也解决啦!


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-12
  • 2021-12-13
  • 2021-08-25
  • 2021-12-12
  • 2021-08-12
猜你喜欢
  • 2021-08-26
  • 2022-12-23
  • 2021-04-30
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
相关资源
相似解决方案