CDC (Change Data Capture) - 变化数据捕捉

CDC

指识别和捕获对数据库中的数据所做的更改(包括数据或数据表的插入、更新、删除等),然后将这些更改按发生的顺序完整记录下来,并实时通过消息中间件传送到下游流程或系统的过程。

通过这种方式,CDC能够向数据仓库提供高效、低延迟的数据传输,以便信息被及时转换并交付给专供分析的应用程序。

传统ETL过程,是周期性将数据通过T+1的方式进行全量同步,再分析,再通过BI报表展示给用户。实时性低,数据量大。

常见方式

  • 基于查询的CDC

    在数据表上进行时间列、自增列的添加,通过修改时间列、插入自增列表示插入、变更的记录,侵入性强,且无法获取删除操作的变更
     
  • 基于触发器的CDC

    将变更数据存入临时表,变更数据需要多次写入,有一定的侵入性
     
  • 基于快照的CDC

    能够捕获所有的更改,需要大量的存储空间来存储快照数据,实时性低
     
  • 基于日志的CDC

    最优的实现方式,实时性高,无侵入性,能够捕获所有的更改

CDC变更日志流

变更发送的信息流包括四种消息状态语义,

  • INSERT(+I):新插入的数据记录行
  • UPDATE_BEFORE(-U):数据记录行被更新前的数据
  • UPDATE_AFTER(+U):数据记录行被更新后的数据
  • DELETE(-D):删除的数据记录行

参考 数据库实时同步利器——CDC(变化数据捕获技术)_美林数据Tempodata的博客-CSDN博客_数据同步cdc

你可能感兴趣的:(数据库扫盲,数据库)