CDC简介1
CDC是一种数据增量处理技术在构建数据仓库系统的ETL过程中,增量数据的抽取是一个非常关键的环节
对解决方案一般有两点要求:准确性,能够将业务系统中的数据按一定的频率准确的取到数据仓库中性能,不能对业务系统造成太大的压力,影响现有业务目前,最为常用的ETL增量数据处理方式有三种:时间戳日志对比(CDC)全面数据对比三种方式各有优劣,时间戳是目前应用比较普遍的方式
在Oracle=中推出了两种主要的ETL方案,一种是我们熟悉的物化视图(materializedview),另一种就是本文将要介绍的CDC组件(ChangeDataCapture改变数据捕获)
CDC特性是在Oracle9i数据库中引入的
CDC能够帮助你识别从上次提取之后发生变化的数据
利用CDC,在对源表进行INSERT、UPDATE或DELETE等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中
这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统
CDC与传统增量处理方式的对比分析我们对比一下CDC方式与传统的全表对比与时间戳方式
全表对比使用数据仓库中的当前表与业务系统表进行对比,取得变化了的数据,典型是使用minus语句:SELECT*FROMnew_versionMINUSSELECT*FROMold_version;OracleCDC操作手册Oracle的增量数据处理方案中联新时代使用全表对比有以下几方面的问题:需要将业务系统中表全部转输,造成很高的网络负载需要对两版本的表进行全表扫描,性能代价非常高无法反映数据的历史状态,如无法捕捉库存的历史变化记录还有一种常用的方式是时间戳,它是以业务表中某一个字段的值,作为判断新旧数据的标志
如,”病人费用记录”中的登记时间,每次只抽取上次抽取记录时间以后产生的数据