数据仓库学习笔记:数据仓库增量抽取(CDC)有哪些方式?


抽取处理需要重点考虑增量抽取,也被称为变化数据捕获,简称CDC。
假设一个数据仓库系统,在每天夜里的业务低峰时间从操作型源系统抽取数据,那么增量抽取只需要过去24小时内发生变化的数据。变化数据捕获也是建立准实时数据仓库的关键技术。CDC能够帮助你识别从上次提取之后发生变化的数据。
常用的变化数据捕获方法有时间戳、快照、触发器和日志四种。

  • 时间戳方法需要源系统有相应的数据列表示最后的数据变化。(弱点:要求业务系统的表必须一个可以标识新旧数据的字段)
  • 快照方法可以使用数据库系统自带的机制实现,如Oracle的物化视图技术,也可以自己实现相关逻辑,但会比较复杂。
  • 触发器是关系数据库系统具有的特性,源表上建立的触发器会在对该表执行insert、update、delete等语句时被触发,触发器中的逻辑用于捕获数据的变化。(优点:抽取性能高。缺点:需要业务表建立触发器,对业务系统有一定的影响。)
  • 日志可以使用应用日志或系统日志,这种方式对源系统不具有侵入性,但需要额外的日志解析工作。在对源表进行INSERT、UPDATE或 DELETE等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。

4种增量抽取方法

Kettle中通过触发器方式实现数据 增量更新 https://www.cnblogs.com/inuyasha1027/p/kettle_synchronized_trigger.html
在Kettle里使用时间戳实现变化数据捕获(CDC) https://blog.csdn.net/wzy0623/article/details/53885552
基于日志的同步数据一致性和实时抽取 https://blog.csdn.net/oqqssh/article/details/78386816
基于日志分析的增量数据捕获方法 https://wenku.baidu.com/view/e642dd8c27d3240c8547ef24.html
Kettle增量更新设计技巧 https://blog.csdn.net/chenyiming2010/article/details/80004412
Kettle:利用设置变量(时间戳)实现数据增量更新 https://blog.csdn.net/demonson/article/details/79852212
Kettle中通过触发器方式实现数据 增量更新 https://blog.csdn.net/demonson/article/details/79852191
一般数据库增量数据处理和数据仓库增量数据处理的几种策略 https://blog.csdn.net/weixin_33881041/article/details/85952018