华为云ROMA平台FDI如何实现更新后的数据同步
最近用到ROMA平台将本地数据库的数据同步到华为云dws库中。有个场景,在增量同步过程中,如果源表中有一条新建的数据,已经被同步到目标表了,但是后续这条数据有更新操作,状态值status被改变,随之updatetime也会重置为当前系统时间。这个时候,FDI定时任务再次执行时,判断到updatetime有改动,就会再次将这条数据同步到目标表里,那么目标表就会存在2条ID相同,但是状态值status不同的数据,应该算作是重复的数据了。那么我们在使用目标表前需要对数据去重处理,只保留最新状态的那条数据,这就增加了一层数据加工环节,有些多余和浪费。
偶然间我发现原来ROMA是自带更新机制的,完美解决上面说到的问题,很简单,就是将源数据表和目标表的ID字段都设置为主键,那么ROMA会自动比对2个主键值是否一致,如果一致就执行更新操作,否则就新增。亲测有效