- 数据如果保留多份,就会存在一致性问题,就需要同步。数据同步一般有两种方式:全量和增量。数据如果要保留副本,要么同时写(就是多写),或者进行复制:异步写(即从主数据拷贝到副本);
- 全量
1.每天定时(避开业务高峰期)或者周期性全量把数据从一个地方拷贝到另外一个地方;
2.可以采用直接全部覆盖(使用“新”数据覆盖“旧”数据);或者走更新逻辑(覆盖前判断下,如果新旧不一致,就更新);
3.这里面有一个隐藏的问题:如果采用异步写,主数据物理删除了,怎么直接通过全量数据同步?这就需要借助一些中间操作日志文件,或者其他手段,把这些“看不到”的数据记录起来。
4.存在问题
(1)数据量太大
5.优点
(1)逻辑比较简单,不像增量那样要处理有可能非常复杂的增量逻辑;
(2)一般不会造成数据的不一致情况;
6.全量构建
(1)每次更新时都需要更新整个数据集;
(2)查询时不需要合并不同Segment;
(3)不需要对后续的 Segment 合并;
(4)适合小数据量或全表更新的Cube;
7.数据备份
备份慢 ,但是备份恢复快,要求的磁盘空间多; - 增量
1.指抓取某个时刻(更新时间)或者检查点(checkpoint)以后的数据来同步,不是无规律的全量同步。这里引入一个关键性的前提:副本一端要记录或者知道(通过查询更新日志或者订阅更新)哪些更新了。
2.增量的基础是全量,就是你要使用某种方式先把全量数据拷贝过来,然后再采用增量方式同步更新。
3.采用更新时间戳、有的采用checkpoint等来标识和记录更新点。
4.存在问题:
(1)数据提供方,很难制作增量包,事无巨细都要记录,稍微记错就全完了;
(2)数据接收方,理解并且实施增量包的逻辑比较复杂,很容易造成数据的不一致;
(3)中间过程一旦出了问题,很难定位;
5.优点
(1)更新数据量较小,操作快;
6.增量构建
(1)只对需要更新的时间范围进行更新,计算量会较小;
(2)查询时需要合并不同Segment的结果 ,查询性能会受影响;
(3)累计一定量的Segment后需要进行合并;
(4)适合大数据量的Cube;
7.数据备份
备份速度相对快,但是恢复速度慢,磁盘空间要求少; - 差异备份
将新旧数据差异部分记录下来,这种备份方式备份速度、恢复速度、空间要求是一种折中的选择。 - 增量抽取时判别出新增或者发生变化的数据,两种方法
- 触发器方法: 当需要抽取的表中发生新增、修改、删除时,触发触发器,触发器将数据插入临时表,之后抽取只抽取临时表,抽取时对临时表数据打标记或者删除。
- 时间戳方法:
在源系统表中增加一个时间戳字段,在用户对这条记录进行增删改查时,更新时间戳,进行数据抽取时使用时间戳来判断这条记录是否要抽取。加时间戳优点为抽取相对简单,但是对源系统依赖较强。
参考:
1.https://blog.csdn.net/qq_2300688967/article/details/80341279?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161035440816780265439208%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161035440816780265439208&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-2-80341279.pc_search_result_cache&utm_term=%E5%85%A8%E9%87%8F%E5%A2%9E%E9%87%8F&spm=1018.2226.3001.4187
2.https://blog.csdn.net/h8b6Pk7M7r8/article/details/100718458?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161035440816780265439208%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161035440816780265439208&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-3-100718458.pc_search_result_cache&utm_term=%E5%85%A8%E9%87%8F%E5%A2%9E%E9%87%8F&spm=1018.2226.3001.4187
3.https://blog.csdn.net/weixin_43132433/article/details/82665231?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161035440816780265439208%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161035440816780265439208&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-10-82665231.pc_search_result_cache&utm_term=%E5%85%A8%E9%87%8F%E5%A2%9E%E9%87%8F&spm=1018.2226.3001.4187