之前的业务需求是实现数据的增量同步,具体描述为:新增数据插入,变化数据更新,我使用输出中的插入更新即可。
现在业务提出新的需求:除前面描述外,还要实现源表数据删除时,目标表数据同样删除。
虽然我极其不推荐这样做,原因有三:
(1)数据库不应该真正存在delete操作,如果确实要删除一条数据的话,理论上应该在数据库中设置标志位,执行update,不向前端业务显示,但数据仍存在数据库中,便于追溯和回退;
(2)ETL实现删除数据的操作,一旦出现问题,很难查找和解释原因,容易出现互相扯皮和推诿现象;
(3)我需要重新开发ETL。虽然个人难以接受,奈何业务需求是天,我也得硬着头皮去完成,之后可能发生的事情,只能“走一步看一步”,听天由命了。记录关键过程如下:
1.转换的核心对象共4个,包括2个输入、1个合并记录和1个数据同步
【表输入在输入中找:合并记录在链接中;数据同步在输出中】分别设置源数据和目标数据,其中记录数量限制为0就是全部同步。