数据同步之全量同步与增量同步
一、什么是数据同步
业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后再对数据进行分析统计。
为保证统计结果的正确性,需要保证数据仓库中的数据与业务数据库是同步的,离线数仓的计算周期通常为天,所以数据同步周期也通常为天,即每天同步一次即可。
数据的同步策略有全量同步和增量同步。
二、全量同步
全量同步,就是每天都将业务数据库中的全部数据同步一份到数据仓库,这是保证两侧数据同步的最简单的方式。
三、增量同步
增量同步,就是每天只将业务数据中的新增及变化数据同步到数据仓库。采用每日增量同步的表,通常需要在首日先进行一次全量同步。
四、策略对比
同步策略 |
优点 |
缺点 |
全量同步 |
逻辑简单 |
在某些情况下效率较低。例如某张表数据量较大,但是每天数据的变化比例很低,若对其采用每日全量同步,则会重复同步和存储大量相同的数据。 |
增量同步 |
效率高,无需同步和存储重复数据 |
逻辑复杂,需要将每日的新增及变化数据同原来的数据进行整合,才能使用 |
五、工具
工具 |
DataX/Sqoop |
Maxwell/Canal |
对数据库的要求 |
原理是基于查询,故若想通过select查询获取新增及变化数据,就要求数据表中存在create_time、update_time等字段,然后根据这些字段获取变更数据。 |
要求数据库记录变更操作,例如MySQL需开启binlog。 |
数据的中间状态 |
由于是离线批量同步,故若一条数据在一天中变化多次,该方案只能获取最后一个状态,中间状态无法获取。 |
由于是实时获取所有的数据变更操作,所以可以获取变更数据的所有中间状态。 |
DataX/Sqoop适用于全量同步,Maxwell/Canal适用于增量同步
数据同步之全量同步与增量同步相关推荐
- MaxCompute 实现增量数据推送(全量比对增量逻辑)
ODPS 2.0 支持了很多新的集合命令(专有云升级到3版本后陆续支持),简化了日常工作中求集合操作的繁琐程度.增加的SQL语法包括:UNOIN ALL.UNION DISTINCT并集,INTERS ...
- 基于Solr DIH实现MySQL表数据全量索引和增量索引
实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...
- solr mysql 增量索引_基于Solr DIH实现MySQL表数据全量索引和增量索引
实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...
- solr 从数据库导入数据,全量索引和增量索引(实例配置原理)
http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...
- solr 从数据库导入数据,全量索引和增量索引
首先说一下是从MySQL数据库导入数据 这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在sol ...
- 转:solr 从数据库导入数据,全量索引和增量索引(实例配置原理)
http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...
- mysql 数据增量备份_MySQL数据库之mysql全量备份、增量备份实现方法
本文主要向大家介绍了MySQL数据库之mysql全量备份.增量备份实现方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. mysql全量备份.增量备份.开启mysql的logb ...
- [搜索] Solr (三) 全量索引与增量索引
solr.home D:solr\home solr.war D:solr\server\solr 参考文档 IBM developerWorks 文档库 Apache Solr 的新特性 ...
- 什么是全量表,增量表,快照表,拉链表?
这一篇文章我们的目的是搞懂这四种表的概念,闲话不多说,直接看文字. 全量表 全量表没有分区,表中的数据是前一天的所有数据,比如说今天是24号,那么全量表里面拥有的数据是23号的所有数据,每次往全量表里 ...
最新文章
- 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别
- Python中文分词--jieba的基本使用
- 可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
- php程序xml有必要学习吗,对初学者非常有用的PHP技巧
- ActiveMQ学习总结(7)——ActiveMQ使用场景
- [转]冰山一角 管窥中国互联网的地下世界
- 变量名和变量地址之间的关系
- cents OS7配置 php curl.so方法
- 技术负责人 vs产品负责人_产品前的人
- 谷歌浏览器安装vue-devtools插件
- 天龙 - Terrain
- NULL, '\0',0 '0'的区别
- android 图片的处理方法,Android图片处理,ImageView的属性和方法大全
- 美团 python_Python | 美团差评数据分析
- 汤小丹计算机操作系统慕课版课后题答案第六章:虚拟储存器
- 极简工作法则- 泰普勒人生
- 台式电脑w ndows7密钥,windows7品牌机各版本oem密钥
- python sklearn库silhouette_score轮廓系数接口调用
- yolov5-6.1的完全使用手册,含模型训练测试(可训练自己的数据集)
- ​CES已是技术创新的风向标 2019年哪项技术独领风骚?
热门文章
- 编写一个程序,给出汉字你我他在Unicode 的位置,用java
- 如何通过对范德蒙德行列式的学习来领悟数学思维
- 看!数据分析领域中最为人称道的七种降维方法
- 我的世界java版种子掠夺者,《我的世界》1.14最适合新手的全能种子 你想要的冒险这里都有...
- 《阿里巴巴大数据之路》记录--数据模型篇
- 小程序下拉刷新属性讲解
- 新年开门红,Conflux成功入驻上海微软创投加速器第五期!
- Ewomail部署问题处理
- android版本号不能是float,Android知识点笔记
- 简单易用的任务队列-beanstalkd