`
jianchen
  • 浏览: 344764 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CDC技术

    博客分类:
  • BI
阅读更多

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
分享到:
评论

相关推荐

    基于CDC技术在医疗保健应用中的研究.pdf

    首先,CDC技术已经被应用于开发电容式触摸传感器控制器,提供了一种全新的用户输入方法。电容式触摸传感器可以模拟真实的物理按键、滑动条或滚轮,使得用户界面更加直观。这种传感器的工作原理是基于人体作为导体,...

    sqlserver_cdc 技术实例

    总的来说,SQL Server CDC技术通过记录数据库的变更日志,允许应用程序以低侵入性的方式获取和处理数据的增量变化,这对于大数据分析、数据仓库的更新和实时报表的生成具有重要意义。在Q3系统的场景中,利用这一技术...

    腾讯CDC技术团队博客选编.pdf

    腾讯CDC技术团队博客选编

    医疗电子中的基于CDC技术在医疗保健应用中的研究

    《医疗电子中的基于CDC技术在医疗保健应用中的研究》 随着科技的发展,电子技术在医疗保健领域的应用日益广泛,尤其在提高诊断准确性、治疗效率以及患者生活质量方面发挥了重要作用。其中,电容数字转换器(CDC)...

    基于CDC技术的电容式水平位移传感器

    基于CDC技术的电容式水平位移传感器,具有一定的参考价值。

    Questa_CDC_User_Guide.pdf

    10. CDC的未来:随着设计复杂性的增加和同步电路中亚稳态问题的挑战,CDC技术的未来可能包括更加智能化的设计和验证工具,能够自动识别并解决跨时钟域的问题,或在设计早期阶段就提供预测和建议。 以上知识点是基于...

    CDC复制指南15112730.pdf

    文档中还出现了诸如“InfoSphere CDC for solidDB”以及在不同操作系统(Windows、UNIX/Linux)下的InfoSphere CDC,这些信息表明IBM CDC解决方案支持多种操作系统平台,使得用户可以在不同的环境中部署CDC技术。...

    基于 Flink CDC 打造 企业级实时数据集成方案.pdf

    Flink CDC 是基于 Flink 的 Change Data Capture(CDC)技术,旨在提供实时数据集成方案。 CDC 技术主要面向数据库的变更,是用于捕获数据库中数据变更的技术。 Flink CDC 实现了全增量一体化读取的数据集成框架,...

    基于flink-cdc实现监控数据源的实时变更数据捕获

    随着实时性需求的增长,基于日志的CDC技术如Flink-CDC可以实现实时消费数据库日志,保证数据一致性,适用于需要实时数据的业务。而基于查询的工具如Kettle、DataX更适合数据抽取、转换和历史数据同步。 **三、为何...

    USB_cdc.zip

    USB CDC(Communication Device Class)是一种通用串行总线(Universal Serial Bus)标准,它允许设备通过USB接口模拟串行通信接口,例如COM端口。...对于想要深入理解和应用USB CDC技术的人来说,这是一个很好的资源。

    cdc.zip_0in cdc check违例_CDC_zip

    在IT行业中,CDC(Change Data Capture)是一种数据库技术,用于捕获和跟踪数据库中的更改,以便后续处理或分析。此技术对于数据仓库、实时数据分析和系统间的同步至关重要。"0in cdc check违例"可能是指在执行CDC...

    IBM CDC 白皮书

    1. **数据仓库建设**:在构建数据仓库时,通过CDC技术可以确保数据仓库中的数据始终是最新的,同时避免了不必要的数据传输,降低了对生产环境的影响。 2. **SOA集成**:在SOA架构中,CDC可以实现服务之间的实时数据...

    基于 Flink CDC 实现海量数据的实时同步和转换.pdf

    Flink CDC 是 Apache Flink 中的一种 Change Data Capture(CDC)技术,用于实时捕获和处理海量数据的变化。CDC 技术可以分为两大类:基于查询的 CDC 和基于日志的 CDC。基于查询的 CDC 通过离线调度查询作业,...

    Oracle CDC 数据同步9i/10G

    3. **CDC 技术**: - **逻辑日志读取器**:Oracle 提供的 LogMiner 工具用于分析重做日志,提取 DML 操作。 - **物理日志读取器**:通过监听数据库的 REDO LOG 文件,实时捕获更改事件。 4. **Oracle CDC 实现**...

    oracle_cdc

    Oracle CDC技术为数据同步领域带来了革命性的改进,尤其是对于处理大量、高速变化的数据集时,能够提供高效、灵活且低侵入性的解决方案。无论是同步还是异步模式,都能满足不同业务场景下的需求,为企业级数据管理...

    大数据技术之Flink CDC视频教程[视频课程].txt打包整理.zip

    这门视频课程对于那些希望深入了解大数据实时处理和Flink CDC技术的开发者来说,是一份宝贵的资源。通过学习,你可以更好地理解如何在大数据环境中实现高效的数据同步,为企业的实时数据分析和决策提供强大的支持。

    基于 Flink CDC 高效实现海量数据实时入湖入仓.pdf

    Flink CDC 是一种开源的 Change Data Capture(CDC)技术,它可以实时捕捉数据库中的变化,然后将其同步到下游系统中。 Flink CDC 技术 Flink CDC 是一种实时的数据同步技术,它可以实时捕捉数据库中的变化,然后...

    CDC(Change Data Capture)增量抽取

    CDC技术可以有效地捕获这些变化,减少数据加载的时间和资源消耗。 2. **实时数据分析**: CDC可以为实时分析提供支持,通过实时捕获数据变化并及时处理,帮助企业实现业务洞察和决策支持。 3. **数据复制与同步**:...

    usb cdc 文档

    USB CDC(通用串行总线通信设备类)是USB设备类定义的一部分,它允许设备通过USB接口模拟传统的串行...在实际应用中,USB CDC技术广泛应用于移动设备、工业自动化、物联网设备等领域,提供灵活且高效的通信解决方案。

    usbcdc类实例,usb转虚拟串口

    USB CDC(Communication Device ...USB CDC技术广泛应用于嵌入式系统、物联网设备、模块化通信产品等,因为它提供了通用的串口通信方式,简化了跨平台的兼容性问题,同时利用USB的高速数据传输能力,提升了通信效率。

Global site tag (gtag.js) - Google Analytics