前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >etl 增量对比解决方案 etl-engine 如何实现增量对比

etl 增量对比解决方案 etl-engine 如何实现增量对比

原创
作者头像
威哥
发布2023-03-15 14:02:53
8530
发布2023-03-15 14:02:53
举报
文章被收录于专栏:etl

什么是增量对比

增量是相对于全量来说的,它们都是处于“同步数据”这个场景中。

  • 全量同步实现的逻辑是不管原表与目标表数据是否发生过变量,都要定期将原表数据全部覆盖到目标表,以保证目标表数据的完整性。
  • 增量对比实现的逻辑是将原表与目标表的数据通过算法进行对比,然后只将差异数据(增加、删除、修改)同步到目标表,在最小化操作目标表的同时还保证了目标表数据的完整性。

增量对比的必要性

模拟一个使用场景,业务系统A表中的数据要同步到数据仓库B表中(最简单的样例是A表与B表结构完全一样),

  • 全量同步实现方式:

把A表数据全部同步到B表中,目的是让两表数据始终保持一致,这种方式一般都是采用简单粗暴的方式来实现,实现起来就是先删除B表数据,然后再将A表数据全部插入到B表。

优点是操作简单,缺点就是数据量大时(假设A表有1亿条记录,其中只有一条记录发生变化),也要先删除B表中的1亿条记录,然后再将A表中的1亿条记录插入到B表中 ,很显然全量同步方式已经不适合了。

  • 增量对比实现方式:

1、选择出A表与B表中业务属性相同的字段作为对比的主键;

2、根据主键进行两表的对比,如果主键不同,证明A表中有数据删除或新增;

3、如果主键相同,再对比其它字段,如果其它字段都相同证明数据未发生变化,否则A表中有数据做了修改。

4、将差异数据同步到B表中。

优点是只将差异化数据同步到B表中,缺点是要事先按条件进行筛选对比的记录集(事先做好充分的业务分析),否则要对比的数据量过大会占用大量内存进行运算,并且等待对比结果的时间也很长(对比时间的长短取决于对比数据量的大小)。

etl-engine增量对比节点

etl-engine 提供的增量对比节点实现了上述增量算法,只需要按配置要求进行相关配置,很容易实现增量对比效果并直接将差异数据入库到目标表(或转存差异数据),提高了开发人员及实施人员的工作效率。

增量对比逻辑
增量对比逻辑

增量对比场景1

场景1
场景1

增量对比场景2

场景2
场景2

参考资料

代码语言:javascript
复制
  [免费下载](https://github.com/hw2499/etl-engine/releases)
  [etl-engine使用手册](https://github.com/hw2499/etl-engine)
  [etl-crontab使用手册](https://github.com/hw2499/etl-engine/wiki/etl-crontab%E8%B0%83%E5%BA%A6)
  [嵌入脚本开发](https://github.com/hw2499/etl-engine/wiki/%E5%B5%8C%E5%85%A5%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91)
  [etl-engine配置样例](https://github.com/hw2499/etl-engine/wiki/etl-engine%E4%BD%BF%E7%94%A8%E6%A0%B7%E4%BE%8B)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是增量对比
  • 增量对比的必要性
  • etl-engine增量对比节点
  • 增量对比场景1
  • 增量对比场景2
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档