00:00
好,那接下来呢,我们就要聊到我们的CDC了。对吧,我们要去重点看一下,这里面最重要的一个东西就是关于这个弗Li格CDC啊,好,那我先把这个呢给大家,嗯,这个关不关无所谓吧,呃,那其实在我们的笔记当中,我把flink CDC的拎出来了,当然你也可以通过这个文档打开啊,直接双击打开也可以啊,那我用这个去打开个CDC。啊,那接下来我们进入这个弗Li格CDC的一个学习,那在这个里边我们要学习什么东西呢?我们来看一下啊,第一弗Li CDC的简介,简介当中我们要去了解,哎,这个地方我们要学习的是Li CDC,那我们先得了解什么是CDC,那很明显它是一个单词的缩写吧。三个单词的缩写,应该大家能反映到这个问题对吧?啊,三个单词的缩写,所以我们需要去了解一下什么是CDC,然后接下来去了解什么是flink CDC啊,它有什么作用,有什么好处,对吧?呃,那这个里边整体介绍的就是这个内容,那接下来第二张就是案例,案例呢,其实在官方给我们提供的弗Li CDC里边呢,是提供了data stream API和SAPI这两种实现方式。
01:21
啊,有这两种实现方式啊,是这样子的东西啊,那最后呢,我们写这个自定义的反虚化器,主要在于我们这个读取的呢,它是blog数据,Blog呢所谓的B,对吧,它是BA二进制文件,所以说我就没有去看刚才那个文件,我只是带大家看了一下大小,来确认我们这个内容,OK,对吧?所以呢,它是二阶,我们要反学的话筒啊,我们可以自定义啊,主要为什么要自定义他自己所写的这个东西啊,不好用啊,很难用,是这个意思,好,那我们来看啊第一块简介,什么是CDC,那CDC呢,刚才我们说了,明显是三个单词的一个缩写,它指的是叫change data control。
02:10
啊,变更数据获取这三个单词的一个简称,核心的内容在于,核心的内容在于监控并捕获数据库的变动,包括我们所说的增删改啊,有数据和表,也就是说DDL和DML当中的增删改都是要补货到的,查就算了,对吧,查我们就不需要了,查数据呢,补货的话也没什么意思,对吧?那主要是对于增删改我们要。捕获的同时,我们要将变更数据完整的记录下来,之后呢,我们可以写到这个消息中间,间里边可以给其他服务去使用,那我们要做的是这样的一个事情,好,那接下来我们看一下CDC的一个种类啊,那其实我们之前也接触过各种各样的CDC了啊,但是之前没有这样叫而已啊,但实际上之前那个框架用的时候就CDC,呃,那CDC呢,它主要分为基于查询和基于b log这两种方式。
03:17
啊,这两种是完全不一样的,那我们主要接下来了解一下这两种它的一个区别啊,第一个基于查询的代典型代表呢,有我们所学习过的这个scoop,哎,那我们scoop导数据的时候,是不是说过要杠杠query成一个circle,我们刚才说了分量啊,这些方式对吧,在这边我们写到了啊。嗯,哎,我没有没有把那个SCO那个东西啊在这对吧,通过S当中的will条件来处理,到底是增量还是全量,那这个明显的是circle语句当中的will词句对吧,是通过查询的方式才能拿到的。
04:06
啊,它是通过查询的方式,而我们基于b logg的不需要通过circle,而它读取的是刚才我们看到那个操作志,所谓的log是my circle的操作日志,对吧?啊,那典型代表呢,有我们的肯MY以及division啊,但是这个当中呢,大家用过的只有谁啊,看没好就截止到目前只用过看EL,那刚好,呃,基于查询的我们学过一个,基于log的学过一个啊,大家也能想明白它中间的一个点了啊,就方便下面对比啊,那我看首先执行模式。第一,它是基于批处理的,它是基于流处理的,那这个毋庸置疑,对吧,它是基于查询的,我们用斯库宝导数据的时候,是每天凌晨十分或者凌晨30分的时候倒一次呢,对吧?啊,它是批处理的,而canal是不是每发生一次变化,我们就怎么样会监控到这个数据,对吧,我们就能够监控到这个数据啊,所以呢,它是基于流的方式的啊,这个不一样,第二。
05:19
是否可以获取所有的变化数据?啊,那基于查询的这个写作是否这个是是那我问一下大家啊,什么叫获取所有的数据变化呢。这个指的是什么意思?大家可以说一说。而且你看结果就是基于查询的这种不能获取到所有数据变更,而基于blog是可以的。
06:12
啊,每一次的变化,其实这句话也就是说基于查询的这个东西呢,它有可能会丢数据是不是。他有可能会丢数据。随机数,嗯,跟随机数没关系啊。跟随机数没关系啊,对,查询的是快照,或者只能代表最后的结果,这个没问题啊,你比方说我今天下了一个订单,下单呢,今天下订单的对吧?好,他刚开始这个状态呢,可能是下订单状态,但是我立马又支付了,我经历了下单状态,支付状态对吧,然后呢又发货了,商家呢也发货了,但是最后我们倒的时候是不是只倒了发货数据,前面这两个第一次创建的数据跟第二次更新的数据是不是就丢了。
07:14
对吧,因为我们每天导一次丢的,就是说我同一条数据一天发生多次变化,那我只能拿到最后一次的变化,结果没问题吧,OK,这一块是不是没有问题,能能明白吧。对,我相信大家这块应该问题不大对吧?好,那如果是基于B这种模式啊,基于B的这种模式呢,那它是什么?它是可以捕获到所有数据的,因为刚才我们说的你有下单支付到发货,那你每变化一次我就加载一次,变化一次我就加载一次,那我当然可以获取到所有的数据变化,对吧?这是它的一个优势,那延迟性那就不聊了,对吧,你是批处理的,我留处理的,我肯定是,你肯定高延迟,我低延迟,还有最后一个点了,是否会增加数据库的压力,查询的里边是b log否啊,那这个也是一个典型的特点了,因为毕竟你是经查询的,你要写的是c lab的语句,C料语句,就是说正常优库是有很多用户去发起请求的,但是我为了读取这个数据,我是不是也会跟数据户建立连接,发起请求select的?而经二,我无非读的就是什么。
08:43
就通过有权限验证,让我能够获取到你的B2,我读取的是磁盘文件,对吧,我根本跟你的my service服务呢,不直接进行打交道,通过私盘文件相当于之前我们所聊的实时架构和离线架构当中的一个区别,通过私盘文件我们可以做到一个解耦,不直接访问,减少这边的压力。
09:06
对吧,指的是这个意思啊,可以减少数据库的压力啊,所以呢,从种种的分析发现呢,我们其实更好的还是什么。这个啊,这种方式更好一点,完全可以替代掉这边的内容啊,替代掉这边内容啊,只不过说有一个点啊,如果说你真的想用这个基于冰漏的CDC去替代左边的这种情况,有一种不好处理,有一种比较麻烦,哪种呢选量。全量不好处理啊,全量每日这个全量,关于这个全量是每日全量对吧,每日增量每日新增级变化啊,那每日全量这个数据呢,不好处理,比较麻烦一点对吧,因为毕竟你是流啊,那只有它会稍微麻烦一点。等每日全量的这种,但是如果说呃,咱们要做每日增量,每日新增级变化,这个呢,完全可以用基于blog的CDC来代替掉,我们基于查询的CDC是很方便的,很轻松的就可以干掉了,啊,是这个意思,好,这是我们所说的什么是CDC,以及CDC之间的一个比较啊,一直非常神秘的CDC其实也没什么,对吧?啊,很简单,指的是。
10:23
捕获数据库当中的变化。
我来说两句