00:00
好,那接下来呢,根据我们的PPT来写我们的代码了,对吧?根据这个内容,首先在message当中呢,它应该有一个安集合,记得我PPT里边还有一个点点点,对吧,所以呢,我们要获取安集合,这边呢,我们还是大的这个流程啊,叫获取安集合。啊啊,那message点,诶,那我们调用一下叫entries,你看它就是一个entr集合对吧,好看R加位得到一个entriesance,但是这边我们是well处去拉取的,很有可能现在买SL当中并没有数据,那么我这次抓取不做等待的话,那么这里边就是空的,所以对于空的呢,我们并不要做解析啊,我而且呢,遇到空集合的时候,我们可以稍微等一会儿再去拉取,因为接下来一段时间你频繁的去拉取,很有可能它还是一个空几何对吧,那就没必要,所以呢,我们要判断。要判断集合是否为空对吧,呃,如果。
01:05
我。则。等待一会儿继续拉取。数据啊,也就这意思,好,那我们这个判断就很简单了,If entr点它的一个,那既然它是作为一个集合,对吧,那我们呢,取它的一个。Size啊,如果说呢,它小于等于零,当然其实肯定不可能小于零,最多等于零,那我们安全校验,我们可以这样写一下,呃,那我们打印一句话啊T,呃,当次。叫抓取没有数据啊,然后呢,叫休息一会儿。啊,就是呃,停一会儿对吧,那这边呢,怎么体验停呢,我们可以让线程在这sleep对吧?啊嗯,假如说我们隔一秒钟吧,隔一秒钟去拉取一次,好,这个异常呢,做测试我就直接呃抛一下了,好好else,如果说它大于零,那我们就可以做数据分析了,对吧?呃,那这是一个集合,我们刚才看到的这个东西呢,是对于一个entry里边的点,所以呢,我们要对entry进行便利啊,这里边呢就是便利。
02:19
Entrance。单条解析对吧?我们要一条一条的来解析,好那entr呢,是一个集合,我们直接用增强for循环做一个便利,好,那接下来呢,我们看一下里边能拿到的东西我们都拿一下,在entry当中,首先我们要直接获取这三个对象,同时对这个store value要反序列化,所以呢,我们在这里边写一下,第一步叫获取表明,对吧,第二个。获取类型。啊,那么第三个叫获取序列化后的数据啊,那这三个都直接从entry当中可以拿到的,那拿entry呢?哎,注意是entry不是entries啊entry.get header在头信息当中点get。
03:14
叫table name获取我们的表明啊,等会呢,我们可以打印一下第二个类型,那就entry,点叫get entry啊en table好,那我们可以看一下entry table点进去。诶,这边稍微有一点点卡顿,稍微等一下啊,那这里边呢,就是我在PPT上给大家展示出来的什么事物的开启关闭啊,啊,这个心跳信息data,其实这个是我们所需要的,对吧?好,那我们把这个获取到,等会呢,我们可以做一个判断啊呃,那么第三块呢,当然是store value,也就是序列化后的数据啊,就是说blog本身的样子,那么就要拿着entry点。Get加。Store value ctrl加V,诶得到一个store value这块呢,我们就把entry当中所能够直接获取到的内容呢,呃,读取到了对吧,那么接下来呢,我们要对这个呢做一个判断,因为我们做实时分析主要要的是如data类型对吧,所以呢判断。
04:12
这边加一个第四步啊呃,判断。当前这个entry的类型到底是什么对吧?啊类型是否为什么呢,叫roll data类型就是我们目标数据啊,那if既然刚才我们看到它是一个枚举对吧,所以呢,我们就可以直接用entry type。En tab点,然后要roll data类型对吧,我们写row data.es咱们的ENT tab,诶如果说它是这个类型,我们继续做解析,如果不是,那么我们可以打印一句话,哎,就是直接打印这个类型就好了,对吧。把这个打印出来啊,或者说说明一下呃,当前。
05:01
当前数据类型为啊,或者说叫操作类型啊,操作类型因为诶为这个类型啊,并不是我们要的这个行数据的类型,我们可以打印一下,当然你其实也可以不打印,直接就过了,因为这个数据呢,我们就不需要了,对吧?好,那既然是数据本身的话,所以我们要对它做一个反序列化,对吧,好叫反序列化。嗯,叫序列化啊。诶叫列化啊,反虚列话数据本身,呃,那这个呢,Store value我们最终要返回roll change,它的反学的话呢,其实canal已经给我们写好了,就用里边的roll change点呃,去反虚的话,我们的内容叫pass from,诶这个里边呢,就有一个叫better strip,诶你看这个store value,它刚好是这个better strip对吧,那我们就把这个store value传进去,CTRL加V,得到我们的肉change好的数据类型,当然这里边可能序列化报错有异常,所以呢,我们还是做测试,给它抛一下啊,抛一下,那接下来到了我们这一块内容了,这个里边呢,我们来看到它里边能获取当前的事件类型以及行数据的集合,所以呢,同理我们也来获取一下,获取当前事件的。
06:21
操作类型对吧,那role change点呃,Get tap,好嘉宾诶,那时间类型直接对着我们PPT里边去get就好了,这个就很方便对吧,所以把这个放在这儿呢,有利于我们代码的编写啊,Tab,呃,那还有获取数据集。好,那就是row change.get刚才我们看到这个东西叫什么row data list对吧?诶在这看下位得到一个row data list行数据的一个集合对吧?行数据集合啊,这个呢,假如说叫data list吧,啊不用叫road data4list,当然它这个封装叫加S了对吧,这个无所谓,那最后呢,到这一步为止,我们就拿到我们想要的内容了,所以最后一步我们遍历打印啊遍历。
07:15
叫data list,并打印数据集。啊好,那边利的话,它既然是一个集合,所以边利也比较简单,增强for循环,一行一行的row data,那之前我们提到过,在row data当中呢,它还有这个。Column可以选择对吧,一行一行数据,同时它还有前后,因为你更新有更新前是什么样子,更新后是什么样子,所以呢,我希望把这个更新。前后的数据都做一个打印啊,那这边呢,我们用一个Jason对象做一个接收啊,接object对吧,这个呢,我们先创建一个before。Data,也就是说在更新前长什么样子啊?呃,那再用一个杰森object。
08:06
用于存放更新之后的数据是什么样子,After?Data对吧?好,那分别呢,往这里边去写入数据啊roll data呢就可以了,对吧?我们要去遍利这个数据集,从这个roll data当中获取我们的数据啊roll点啊,那首先呢,看有after columns list,还有这个before columns list,那我们先获取之前的一个集合,那接下来呢,我们要遍利这个集合before.for循环啊呃,那往这里边放数据before data.put然后key呢,用这个column.get name列名,然后呢,只用column.get value,好,这是我们的before数据搞定了,那阿的数据同理啊,After数据同理,呃,那我们从这个row data当中去获取get after的一个column list columnr加V,诶,得到一个column list,那就拿着after去遍利呗,啊,同理了,对吧?那就对,给这个after data去放上我们的数据,column.get name column.get value。
09:11
好,这样的话,我们把更新前后的数据都已经拿到了,但是如果说你是新增数据,这个将会是空,如果你是删除数据,这个是空,这个很好理解,对吧?好,最后呢,我们把整体做一个打印,So啊,比方说table。表明是什么呀,对吧,Table name之前我们提取过了啊,接下来第二个。呃,它的一个类型对吧,比方说当前的type到底是什么东西,我们也可以做一个打印啊,冒号对吧?呃,拼接上我们的数据叫event ta好接下来呢,继续打印我们的数据,假如说before。它的修改之前数据什么样子啊,我们也打印一下before data,好再拼接上最后一个after。
10:04
好,加上我们的。After迭塔数据对吧,两个阶层,当然这一块呢,我们是做数据的打印。那大家可以想一下,既然我们能从代码当中把这些东西都能够获取出来,那么我们写一个卡夫卡的生产者,可不可以将这个东西写在卡夫卡里边?任何存储框架的客户端,如果我们在代码当中能够创建,我们是不是就可以将MYS当中动态变化的数据写到任意我们想写入的地方呀?对吧,那这块呢,我只是给大家做一个打印的演示,至于你在工作的时候想写在什么地方都可以,对吧?好,那这个PPT呢,没用了,我们就把它关掉。
我来说两句