CDC介绍及代码

CDC是数据库中用于捕获增量变更的技术,它可以高效、低延迟地将变更传播到其他系统。本文介绍了基于触发器和事务日志两种CDC方法,包括各自的优缺点。触发器CDC在每个表上创建触发器,记录所有事务的详细日志,但可能降低数据库性能;事务日志CDC利用数据库事务日志,对生产环境影响小,但解析日志复杂,可能需要额外的缓冲和恢复策略。
摘要由CSDN通过智能技术生成

1.简介

       CDC是指从源数据库捕获到数据和数据结构(也称为模式)的增量变更,近乎实时地将这些变更,传播到其他数据库或应用程序之处。通过这种方式,CDC能够向数据仓库提供高效、低延迟的数据传输,以便信息被及时转换并交付给专供分析的应用程序。

       在数据不断变化,且无法中断与在线数据库连接的情况下,对于各种时间敏感(time-sensitive)类信息的复制,往往也是云端迁移的重要组成部分。与批量复制相比,变更数据的捕获通常具有如下三项基本优势:

  • CDC通过仅发送增量的变更,来降低通过网络传输数据的成本。
  • CDC可以帮助用户根据最新的数据做出更快、更准确的决策。例如,CDC会将事务直接传输到专供分析的应用上。
  • CDC最大限度地减少了对于生产环境网络流量的干扰。 

2.基于触发器的CDC

  • 我们需要为参与数据复制的每个表,创建三个触发器,当数据记录发生如下特定事件时,则会触发相应的操作:
  1. 将新的记录插入数据表时,触发的是INSERT触发器。
  2. 数据记录发生变更时,触发的是UPDATE触发器。
  3. 数据记录被删除时,触发的是DELETE触发器。
  • “事件历史”的影子表被存储在数据库本身,并由各种状态改变事件的序列所组成。
  • 每当对象的状态发生变化时,新的事件都会被附加到该序列中。据此,有关变更记录的信息,也会被转移到“事件历史”的影子表中。
  • 最后,根据历史表中的各个事件,变更会被传输到目标数据库中。
  • 由于源数据库中的每个表都需要一个触发器,因此在有变更发生时,在操作表上运行触发器的开销也会随之增加
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值