00:00
好了,来,咱们来了解一个细则啊,这边是总结的一些使用经验,使用经验呃,首先是DDR查询,他们刚才讲的什么创建,删除,重命名。那么假设有一些它是识别不了的,那他怎么办?报错吗?不,他直接什么忽略,也就是说他其实类似做了一个try catch。对吧,还有一个数据复制,大家注意我们这是一个什么引擎表引擎嘛,那说明咱们是不是得create table啊。那现在是不是可能引擎是他,我建了一张表叫A呀,我能直接往A里面插数据吗?大家觉得想一想,A是可里可house里面建的这个引擎的表。能不能?肯定不能啊,你想想这个引擎的作用是什么?同步买口的变化,那你自己被变了,那结果到底对还是不对啊。
01:02
是不是你肯定不能够被插入。对吧,那你MYSQL里面的表变化它同步过来应该是这样才对啊。那这几个查询相应的信号是什么?这咱刚才也讲过了啊,删除就是负一对吧,删除就负一,呃查时代的普通查询。那我们如果加了final修饰符,它会返回什么版本?最大值是它底层的实现原理啊,不是咱们说干嘛啊。也就是说它只查最新的数据嘛,就像咱们前面用了一个函数2MAX对吧,第二个字段传了一个,把这个version传到第二个字段嘛,它的最大值决定第一个字段的取值方。就一样的啊。
02:00
那关于这个组件跟索引自动转换为order by,这个咱就不用管了,说白就自动啊,它会做转换,那这个是一个细则,咱们不管了,咱们来一个实操呗,那大家注意这先做一个准备工作,买S得干嘛?哎,对,没毛病,开启blo在哪一个路径,默认在ET cy.cns对吧?都缩写好看一看,那么首先大家注意这几个配置默认是没有的吧,这几个默认是没有的,那大家之前项目应该也都加了这几个东西对吧?那注意咱们目前这个同步MYSQ的引擎呢,B log打开没问题一样,这个格式只能是用其他格式不行。只能是肉啊,这个区别不用讲了吧,对吧,还有其他格式对吧,只支持肉,另外这个东西咱们要单独聊一聊,看你click house的版本,这个东西叫什么呢?先名字大家可以熟悉一下C,哎,我也忘了啊,GTD模式。
03:15
它是什么呢?是买搜狗提供的一个功能,它能保证主从一致性。什么叫主从一致性啊?咱MYS狗是不是一个主机多个从机啊,你的工具是不是伪装成一个从基对吧?这就是它的主从嘛?那假设这些都是正常的,比如说主机出现的问题是不某一个重机要变成新的主机啊?对不对,你不不理解吗。对,就类似什么leader挂follow变成新的leader嘛,就类似这种嘛,对吧,那好,这时候切换,你原来是不是一直在疯狂监听它。
04:00
那现在你再切过来是不是得切过来,但你切过来的时候,是不是可能这个新的老大已经接收了,又多接收了一点数据啊。有没有可能,那你这边是不是漏了。这是不是就不一致呢?所以这个主要是发生在什么时候来保证啊,主从切换的时候发生主从切换是可能产生,你以第三方的角度去同步它的话,是可能产生漏漏数据的情况,那如果用这种方式就能保证不会漏啊,这是在my circle5.6开始提供的一个功能。GDP模式啊,那首先我们在MYSQL配置文件要配置把它打开,另外呢,一个参数设置为强一致性。两个参数是要开的啊,而且你不开克Li house那个引擎是用不了的,因为在较新的版本,它默认就是基于这种模式来同步的,基于这种模式也就是说这几个配置项都得加,但你理解它什么意思啊,我现在是加好了,你配置文件改完是不是保存退出啊?接下来是不是studio do system city啊,Restart my circle b对吧?我就不用重启了吗?我这已经生效了呀。
05:26
嗯。好,重启下给你们看吧,哎呀,又没啥好,我打开我的麦搜索。现在你当然看不到啥了,先开着吧,好,我们接着往下,这个是一个my circle的准备啊,开启blog,还有它的GTD模式,那这边是什么20.8之后的版本,你是必须要开这个的啊,必须开这个。好,那接下来MYSQL里面我们准备一些表,我把我的MYSQL打开,呃,这两个库啊,Test CK我建了一个库啊,这两张表我先删了。
06:10
哎,不能多选啊。好,我把这个也删了吧,我从头给你们演示一遍,库也没了,好,我现在用命令行得了,来搜狗杠u root-P,然后呢,输入密码进来了,我先创建一个数据库用来测试啊,呃,我叫test CK,又是test CK。然后呢,我在这里先创建两张表,并且向里面插入一些数据,对吧,咱们要演示肯定得这样啊,来建表插入。好了,查一下是不是有几条数据啊。
07:03
OK吧啊,这表准备好了,再来一张表啊,咱们看看能不能多表同步,我把这一起好跟大家的心from t u,这里是不是有一条数据啊,好,现在我准备了两张表啊,我新建了一个库,下面建了两张表,好,接下来这是一个准备,我们物化。引擎要打开这个雾化my circleq啊,他要把这个物化MYSQL功能打开,因为默认是什么关闭的,不让你创建,那么大家可想而知为什么关闭了。为啥关闭啊,还不稳定吗?对不对,还不稳定吗。但你说完全不稳定了也还好,就是说他在20.8的时候是一个试验下,稳定版发布之后呢,慢慢的一直在更新,那现在版本应该距离20.8还是比较久的,比较久的。
08:07
来,我们看一下。或者我先创建给你看啊,我们在克里格house建的是什么data,大家注意,咱们这个雾化埋口是对库啊,库对库的同步,那我这边建了一个库,然后指定它的引擎为物化MY口,这个参数什么意思?很简单吗?但是my circle的URL地址,连接地址,第二是我要固化的库名,大家注意,可以传多个,多个你就传什么数组呗。一个你就一个啊,这个是用户名,这个是密码,买circle的啊,这是我的密码,你们如果自己要验证要玩的话,地址改成你的主机名,户名改成你的,用户名改成你的,密码改成你的啊,这是我的,来我试一下。
09:01
他是不是应该要报错?诶,我怎么在买之前怪怪的啊,应该在click house创建这个雾化,你看他爆出什么。实验性的啊,数据数据库引擎,他如果说我们要用的话,必须把这个参数打开啊,来我set粘贴这个参数,等于一接下来再执行刚才的这是不就可以了,好,现在我们来玩一玩第一个库克里号库叫这个对吧,Test Bo来受data basis。是不是有了,那接下来我use testlo这个负重tables有没有?我啥也没干嘛,我就创建了一下就好了呀,那接下来select from t啊,Organization数据是不是一模一样,那你再查U表。
10:16
是不是很强对吧,那接下来我要试试实时场景,这个数据发生了变化对吧?来我们往里面。更新一条数据,这更新到哪去啊?更新这张表,把它的name字段啊,更新一下值啊,ID为一的这条数据更新掉啊。或者你直接在这里。直接在这里改都行。对吧,你直接在你的工具改,你看哪个地方改都行啊,啊比如说你刚才ID唯一的要改,对吧,我改成这个样子,回车勾好更新好了。
11:03
接下来我们到click house里面发一张这个表,对了,没有?可以了吧,这就是更新的操作,它能及时识别到啊,那如果你觉得玩的不爽,123123123是是是是是我同时改两个呢,OK,好再来看一下,这是肯定格号是早就好了,在你还没点回来之前,他就已经好了。为什么会这样呢?怎么看起来跟MY搜狗一模一样,很同步啊,看起来像一个oltp数据库。事物型嘛,T就是事物型嘛,我的更新也好啊不,我的更新是不是都能实时同步过来,其实它底层并不是那么简单嘛,咱们之前也介绍到有两个什么字段,S跟version对吧,一会我们来看详细的啊,我们再来试一下删除数据,删除数据我删,嗯,我在这删吧,我懒得去敲命令了,我比如说我把这一行删掉,ID为二的点个减号删除。
12:16
好,再来看一下这里click house。哎。怎么没有了,那我就直接拷贝回车。IDV2的有了吗?没了对吧,看起来效果很完美,来我们来了解一下它的底层啊,了解完这个就行了啊呃,那这边我们看这个来你看我现在查询加了一个什么特殊字段对吧?特殊字段后面只是排个序啊,这个无所谓,只是方便看来我回车你看呢。
13:05
ID为二的是不是还在啊,他其实还在,只不过标记被改成了负一,哎,对,你看版本都到五了。对吧,我们说了每一次操作它的版本号是不是就加了一啊,因为我们刚才做了很多次操作嘛,版本一直在加啊,那接下来我们试试这个,呃,我想想更新怎么样。我再更新一下这个。勾啊ID唯一我又更新了一下,我们试试是不是其实两条都在啊,对吧,但是版本号比刚才是不是才到五啊,现在是不是到六了,他只查出版本号最大的,只查出版本号最大,所以你看起来的效果是什么呢?就跟白色我。图形效果一模一样,来瞅一眼是吧?
14:05
就是它的底层原理,其实大家完全可以参照这种思想去实现一些什么h base跟click house没法实现的更新删除,对吧,这种都是我觉得是一个很优秀的一个思想啊,其实就是他底层做了什么,你看我查这张表,他帮我加了一个什么。大等于就是默认加的就非删除的数据嘛,另外它会自动加一个final final会干嘛取最新嘛,对吧,其实就对那两个字段的操作啊,那最后一个东西我们看一下删除表,我把这张表删了,那可里格house的表还在不在?大家觉得比如说我把U乐表删了删除好没了,这里还在不在?来我们看一眼吧,在吗?我们说了top是不是也可以同步啊?还记得吧,见表,三表是不是都可以同步,如果你不信。
15:11
我再建一次表,你看看它能不能识别,呃,这还是之前的建表语句啊,还有插入操作,我先建表吧,我再my circle里建表,好,OK,再到click house查询是不是有了,对吧?你插入数据自然也有了,这就不用看了啊,这个看起来是不是很秀啊,对,我也觉得很秀啊。而且他帮我们实解决了一些问题,通过两个字段,版本号控制啊,这个东西你完全可以跟别人好好聊一聊,聊一聊,那么大家注意,我最后提一点就是什么,你要跟一个东西区别开,可利尔house本身有一种见表方式叫什么?外部系统引擎。也就是说它create table的时候,它的引擎可以是my circle跟这种不一样,这种是什么?
16:11
这种相当于说套了一层映射可里可耗时的表,可以被增删改查它,你对他操作会影响到my circle能理解吗?那我们刚才这种是什么,是不是做数据同步用的,那这我买搜狗已经是另一种场景啊,就是把两张两个地方的表全绑定在一起,我操作其中一个,另一个就变了,相当于说我用click house操作my circle口L这种场景是click click house操作买车口啊,场景不一样啊,要区分开,呃,如果官网我简单提一句啊,呃,在我们官网页面有一个引擎对吧,你点开有一个表引擎啊不库引擎有个什么MYSQL,这就是我说的。
17:01
用click click house操作MYSQL或者其他的,还有这个数据库也是啊,那文档里介绍了这种是为了同步数据用的,实时增量同步啊,实时场景啊,场景不一样啊。
我来说两句