00:01
好了,同学们啊,那我们接下来就看一下咱们这个mawell的最后一个案例啊,咱们的最后一个案例是给大家讲一下咱们这个数据的数化功能,因为咱们在讲这个mawell与CT对比的时候,咱们说了咱们这个mawell是支持我这个数据的一个全量同步的。那咱们接下来就就讲一下我这个MYL是如何做这个全同步的,首先大家看啊,大家应该发现了,我这个MYL进程它默认是只能监控我my circle blog的日志的一个新增及变化数据的。因为啥,因为它的MYL它底层它在用你这个,它给大家看个原数据,好吧,给大家看一下咱们这个MYL的原数据,在咱们这个mycel里边有一个库叫MYL,在MY这个库里边有个表,这个表里边有什么呀?应该有一个positions,这个positions是个什么呀?是个位置信息,同学们啊,就是它这个这个原始里边记住了我当前这个ma这么一个客户端,我在用的是我哪一个blo的这么一个文件,并且我还具体到了哪个位置,就我现在已经监控到了你这个文件的7217这个位置。
01:06
那其实啊,它默认也是只能通过这个位置往后监控的,就比如说我之前已经监控监控过的,我就监控不到了,也就什么意思啊,同学们看一下啊,现在你就比如说我想用我这个mawell监控什么呀,监控我的这个test mawell这么一个库的test表现在这些表有个123456是吧,你现在就算你起这么一个面面三进程,它也只能监控你的789,你这六条它已经过了,监控过了,它是不可能再把这条东西输出了,它默认是这样的,那如果说这块我有个需求,就是在这某一天里边是吧,我想用这个best well,我想把这123456,我把这六条历史数据,历史数据我做一个全量同步,那我应该怎么做呢?就是这个数据的初始化,我应该怎么做,就给他讲明白了,那怎么讲啊,首先这一块我们是参考的官网,好吧,就是它的实现方式也比较简单。啊,它的实现方式也比较简单,就是我们的全程同步比较简单,多简单啊,我们看一下官网,在这个官网里边,你看啊,我们有一个什么呀。
02:06
这个不是官网啊,咱们看一下这个mal官网有一个configuration,在configuration里边有一个BOO的刷,叫做数据的初始化。在这个数据数据数据的初始化里边,人家就明确告诉你了,你可以怎么初始化这么一张表啊,咱们可以通过这么一个脚本来初始化这么一张表,或者你看啊,他说什么呀,或者你可以怎么着啊,你在这儿你看他说或者你可以直接修改我这个Maxwell的这个表的数据,你再插入一行触发我这个引导脚本也行,这是什么意思啊,咱们没有必要去执行这个脚本了,太麻烦了,咱们怎么咱们怎么做啊,咱们这么做啊,在咱们这个ma,咱在咱们这个Maxwell的原数据库里边,咱们是不是有张表叫boop。这张表就是数据初始化的表,那在我们这个数据的初始化表里边,你会发现咱们这个表里面是没有数据的,就它默认没有数据,如果说你想用咱们这个mawell初始化某张表了,你得干嘛呀,你得把这张表,这张这个库的这个表,你给它装载到这个位置,就是你给他写这么一条数据,我这个数据的名字,这个数据就是最大位,就是哪个库哪个表,你把咱们这个数据给我插到这个表里边。
03:18
然后我当我当我这个这个这个这个表里边有这么一条数据了,当我再次启动这个ma表进程的时候,那我这个进程就会根据你这个表写的这个东西,我会把你把你这个写的,把你写的这个表我干嘛呀,我给你做这么一个数据的初始化,那我们下去试一下好吧,因为因为官网上就这么说的嘛,官网上就这么说的,那我就可以怎么做,那我就可以看好了啊,咱们这个文档就可以这么做了,那我接下来有有个需求,需求就是把我这个库的。TEST2也行,Test也行,好吧,看大家想想要哪张表了,你就比如说我就按照文档来吧,我想要我这个库下的TEST2这张表搜索数据,那我我还是test吧,因为我这个test是从一到六嘛,123456我不缺,好吧,我想要我这个库的test表,我把这个表我做一个初始化,那我怎么初始化呢?看好了同学们好了。
04:08
你就你就这么做,你往咱们这个my circle里边写入这么条语句。那首先我需要把谁啊,我首先我需要把我这个MY有进程关了,我来演示个东西,好吧,我来演示个东西啊,我把我这个MYSO已有的进程我它关掉,关掉以后呢,那咱们就可以修改这个麦搜原数据了。我在我这个my circle里边,我插这么小语句,我往我Maxwell这个库的这么一张表。给这两个字段补充个东西,哪个字段啊,第一个就是库,第二个就是表,我它插我我我得我得插入谁啊,我给它插入一个test,然后呢,插入一个test。那这个时候咱们就可以执行一下这么一条这么一条鱼,好吧,我点个执行。这个语句执行完了以后呢,那咱们这个Maxwell的这张表,你打开,你发现它就多了这么一条数据。啊,只不过这条数据它现在怎么着啊,它有一个字段叫is complete,它就就是它现在是待同步,它属于一个状态叫待同步,它还没有同步同步。
05:10
如果他真的同步成功了,我就告诉你啊,怎么能看出来啊,如果你这个字段从零变成一了,并且你这两个字段有了这个时间,那就说明啊,咱们这个咱们这个任务就同步完成了,那现在我就告诉你,他还没有同步完成。那什么时候才会同步完成啊,注意了,咱们这个文件,咱们这个数据写在这个地方,相当于你给他写了个任务,那当你下一个这个me well进程起的时候,它就会同步了,就是什么意思啊,你看啊,这个时候我起一个最简单的进程。就比如说这个时候是吧,我这个filter我去掉了,我就要同步一下,我就要我我就要这个用我这个my well监控一下我这个MY,然后我输入到控制台就可以了,我输入到控制台,然后呢,这个时候我直接敲回车。
06:00
因为同学们,因为在咱们这个表里边,你插入了这么一项数据,所以说咱们这个Maxwell它在底层就有这么一个任务,那这个任务什么时候触发啊,当你启动这个Maxwell进程的时候,它会触发,你看他怎么触发啊,它是不是就触发了这么一个进程啊,就是他他他知道你的这个boot刷要开始了,首先他就会先打出这么一条日志,就是我这个表,我要我我我要开始这么一个数据了,那怎么开始啊,那就你看啊,我就把我我我就把我这个,我就把我的这个什么呀,我就把我的这个。Test ma well,这个test表,这个所有的数据我都给你同步过来了,怎么证明都同过来啊,一共一共是六条数据呗,123456,你来你来这个里边它就有一个一。23456啊,都过来了啊,都过来了啊,这种就就就就就就就证明了咱们这个Maxwell是能够做这个数据的同步的。好吧,啊,然后呢,首先他会先打印这么一条开始。这个叫布的沙不沙特。
07:01
然后最后还会打印一个boorup complete,这个叫开始,这个叫完成,那这个开始跟完成中间这一堆就是咱们这个表的所有的数据,就是123456,那一旦当你这个客户端,当你这个客户端初始化完成以后呢,那你再再次打开咱们这个不拉这张表,你会发现咱们这个原数据它是会发生变化呢,什么变化呢?首先第一个我这个easy complete从零变成一,我这个Rose从那个零变成六,它会告诉你,你同步了六条,然后呢,咱们这个开始时间跟这个完成时间也会装载进来。那那那那因此咱们这条数据它都已经成功了,那当这个数据已经一旦成功以后呢,注意啊,当这个任务完成了,注意我这个时候我把它我把我把我把我把它关掉。我再次这个开启一个客户端,它就不会再初初始化了,因为他因为他认为你这个任务已经初始化完成了,就比如这时候我再开个客户端,那这个客户端就不会再初始化了。这个能了解吧,那如果我想让你这个客户端再次初始化怎么办呢?那我需要再执行一下这么这么一个任务,我在这个在这个表里边,我再给你插入一个test test咱们试一下好吧,就比如说这个时候是吧,因为我的客户端正在启动,那现在我就给它改一下原数据,我让我让我这个客户端我再次初始化一下我这张表,那我就可以再次把这个数据给它装入一条,我这么我点点执行。
08:25
然后你看啊,因为咱们这个客户端正在启动,所以说一旦那个原数据有了,所以说我这个客户端就会打印这个全量的这么一个表数据,而一旦你个数数据已经打印完之后呢,那咱们这个表的这个原数据,它就会立即发生更改,因为咱们就一下就成功了嘛。注意啊,这块我刷新一下啊,我这么一刷新,你看咱们这个数据它就立马成功了,是吧,这个一,这个easy complete就从零变成了一啊,所以说这个功能就是咱们这个mywell,它这个客户端做一个数据的初始化这个功能大家好好玩一玩好吧?啊首先大家注意一个问题,什么问题啊,就是咱们的这个数据,如果你是通过这个bootwap初始化过来的,它这个类型跟咱们之前不一样,咱们之前有三个类型,分别是insert update,还有这个delete。
09:08
那这那那种是属于我那个跟那个那个那个那个新增同步,那如果我这个数据是初始化过来的,我这个类型叫什么呀?叫boot,大家把这个给我记住好吧,就是boowa in OK啊,那咱们这个mywell的数据初始化,我就给它讲到这好吧,那讲到这,那咱们整个这个案例就讲完了,这个案例一讲完呢,那咱们这个mal这个教程也就结束了,好吧,感谢同学们的学习与观看啊,谢谢大家啊。
我来说两句