公司目前不同的业务系统用了不同的数据库,涉及到oracle、mysql、sqlserver。而一些核心的业务在mysql中,所以平时经常要把oracle、sqlserver中的数据插入到mysql中。
这部分最开始用的是 实时接口,java实现的,不过随着mysql里业务逻辑越来越多,数据量噌噌的增长,对实时接口的响应时不时的会出问题。所以决定改用批量处理接口,每2个小时传一次数据。
废话少说,我简化了其中一块接口,画了实现的流程图。从图中直接看出我用SSIS+存储过程实现的。SSIS只用来传数据,逻辑都放到存储过程中做。这样做是考虑到:往mysql插入或者更新数据时逻辑比较复杂,SSIS还不熟,还是存储过程靠谱,而且很多数据和合同、钱相关,用存储过程记log方便,也便于排查错误。
现在回想起来刚拿到这个项目时,我天,一团乱麻,现在再回头看只觉得小菜一碟。真心是:工具的使用都不要畏惧,总归用着用着就会了,关键需要思路,思路清晰了才是王道。
实现思路看图即可,存储过程的写法与SSIS的使用不在本篇范围内,以后有欲望再写。
(蓝色的是已经存在的业务表,绿色的是接口新建的用来传输数据和记录历史的表)