数据同步:当数据源发生改变时,其他相关数据也跟着发展变化。根据需求不同可采取以下方案。
1.触发器:在数据库建立增删改的触发器。触发器将变更放到一张临时表里。oracle同步cdc
优点:实时同步
缺点:影响到业务系统,因为需要在业务系统建立触发器
2.日志:通过分析源数据库日志,来获得源数据库中的变化的数据。oracle异步cdc
优点:不影响业务系统
缺点:有一定得延时,对于没有提供日志分析接口的数据源,开发的难度比较大
3.时间戳:在要同步的源表里有时间戳字段,每当数据发生变化,时间戳会记录发生变化的时间
优点:基本不影响业务系统
缺点:要求源表必须有时间戳这一列
4.数据比较:通过比较两边数据源数据,来完成数据同步。一般用于实时性要求不高的场景。
优点:基本不影响业务系统
缺点:效率低
5. 全表拷贝:定时清空目的数据源,将源数据源的数据全盘拷贝到目的数据源。一般用于数据量不大,实时性要求不高的场景。
优点:基本不影响业务系统,开发、部署都很简单
缺点:效率低
总结:
1. 上面五种数据同步方式,除了第五种都需要业务表有主键。
2. 对于没有触发器和日志的一些小型数据源,如txt 文本,excel 文件,Aceess,则只能使用后三种方式。
3. 对于大型数据源,一般优先选择日志方式,如 ORCALE Asynchronized CDC, 对于不能通过日志来实现的情况,可以考虑第1,3,4种方式。