能用全量别用增量0525

作者: 红尾黄花鱼 | 来源:发表于2016-05-25 15:19 被阅读215次

两个系统之间需要同步数据,同步的方法可以分为全量和增量两种形式。多年的经验告诉我,能用全量就别用增量。增量有三个问题

  1. 数据提供方,很难制作增量包,事无巨细都要记录,稍微记错就全完了
  2. 数据接收方,理解并且实施增量包的逻辑比较复杂
  3. 中间过程一旦出了问题,很难定位

这里为了方便讨论,假设有两个系统,其中系统A拥有全深圳所有纳税人的当月工资,系统B需要从系统A同步这个数据。对于系统A来说,它的数据在不停的变化,但是可以分成三类

  1. 新增,比如说有毕业生来深圳打工
  2. 删除,比如说有人离职离开深圳了
  3. 变化,比如说有人涨工资了

这个时候,同步数据的方法很难决策,全量同步不合适,数据量太大而且还不值当,毕竟变化的部分比较少。增量同步又怕麻烦,一旦某次同步出问题,很难倒查故障和恢复。

其实,可以有一种折中方案,上不了台面,但是值得尝试。为了方便理解,还是以上面的例子来讨论。

我们知道所有人都有身份证号码,其中有一部分为年月日,表示生日。我们按照生日,在系统A将数据进行分组,这个分组是逻辑上的,不是真实的。如果有个人,工资涨了,生日为1999.9.1,那么系统A就记录分组1999.9.1的数据发生了变化。假设两个系统之间的同步周期是每天同步一次,那么系统A只需要整理这段时间那些分组发生了变化,但是不用记录变化的实际内容。系统B就老老实实将发生变化的分组数据删掉,然后全量同步这些分组的数据。

这个方案,就是赌每天发生变更的数据不会那么巧,波及所有分组,只会有很小的一部分分组发生变化。这样从整体看,只是同步了部分数据,从分组看又是简单的全量同步。这个方案的巧妙之处就是选择合适的分组标准,既要分的足够细,又要足够直接,方便程序处理。

相关文章

  • 能用全量别用增量0525

    两个系统之间需要同步数据,同步的方法可以分为全量和增量两种形式。多年的经验告诉我,能用全量就别用增量。增量有三个问...

  • 【MySQL】xtrabackup实战版

    备份脚本 全量备份脚本 增量备份脚本 全量恢复 增量恢复 全量备份脚本 增量备份脚本 目录结构 其中mysql_d...

  • MySQL 全量增量备份方案 -3- 全备脚本与每日定时备份——

    MySQL 全备与增备方案请参考 MySQL 全量增量备份方案 -1-全量备份实现 MySQL 全量增量备份方案 ...

  • ReactNative热更新&拆包

    目录 1)全量热更新-Android 2)拆包增量更新-Android 3)图片增量更新-Android 4)全量...

  • Mysql使用mysqldump和mysqlbinlog进行备份

    1. 全量备份和增量备份 备份策略总的来说分为两种:全量备份和增量备份。 全量备份:每次备份都备份当前系统中的所有...

  • Gradle增量编译一前言

    何为增量编译?在讲增量编译时首先先介绍介绍下全量编译。在增量编译诞生前每次的代码编译都是全量编译(Maven可以指...

  • Linux_274_Rsync增量备份

    Rsync增量备份,首次传输采用全量传输,之后采用全量传输效率较低,采用增量传输效率高rsync在数据备份的时候,...

  • Redis主从同步策略

    Redis主从复制可以根据是否是全量分为全量同步和增量同步。 1 全量同步 Redis全量复制一般发生在Slave...

  • 架构基础-第一节

    1.scp全量备份 2.rsync增量备份

  • 2021-01-08

    flink cdc同步binlog是怎么指定全量+增量还是增量消费https://github.com/verve...

网友评论

    本文标题:能用全量别用增量0525

    本文链接:https://www.haomeiwen.com/subject/zdjtdttx.html