大数据-数仓-数据采集-业务数据(一):全量同步(DataX、Sqoop) v.s. 增量同步(Maxwell、Canal)

 在这里插入图片描述

在这里插入图片描述

 一、全量同步策略

  • 解释:每日全量,就是每天都将业务数据库中的全部数据同步一份到数据仓库,是保证两侧数据同步的最简单的方式
  • 适用:表数据量不大,且每天即会有新数据插入,也会有旧的数据修改
  • 例如:编码字典表、品牌表、商品三级分类表、商品二级分类表、商品一级分类表、优惠规则表、活动表、活动参与商品表、加购表、商品收藏表、优惠券表、SKU商品表、SPU商品表

二、增量同步策略

  • 解释:每日增量,就是每天只将业务数据中的新增及变化的数据同步到数据仓库中,
  • 适用:表数据量大,且每天只会有新的数据插入的场景,
  • 特点:采用每日增量的表,通常会在首日先进行一个全量同步。
  • 例如:退单表、订单状态表、支付流水表、订单详情表、活动与订单关联表、商品评论表

三、数据同步策略的选择

两种策略都能保证数据仓库和业务数据库的数据同步,那应该选择哪个呢?

同步策略

优点

缺点

全量同步

逻辑简单

某些情况下效率低下

增量同步

效率高,无需同步和存储重复的数据

逻辑复杂,需要将每日的新增及变化数据同原来的数据进行整合,才能使用

结论:

若业务表数据量比较大,且每天的数据变化比例还比较低,这时应采用增量同步,否则采用全量同步。

四、同步工具概述

1.种类繁多的数据同步工具中,大致可以分为两大类:

① 基于Select查询的离线、批量同步工具,代表:DataX、Sqoop;

② 基于数据库数据变更日志(mysql的binlog)的实时流式同步工具,代表:Maxwell、Canal;

2.上述同步工具的全量或增量同步适用如下:

同步类型

DataX、Sqoop

Maxwell、Canal

全量同步

Ö

增量同步

Ö

Ö

3.同步工具之间对增量同步不同方案的对比

对比                增量同步方案

DataX、Sqoop

Maxwell、Canal

对数据库的要求

基于查询,需要数据中存在判别数据产生和修改的时间标记,如:create_time、update_time字段。

要求数据库记录变更操作,如:Mysql开启binlog

中间状态

离线批量同步,若数据在一天中多次修改,该方案只会保留最后一个状态,中间状态如法获取。

由于是实时获取所有的数据变更操作,所以可以获取变更数据的所有中间状态。

推荐:全量同步采用DataX,增量同步采用Maxwell




猜你喜欢

转载自blog.csdn.net/u013250861/article/details/130040630