CDC全称:changed data capture
从源数据库抓取增量的数据到目标数据库。英文来描述更为准确点 Capture data events in source database and move only the changes to the target。
a.触发器:
在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。
b.时间戳:
它是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。同触发器方式一样,时间戳方式的性能也比较好,数据抽取相对清楚简单,但对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作。另外,无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制。
公司的DBA一般要求在建表时,都有gmt_create与gmt_modified字段,为ETL计算上还是有一定的帮助。
c.全表比对:
典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。MD5方式的优点是对源系统的倾入性较小(仅需要建立一个MD5临时表),但缺点也是显而易见的,与触发器和时间戳方式中的主动通知不同,MD5方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,MD5方式的准确性较差。
d.日志对比:
通过分析数据库自身的日志来判断变化的数据。Oracle的改变数据捕获(CDC,Changed Data Capture)技术是这方面的代表。CDC特性是在Oracle9i数据库中引入的。CDC能够帮助你识别从上次抽取之后发生变化的数据。利用CDC,在对源表进行insert、update或delete等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。CDC体系结构基于发布者/订阅者模型。发布者捕捉变化数据并提供给订阅者。订阅者使用从发布者那里获得的变化数据。通常,CDC系统拥有一个发布者和多个订阅者。发布者首先需要识别捕获变化数据所需的源表。然后,它捕捉变化的数据并将其保存在特别创建的变化表中。它还使订阅者能够控制对变化数据的访问。订阅者需要清楚自己感兴趣的是哪些变化数据。一个订阅者可能不会对发布者发布的所有数据都感兴趣。订阅者需要创建一个订阅者视图来访问经发布者授权可以访问的变化数据。CDC分为同步模式和异步模式,同步模式实时的捕获变化数据并存储到变化表中,发布者与订阅都位于同一数据库中。异步模式则是基于Oracle的流复制技术。
与oracle的技术不同,微软在SQL Server 2008中提供了一套半公开的Log Audit机制,以支持CDC技术。CDC的工作原理如下图:
◆当DML提交到应用数据库时,SQL Server必须写入日志,并在缓存中更新数据,然后在检查点将内存中的数据刷回数据文件。
◆CDC的内部进程根据CDC的设置,在日志文件中提取更新历史信息,并将这些个更新信息写入对应的更新跟踪表
◆DBA或开发人员通过调用CDC的函数来访问更新跟踪表,提取感兴趣的更新历史信息,并通过ETL应用程序更新数据仓库。
◆理论上面更新跟踪表事会无限制增长的,因此CDC内部有一个清理进程,在默认情况下更新跟踪信息在写入跟踪表三天后会被自动清理。
- 大小: 8.2 KB
分享到:
相关推荐
sqlserver 2008以上版本支持cdc技术。使用cdc实现对sqlserver数据库的增量抽取
本文简要介绍了ADI公司在CDC技术领域取得的一些成就,暗示了CDC技术在医疗保健应用中的巨大潜力。 1 简介 近年来,电子技术的进步为医疗保健行业的诸多创新和改进创造了条件。医疗保健设备面临的挑战包括提出...
基于CDC技术的电容式水平位移传感器,具有一定的参考价值。
近年来,电子技术的进步为医疗保健行业的诸多创新和改进创造了条件。本文简要介绍了ADI公司在CDC技术领域取得的一些成就,暗示了
cdc技术分析文章,基于flink-cdc做监控数据源的实时变更数据捕获。该文从基础定义、使用场景、分析、实际使用流程、源码分析、常见问题及解决方式等几个方向讲解了这个技术栈。如果公司有要使用搜索方案,涉及到业务...
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 课程介绍 ...更为用户调研了Flink的Flink CDC 2.0,基于1.x的技术痛点,2.0给出了更优化的解决方案,教程结合源码深入分析了其核心原理。
工作程序 4.1SOP由实验室按"SOP"要求自行编制, 经CDC技术负责人审批后发布,如涉及到其它部门的SOP由本CDC技术负责人组织其他子项目/核心的PI讨论后审批。 4.2实验室各种记录格式种类的增减及格式的制订、更改,应...
ibm cdc , iidr
VC 字符滚动,文字滚动例子,一个CDC字符滚动代码实例,文字在绘制的...在技术方面,主要是CString类的用法使用,可学习一下如何自定义VC 字体,如何绘制网格、定时器的使用和DrawText函数的运用以及CDC的裁减功能。
CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC 。目前通常描述的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术
Mentor Graphics表示,Sun公司已运用Mentor的0-In CDC(Clock-Domain Crossing)技术设计出UltraSPARC T1处理器。该处理器内含8个内核,能同时支持32组执行绪的64位...而Sun选择0-In CDC技术是因为它能检查比例式同步时
oracle数据库同步技术
大数据技术之Flink CDC视频教程[视频课程].txt打包整理.zip
和计算机图形学实用技术第二章配套的代码 主要是自己写的函数 没有调用CDC的函数 小菜鸟程序 呵呵
传统的数据库技术在系统要求不断刷新数据、实时商业智能和操作型数据存储方面都存在着很大不足。CDC(changedatacapture)技术提甲毛了一个完整的...通过研究CDC技术,给出了CDC技术在数据容灾领域中应用的典型技术框架。
德力西-CDC17交流接触器。 介绍了关于德力西-CDC17交流接触器的详细说明,提供德力西的技术资料的下载。
CM802-2LCD0802说明书LMB0820CDC.pdf
后来的CDC 6600同时采用了流水线和多功能部件。 到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。从此以后,流水线技术也...
腾讯CDC团队:前端异常监控解决方案.docx
关于同步OracleCDC的实现步骤[参考].pdf