00:00
好,那接下来我们从第一章开始学习,第一章呢,关于弗Li CDC的一个简介,呃,那么第一小节我们需要去了解一下什么是CDC啊?呃,那刚才我在课程介绍当中也给大家提到了CDC,很明显它是三个单词的一个缩写,那它的全称是叫change data capture,也就是说变更数据获取的。一个意思啊,那它的核心内容是在于监控监监测并捕获数据库当中的变化数据。当然这个变化数据包括数据或数据表的插入、更新以及删除等等,也就是说对于DDL或者说叫DML这些增删改的操作,我们可以很快的给它获取到,那这个就是一个CDC,它的一个应用面,那我们之后呢,CDC这个工具将变更数据。
01:04
记录下来以后可以写到消息中间件当中,诶,以供我们其他的服务来消费订阅,订阅完之后呢,可以针对于我们数据做相应的一些处理,这个是我们所所聊的叫CDC,那我们接下来去了解一下CDC它的一个分类有哪些,在市面上我们主要分为两大类,一类呢是基于查询的,另外一类呢是基于blog的CDC啊,那我们主要从以下这几个方面。去认识一下呃,关于查询的CDC和BCDC它们之间有什么区别啊,首先基于查询的CC。典型的。代表的作品有哪些呢?哎,我们所了解的像scoop。或者说卡不卡的一个jdbc source,这些呢,都是基于查询的,也就是说它在导入,导入这些my circle Oracle或者其他的一些数据库里边这种变化的数据得通过。
02:09
S语句查询的方式才能够得到的啊,那了解过SCO的我们都知道,在SCO导入的脚本当中,我们需要在杠杠query这个参数里边填写一个circle,也就它是基于查询的这种。那另外一类呢,就是基于我们的b log。啊呃,熟悉买S的同学呢,他知道在我们做主,从复制或者说做。整个集群搭建,买这个集群的时候,都需要我们这个blog的一个参与,它其实就是我们买S的操作日志,也就是说有了blog,那在做主从复制的时候,我们依赖于这个blog干什么事呢?主节点做了一个增删改操作,那么我把增删改操作写到我的v log当中。
03:04
那从节点可以拿到我们的blog。照着我们主节点所做的事情重新再来一遍,那么这样是不是保证了从节点和主节点的数据的一致性啊,对吧?好,那这是第二种叫基于blog的CDC,那主流的产品呢,主要有canal,国内用的比较多的,也是阿里开展出来的一个框架,呃,Maxwell。还有division,呃,那为什么在这个当中呢?我们把division标红了,主要是在于flink CDC其实是内置了一个DB,采用的是d division的方式来采集log并做解析的。好,那接下来呢,我们对比一下这两大类CBC的一个主要不同点,第一个执行模式。也就是说在基于查询这种方式,我们是通过SQ语句来做到数据导入的,那么它其实是一个P处理的,也就是说在离线收藏当中,可能我们像scoop呀这样的工具用的会更多一些。
04:11
那另外基于blog这种方式,我们是流处理的,也就是说在买S当中变化一条数据,或者说新增一条,或者删除一条数据,我是可以实时的拿到这条数据的信息啊,它可以在我们做流处理过程当中起到很关键的作用。那么另外我们可以看一下基于查询的这种呢,它不能够捕获到所有的数据,那是因为在这样,比方说举一个例子啊,呃,我们继续查询的熟悉离线输仓的同学应该知道,我们使用四库每天凌晨的时候去导入数据,假如在MYSQ当中我们插入了1001。哎,它这个状态呢,是AA这样的一条数据,那么在今天这个A的状态便经历了BB。
05:07
CCADD这么四个状态。啊呃,也就是说在我们凌晨准备导出买四个数据到离线输仓里边的时候,此时在麦克里边它只呈现最后的一个状态,叫DD。那么前面ABC,大家可以思考一下,那我们用查询的这种方式导入,还能不能拿得到前面的状态?啊,其实这个就比较简单了,答案是不能,对不对啊,那因为最后的状态呢,是DD已经相当于做了修改,覆盖掉了这个数据,而如果说我们采用并log这种方式,当我们新增一条AA,数据直接就倒过来了,当我们把这个A改成BB,也可以读到BB这个数据,同时改成CCDD,那么中间的任何一个环节在blog当中都需要将这个操作日志保留下来,那么我们基于blog这种方式的CDC是可以读取到所有的数据的。
06:15
那么第三点呢,是从延迟性方面聊的,那其实我们刚才分析了钱第一个不同点大家已经知道了。那么基于查询的它是。批次的,那必然有了很高的延迟,那对于我们blog这种方式呢,是留助理的方式,它具有低延迟。啊,最后一个是否会增加数据库的一个压力,那么基于查询的很明显它会直接访问我们的数据库服务,而对于blo的呢,我们只需要读取的是一个本地的文件啊,所以在基于查询的它会增加我们数库的压力,嗯,那基于blog它不会增加我们数据库的压力啊,那么这一块呢,是我们所讲的什么叫CDC,以及给大家看了一下市面上最主流的两种,一种基于查询的,另外一种基于b log这两种。
07:09
不同的一个区别。
我来说两句