数据同步 模式汇总

目录

1 全量同步

1.1 全表覆盖

1.2 差异更新

2 增量同步

2.1 时间戳

2.2 触发器

2.3 日志解析


BeeDI支持全量及增量数据同步功能,可定时或实时保持目标与源端数据一致。

1 全量同步

BeeDI将源表全部数据(或满足特定过滤条件的部分数据)同步到目标表,当源表数据量较大时,同步时间较长。依据同步前是否删除目标表已有数据可选择全表覆盖或差异更新方式。

1.1 全表覆盖

在同步数据前首先删除目标表已有数据(或依据过滤条件删除特定数据),然后将源表数据批量写入目标表。

全表覆盖方式每次同步前需要删除目标表已有数据,会对依赖目标表的查询业务产生影响,通常用于首次数据初始化或定时同步。

数据同步 模式汇总_第1张图片数据同步 模式汇总_第2张图片

1.2 差异更新

比较源表和目标表所有数据(或满足特定过滤条件的部分数据),根据数据差异情况对目标表进行相应操作,对于缺失数据则新增,对于变更数据则更新,对于冗余数据则删除。

差异更新方式需要逐条比对数据,同步时间较长,由于需要使用内存缓冲,所以对于每次同步的数据量有一定的限制,通常用于小规模数据定时同步。

数据同步 模式汇总_第3张图片

2 增量同步

BeeDI每次仅同步源表变化数据,同步效率高,但要求源表或源库满足一定的条件。

2.1 时间戳

要求源表存在一个或多个字段(时间戳),其值随着新记录的增加而不断递增,数据同步时,程序通过时间戳对数据进行过滤,同步结束后,程序记录时间戳信息。

时间戳可以同步新增或更新数据(依赖于时间戳变化),对于删除数据则无法同步。

时间戳模式通过记录包含的时间或序列快照识别变化数据,适合于业务数据变化不频繁时段的定时同步需求。

数据同步 模式汇总_第4张图片

​​​​​​​2.2 触发器

需要在源数据库中创建触发器和临时表(自动创建),触发器捕获变化的数据到临时表中,同步时程序从临时表读取变化数据。

触发器可以捕获源表的增、删、改操作,按照临时表中数据标记的时间序列信息在目标表执行相应的操作。

触发器需要临时表缓存变化数据,产生额外的磁盘开销,另外当数据批量更新时,触发器可能导致业务操作异常。

触发器模式通过临时表中数据标记的时间识别变化数据,适合于业务数据变化较小的准实时同步需求。

数据同步 模式汇总_第5张图片

​​​​​​​2.3 日志解析

源库要求以下类型数据库:

Oracle(8i、9i、10g、11g、12c)

SQL Server(2005、2008、2012、2014)

MySQL(5.6、5.7、8.0)

DB2(9.5、9.7、10.5)

Gbase(8.3)

PostgreSQL(10.5、11.8、12.3)

程序读取解析源库日志信息,还原增、删、改操作,然后在目标表上顺序执行相应操作。

日志解析需要源库开启归档、完整或二进制日志,产生较大的磁盘开销。

日志解析模式可以完整还原DML事务操作序列,可满足业务数据变化较大的实时同步需求。

数据同步 模式汇总_第6张图片

你可能感兴趣的:(数据同步,实时同步,数据集成,数据库,数据仓库,database)