cdc是什么缩写(你知道CDC是什么吗)

本次新冠肺炎疫情期间,公众从新闻媒体上听到“CDC”一词非常频繁。殊不知CDC除了代表“疾控中心”以外,还有很多其它的意思:
●疾病预防控制中心(The Center for Disease Control and Prevention,
缩写CDC);
●电报分发中心(Cable Distribution Center,缩写CDC);
●加利福尼亚碎片研究委员会(California Debris Commission,缩写
CDC);
●定向呼叫字符(Call Directing Character,缩写CDC);
●变化数据捕获(Change Data Capture,缩写CDC);
……
今天,我们就来说一说数据库领域的“CDC”,全称“Change Data Capture”,意即“变化数据捕获”。
它是一个在数据库级别实现的更新同步服务。它的核心思想是监测并捕获数据库的变动(包括数据或数据表的插入、更新、删除等),将这些变更按发生的顺序完整记录下来,写入到目标系统中以供其他服务进行消费。
CDC的分类
CDC大体可以分为两类:侵入式和非侵入式。
⑴侵入式:是指CDC操作会给源系统带来性能影响,只要CDC操作以任何一种方式对源数据库执行了SQL操作,就认为是侵入式的。
⑵非侵入式:对源系统不具有侵入性。
CDC的实现方法
常用的CDC变化数据捕获方法有四种:基于时间戳的方式、基于触发器的方式、基于快照的方式和基于日志的方式。其中,前三种是侵入式的。
⑴基于时间戳的方式
需要源系统有相应的数据列表示最后的数据变化。抽取过程可以根据某些属性列来判断哪些数据是增量的。最常见的属性列有以下两种:
●时间戳:最好有两个列,一个插入时间戳,表示何时创建;一个更新时间戳,表示最后一次更新的时间。
●序列:大多数数据库都提供自增功能,如果数据库表列被定义成自增的,就可以很容易地根据该列识别新插入的数据。
这种方法是最简单且常用的,但是有如下缺点:
①不能记录删除记录的操作;
②无法识别多次更新;
③不具有实时能力。
⑵基于触发器的方式
是关系数据库系统具有的特性。当对源表执行INSERT、UPDATE、DELETE这些SQL语句时,可以激活数据库里的触发器,并执行一些动作,就是说触发器可以用来捕获变更的数据并把数据保存在中间临时表里。然后这些变更数据再从临时表取出,抽取到数据仓库的过渡区中。
大多数场合下,不允许向操作型数据库里添加触发器,且这种方法会降低系统性能,所以用的不多。可以使用源数据库的复制功能,将源库的数据备份到备库上,在备库上创建触发器。
⑶基于快照的方式
如果没有时间戳,又不允许使用触发器,就要使用快照表。可以通过比较源表和快照表来获得数据变化。
基于快照的CDC可以检测到插入、更新和删除的数据,这是相对于基于时间戳的CDC方案的优点。其缺点是需要大量存储空间来保存快照。
⑷基于日志的方式
可以使用数据库日志,数据库会把每个插入、更新、删除操作记录到日志里。
这种方式对源系统不具有侵入性,但需要额外的日志解析工作。
有关于这种方法,我们将以莲子数据CDC为例来进行阐述。
●逻辑架构
●功能特性
●系统优势
四种CDC方案的比较
CDC的适用场景
我们可以把CDC认为是数据库事件驱动的一种数据/信息分发系统,CDC主要适用于以下的场景:
⑴异构数据库之间的数据同步或备份/建立数据分析计算平台
在各类数据库之间互相同步数据,或者把这些数据库的数据同步到Elasticsearch里以供全文搜索,当然也可以基于CDC对数据库进行备份。而数据分析系统可以通过订阅感兴趣的数据表的变更,来获取所需要的分析数据进行处理,不需要把分析流程嵌入到已有系统中,以实现解耦。
⑵微服务之间共享数据状态
微服务之间信息共享一直比较复杂,CDC也是一种可能的解决方案。微服务可以通过CDC来获取其他微服务数据库的变更,从而获取数据的状态更新,执行自己相应的逻辑。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件联系,一经查实,本站将立刻删除。:万创散文网 » cdc是什么缩写(你知道CDC是什么吗)