00:00
来,那咱来看一看关于我们这个elect search呢,它里面的一些基本概念,像这些东西啊,大家呢,基本上因为咱们前面有些设计过,那应该呢,是比如这个理解起来比较容易的对吧?那么有一些没有涉计过的话呢,咱们再详细的去给大来讲一讲啊吧,要如果涉计过的话,可能说过得稍微快一点,对吧?呃,那么首先呢,第一个啊,它有一个概念叫什么呢?其实如果说进食时大家都差不多能理解,但如果说有的时候啊,给你看到,诶我现在呢,这是一个框架,当前框架特点什么呢?这个框架,这个框架特点呢,什么NRT对吧,那我相信大家好多同学什么是NRT呀,对吧?哎,就是说我现在呢是这个啊,就是我现在这是一个进实时的这样的一个框架,对吧,进食的一个搜索平台对吧?那么这个进时指的是什么呢?就是说我现在呢,从我们这生成文档索引啊,到咱们这文档啊吧,那么它呢,这个其中呢,有一个过程什么意思是我现在啊,在咱们这个完成我们这搜索的时候。
01:00
首先呢,你是不是得做一些我们这分词操作呀,然后分完词之后,你是不是要按照倒白索引的方式把这些数据存储起来,然后我是不是才能进行我们的搜索,就是这个过程呢?它需要一定的时间,对吧?它会有一个轻微的延迟对吧?但是这个这个延迟呢,其实还可以对吧?一般呢,11秒钟左右对吧,那你想一秒钟是不是其实已经接近实时了呀,对吧?所以说呢,这个叫近实时啊,它指的是我们现在呢,就是生成文档索引到可以搜索,那么中间呢,它会有一段的一个轻微延迟,是会有这样的一个轻微延迟是吧?然后接下来呢,那么再往下走对吧?那么这里呢,集群,这个集群的概念呢,那应该对吧,是这个比较容易理解的,因为咱们前面进入太多集群了,对吧,那末的情况下呢,我们elect search啊,它就是我们的集群状态啊,它本身默认情况下,它就是一个我们的集群状态,那么这块呢,和咱们不太一样,同学们就原来呢,在他早期版本这个群名称。
02:00
这叫什么呢?叫search,咱们默认名称好像不叫这个呢,叫什么来呢?MY默认的呢,那咱们改的叫mys my APP是不是对吧?My application应该是对吧,那你可以这这个改完之后咱们也看不到了,是不是对吧?那么其实咱们一开始呢,在咱们默认的时,它叫elect search对吧?那么后来呢,咱们给改了,改成我们这个MYS对吧,那么咱们这个机群名称啊,注意它比较重要,为什么呢?因为咱们现在每一个节点对吧,那么它在咱们加入集群的时候,它的名称都是相同的,但是呢,节点名称对吧,不一样,那么对于我们现在进行取名啊,那么有一定的一些我们要求对吧,那么要求什么呢?要求啊,那么这里尽量的不要去重名,对吧,就是我现在在咱们的一台机器上,你不要说诶,我现在叫卖一个对吧,叫这个卖SE一个,那这样的话就不太好啊,这样的话不太好,然后另外一个啊,同学们,这个我不知道你们昨天呢,在启动的时。
03:00
在启动集群的时候有没有碰见,就是咱们当前在启动的时候,正常情况下是不是应该有一台集群是master,然后其他集群是不是应该是我们这个photo,那怎怎么看呢?你在查看节点的时候,如果master的话,它是不是有一个星啊,对吧,有没有全是星的。有没有全职性的没太注意是吧,就是你们可以关注一下,有可能会出现这种情况啊,有可能会出现这种情况,对一般是什么呢?就是机器啊,就是配置稍微的低一点的话啊,你在启动的时候呢,可能会出现这种情况,大家想一想,一个机群里边它全是master这种现象叫什么?脑裂啊,这个项叫脑裂对吧,就是怎么产生的呢?就是本来咱们现在我在启动的时候,我是不是应该有一个自发现呀,对吧,咱们在配置文件里边是不是有一个自注册这样一功能来来肯定有一个是应该先提起来,那你想咱们现在在我的脚本里边,我说起202 203和204,但是呢,它肯定有一个是不是先提起来呀,对吧?那么先提起来,那么他呢会作为master,然后别人的过的时候,他会往咱master来进行注册,对吧?但是有可能出现什么情况呢?对吧?诶我现在呢,这个性能比较慢,然后呢,结果我现在呢,这个第一台机器起起来了啊,那么七天之后呢,它并没有说把当天启动状态告诉给别的节点,等第二台机器起的时候呢,我发现诶我当年这里面有盲吗?没有,那没有怎么办,我觉得那我应该是我先来的,我第一个先提起来的,等等第三天来的时候呢,我现在我也第一个进来的,对吧,所以说你会发现对吧,同样一个集群,然后呢,这里他的一个我们这个对吧,这个master可能是端构对吧,那么这个如果说有这种情况的话。
04:40
其实呢,呃,大家呢,可以到这里啊,我下号来到哪呢?来到我们来的官网里边,对吧?然后大家呢,可以去看一下它的一个官网,它关于我们这个文档的一个配置,对吧?就是大家可以自己去看啊,可以自己去看对吧?然后接下来呢,咱们回过头来,咱们继续对来看什么呢?来看一下关于我们现在它的一些我的概念啊,刚才呢,一个是计时时,那么另外一个呢,是我们这个集群对吧,集群,那么咱们呢,集群呢,它的一般节点数呢,它不受限制对吧,就默认情况,因为咱们有个特点叫天然集群啊,天然集群怎么回事,就是只有一个节点,那其实呢,它也是一个集群啊,当做一个集群来进行处理,然后接下来那么集群概念完成之后呢,那么咱们看节点的概念,对吧,节点是什么?节点其实就是属于我们这个集中的某一个服务器呗,对吧,某一个服务器。
05:40
对吧,那么我们现在呢,在同一个集群中的集群名称一样,但是节点名称啊不一样啊,那么这块呢,也比较简单,直接呢就过了,然后接下来那注意啊,像这几个东西类这个,所以类型文档对吧?那么这三个一定要给我弄明白,其中咱们现在的类型呢,还稍微差一点,索引和文档他俩一定要给我弄明白。
06:05
对吧,一定要到明白对吧,那么你现在再去了解我们现在索引和文档之前呢,那么首先呢,大家想一想关型数据库。对吧,你们想一想,比如说就买circleq吧,对于我们的关系数据库来讲,你们都接触过哪些概念?同学们,比如说表啊什么这种的,有什么表有吧,还有什么视图啊,视图是吧,然后呢,函数啊索引游标是吧?啊这个什么索引,然后呢,什么游标啊,它接入游标呢,是检测的过程,是不是完了别的吗?然后DB还有什么DBMS啊,还有别的吗。注意啊,咱们现在把这些东西呢,那么咱们给大家捋顺了,首先呢,我问大家啊,这里边咱们现在对吧?那么在我们整个数据库里边最大的啊,这个是不是应该是这个DBMS,这DBMS叫什么?是不是叫数据库管理系统啊对吧?本身啊,DBMS叫什么?叫咱们这个数据库管理系统管理系统,那比如说我说MYSQL,它是什么?MYSQL其实严格来讲,准确来讲它应该是一个数据库管理系统,对吧?然后接下来咱们现在呢,可以通过客户端工具,然后呢,去连接我们现在的数据库管理系统,比如说我这里我通过我们这个单K,然后连接我们现在这个MYS对吧,那么这块呢,其实是连接的是谁?连接的是我MYSQL这个数据库管理系统,对吧?然后接下来那么在我们这个数据库管理系统里边,那么这里这些东西,我问大家这叫什么,是不是这叫一个一个的数据库啊,对吧,这个东西呢,它叫一个一个的数据库,那所以说呢,那么咱们现在在这里。
07:56
那除了我们买色数据管理这个系统之外,那么接下来在它里边呢,那它应该呢,有我们的DB概念,这DB什么的D是不是就是我们的数据库啊,对吧,你像咱们现在这里什么j Mo啊,对吧,什么g mo0321,像这些东西啊,默认的包括MYS,什么test这些是不是其实都要数据库啊。
08:16
能理解吗?对吧,就你们现在在这里不创建数据库吗?在这新建,然后什么咱们那个啊新建数据库对吧?然后在这里什么数据库的名称,然后指定什么编码集对吧?那么这个其实呢,在我数据管理系统下面,它有我们的数据库,比如说我这里有一个库叫什么呢?叫劲报法对吧,叫劲贸,然后接下来那么在他数据库里边都有什么呢?像同学,像这些表啊,视图啊,对吧,这什么函数,所以其实呢,他们其实都是对象对吧,我们经常操作的是谁?我们经常操作的是不是其实就是表啊,对吧?所以说呢,那这块我们呢,来有一个叫table的概念表对吧,这个呢是我们比较经常操作的,其实呢,我不管表像什么视图啊,索引,其实他们是平级的对吧,你想我创建表,什么create table,我创建咱们这个视图是么?Create view,我创建咱们这个索引,什么ex呀,对吧,其实一样的,它是平级的,但是呢,我们现在在这里,我们呢,拿表为例,对吧,它其实都是我们的对象。
09:14
啊,他其实呢,都是我们对象,然后接下来那么除了我们现在这个之外,对吧,那么在表里边都有什么呢。表中,那么咱们现在这里边是不是应该对吧?这个有肉啊,对是不是代表表中一行数据,对代表咱表中的一行数据对吧?或者说这东西也叫什么是也叫一条记录啊,都也着一条记录对吧?然后接下来那么除了它之外,那么还有什么列是吧?Column,然后呢,这个是我们这个列对吧?那么这个叫什么,是不是叫字段对吧?叫字段对吧?那么好了,那咱们现在呢,把这个东西啊,哎,我大概知道了,那么这什么,这是我现在关于数据库里面,比如买circle,它里面一个我常试的一个概念,对吧?那么我现在呢,在操作的时候,那你想啊,那么你是一个数据库对吧,你现在要存东西,那么你在存东西的时候呢,那么electric啊,其实在咱们这个对吧,这个刚开始在开发的时候,他其实呢,也借鉴了我们的关于数据库里的一些概念,对吧,因为他们这个东西啊,注意就我现在写一个产品,他或多或少都会受另外一个产品的一些影响。
10:24
对吧,你想诶我现在呢,操作my circleql是吧,操作这种关系数据库,那觉得他这种说数据库的概念,数据库管理系统的概念,那我也应该有对吧,那么如果说MYSQL是于数据库管理系统,那么我现在ES对吧,你也可以管它叫做一个数据库管理系统。对吧,他除了搜索引擎之外,他其实还是个数据管理系统,对吧?然后接下来那么这里边呢,那应该也有数据库的概念,对吧?这应该有数据库的概念对吧?那么你得给我找对应起来,那么除了数据库之外呢,那咱们在想,哎呀,那我这里有表对吧?概念和谁对应的,那我现在这个行的概念和谁对应的,那我这里咱们这个列的概念那么和对应的,那么这里就是我现在要给大家介绍的关于我们啊这个来search里面啊,几个比较重要的东西啊,第一个,所以。
11:09
这个索引是干什么的?这个索引呢?是具有某种特征的文档的一个集合。啊,就说你现在这个东西本身是干什么的,本身是存数据的对吧,然后呢,把咱们相同数据的这种东西啊,对吧,比如说我当前这条数据,这条数据,这条数据它都有某一个特征对吧,那么这个时候呢,我就把它们放在一起,对吧,然后呢,形成一个集合,那么咱们称之为什么呢?称之为所引对吧,这个东西如果说啊这么看的话,大家容易把它这个索引和原来咱们在讲关于数据库的时候,这个索引呢给闹混,所以说呢,那么大家注意直接呢,你看这句话。啊,这个索引类似于什么?类似于我们关系型数据库里边的database。这个索引啊,就打假如说同学们一看这个索引的概念,还有说咱们上面这块的描述,你是不是感觉它应该是和我们现在这个MY思库里边创建了index是不是一样的呀,都帮助咱们做查询的呀,但注意啊,其实呢,它不是,它是干什么的,它其实呢,是把咱们相同的东西放在一块了,类似于什么,类似于我关于数据库里边的database,但注意这个是在什么时候呢?这个是在我们这个五点几的时候。
12:23
注意啊,在到aisearch5.g的时候,对吧?比如说这个是我们的search,然后它目前这个5.g的版本对吧,五点几的版本,那么我现在的数据库它是相当于谁呢?这个index这个索引它呢,相当于我们这个数据库啊,这个index索引它相当于我们这个数据库对吧?那么然后接下来,那么数据库里边是不是应该有一些咱们这个表了,对吧?那么这个表是什么呢?对吧?那么咱们继续再往下看,那么除了我们现在这个索引的概念之外呢,它还有一个概念叫什么叫type,这个type呢?它类似于我们关于数据库里边的一个table。
13:01
对吧,也就是说咱们现在这里,我得知道这里有数据库是谁,那么就是index,然后接着操作数据库哪张表,这里面有一个什么呢?叫typeb的概念,表示的是我现在要操作这个库里边的这个表,对吧?然后接下来那么它里边呢,那么也有什么呀,也有行的概念,那么谁相当于行呢?那么这里这个行啊,它叫咱们的document。啊叫document,然后呢,类似于我们关系数据库里面的一行,对吧,在这里这个叫什么document啊,Document对吧,类似于关数库的一行,然后这个呢,那其实对吧,它叫什么呀?它叫属性了,对吧,叫fair啊,就是我现在行里边呢,那也有一些属性,这个属性呢,就相当于我们现在关于数据库里边它的一个列,它的一个字段啊这么一看,这个东西不太好理解同学们对吧,不太好理解,那么现在我怎么让大家去理解一下他呢?对吧?那么我现在有一个网站对吧,这个其实咱们给大家看过对吧,豆瓣。
14:07
豆瓣是吧,那么咱们你看啊同学们,豆瓣它里边呢,其实做的两个比较好的一个什么,一个是豆瓣电影对吧,是不是还有一个豆瓣读书啊对吧,一个电影还有一个图书对吧?那大家想一想,假如说咱们现在进入到我们的豆瓣电影里边来,对吧?然后呢,那你现在你看这里边是不是有很多电影啊对吧?比如说咱们现在呢,随便选一个对吧,比如说咱现在呢,随便选一个,那么在咱们当前我进入到我们现在这个电影里边,那么是不是把当前这一部电影,它里边所有包含的信息是不是都给他在咱们的一个网页里边给他展示出来的对吧,什么括当前电影里边,对吧,导演是谁,编剧是谁,主演是谁,评分是什么样的,然后接下来这里边他的这种演简介,什么样的,每个演员什么样的,是不是在咱们这里都可以给他展示出来,然后接下来大家注意啊,把它抽象了一张纸。就这个东西,就咱当前这这这个网页,你把它抽象一下,抽象一张纸对吧?然后这里边呢,记录什么,这个里边记录着我们现在呢,对吧?咱们当前这部电影叫七号王的礼物对吧?这部电影它的所有信息对吧?那么如果这是一张纸的话,我已经抽象出来了,那么接下来,那我现在呢,那再来同学们啊,那假如说我现在呢,除了这个电影之外,还有别的,比如说我现在再来,再来这段这个电影,那么这个电影它是不是也当前这个网页,是不是也存放这部电影它的所有信息啊,对吧?那大家想一想,咱们在存放的时候,如果说我想把它当前这部电影信息给存起来,那这东西怎么办?大家可能马上想到了观影数据库,对创一张表,然后进来怎么怎么怎么样对吧,在咱们表中有什么,我们对什么这个导演对然什么编剧怎么主演对吧,那么这个东西行不行可以对吧,但是大家想一想,我现在呢,其实除了关于数据库之外,那么咱们现在呢,其实还可以换一种方式,什么呢叫。
15:54
文档类型数据库对吧,叫文档类型数据库,说老师那文档数据类型类型数据库的话,那么你怎么样存这个电影呢?比如说我在这里啊,我要想表示咱们这一部电影的话,那我可以这样来表示,当前这个电影的ID是多少,对吧?当前这个电影的ID多少,当前这个电影的名称是什么的,当前这个电影它的名称是什么,然后接下来咱们当前这部电影它的一个act list的演员列表啊,他的演员列表是什么?对,因为演员是不是可能有多个呀,然后接下来那么咱们现在呢,在咱们这里表来去把这演员列表给加一下啊,比如说当前这里边有一个演员,这个演员呢,他的ID的是多少,然后这个演员呢,他的一个名字的是什么?来注意看同学们对吧,那么咱们现在呢,在这里演员的ID是这个,演员的名字呢,是我们这个对吧,那么大家想一想,我用这种形式,我能不能够把咱们当前这部电影给。
16:54
描述清楚这什么形式杰森呀,对吧,那也就说我现在,其实我现在想描述咱当前这部电影的信息的话,就咱们这张纸的信息的话,我完全可以用一个Jason来描述,对吧?那么咱们elect thirty啊,它就是这么干的,说老师,那如果它是Jason的话,那你说我在数据库里面怎么存的呢?对吧,你不用存,它本身把咱们当前这个Jason,这个Jason串,它就已经给你抽象出一个内容了,抽象出什么呢?抽象出了一个叫document这样的内容,这个document刚才咱们对比的同学们,它相当于谁,是不是相当于咱们现在这个原来表里的一行记录啊,对吧,那你想我现在原来假如说啊,我是我们这个my circle my circleql呢,有一个电影表,对吧,电影表里边是不是有一个一个电影啊,对吧,那么咱们现在呢,那么我是使用ESES呢,它有一个,呃,咱们电影电影怎么描述呢?电影在描述的时候,一部电影我是一个刀本的,一部电影一个刀面的,那么我发现咱们现在。
17:54
不管是七号房的礼物也好,还是我在中等你也好,那么他们这些电影啊,都有一些共同的特性,比如说都有导演,都有编剧,都有什么主演,都有演员,都有上场时间等等,那么把这些特性一抽象,抽象是什么呢?一个叫index对吧的内容。
18:11
对吧?In index对吧?或者说咱们现在呢,在咱们这里边先变成index了,先来什么呢?先来咱们这个type吧,对吧,先来type吧,对吧,这type是什么?这个type是相当于咱们这个table啊,对吧,就是当前,我现在呢,这里相当于表的概念,也就是说啊,我完全可以在以来测试里边来创建一个type,这个type里包含什么呢?包含了一个一个的文档信息啊,包含了一个一个的文档息,比如说我现在这个movie尾,它就是一个type,然后除了我现在的movie之外呢,还有什么,还有咱们的book,对吧,我现在在咱豆瓣里边有什么,是不是有图书,然后呢,是不是咱们有电影,对吧?那么在它电影里边第一个document,比如说咱们当前的这个电影里边ID是一,然后这里是谁呢?这个是我和我的祖国对吧,我和对吧,我的祖国对这一个,然后接下来,那么假如说我现在在咱们这里边,我还有另外一部电影,那么另外一部电影是什么呢?另外一部电影,比如说现在这部电影对这个ID。
19:11
为二对吧,然后进来这个是什么,比如说夺冠。来,那你看一看咱们现在这里是不是也可以通过咱们这种形式来表述我当前这些数据呀,对吧,大家想一想,如果这么表述的话,我整个咱们现在呢,对吧?我这个信息直接用我们现在一个JS来表示,对吧?那么其实是不是也可以表述我们现在这个网页的这些信息啊,对吧,其实我们现在好多都是这么做的对吧?这么做的这个好处什么呀,全文检索快呀,对吧,在这里你使用我们现在一台测试,按这种形式,你要搜索我的祖国对吧,比如说我现在呢搜索祖国对吧,那么你现在在这里对吧,一点这这这这这查查询对吧,其实呢,它可以很快给你来做一个响应,对吧,它这些要做响应到现在都没响应给我,不是说因为查询班,所以咱们网班同学们。
20:01
对吧,这的访问对吧?好了,那这块呢,是关于我们现在它的一个doin type,那这里还有一个什么呢?还个index,那对吧,Index对吧,那么这个index呀,它代表什么呢?代表咱们数据库对吧?其实呢,同学们大家想一想,就是目前你们啊所接触的关于MYS的知识点对吧?关于my sol知识点,你们在操作的时候,操作不同库的情况,其实很少,就包括在实际生产环境里边,说我现在啊,我写的一个工程,在这个工程里面呢,我要操作不同的数据库,其实这种情况的是吧,有但是很少对吧,有的时候可能诶我现在呢,我要操作前台库对吧,那么他这库名,那就这前台库里的表,那你得这么访问对吧,比如说对这个呢是前台,然后点它里边有什么什么表,然后后台这里边有什么一个后台,然后它里边表名啊,一般可以这么操作,但是呢,一般呢,我们在操作的时候呢,其实就是一个库啊,一般呢,咱就操作一个库,所以说啊,所以说咱们呢这个al。
21:01
它在咱们这个六和七之后,它发生了一个变化,什么变化呢?说原来在咱们五的时候呀,那我们现在的index呢,它类似于我们现在呢,它的一个,呃,原来关于数据库的数据库,对吧,然后呢,等到了咱们六个七的时候,它就类似于什么呀,它就相当于我们的keyboard,为什么?因为大家看在六和七的时候,他觉得这个type和index它俩呀,有点重复了。对,大家想想,我现在如果要想去描述咱们这个信息的话,我是不是Json来描述啊,对吧?那么如果说有多个信息的话,咱们是不是把这多个信息放到一个地方,给它放起来组成个集合就可以了,对不对,你就放在哪呢?对吧?原来是这么放的,原来是对吧,我现在把document对吧,诶抽象抽象出我当前对吧,这是一条记录,然后接下来咱们把多个document放在哪呢?放到我的type里边,然后在type上面呢,它又有一个抽象叫什么叫咱们的inex,后来觉得这个东西啊有点麻烦,对,因为咱们大部分情况下,它是不需要去分什么率,多给index,对吧,然后咱们现在的这里,他俩的概念其实有点冲突了,所以说呢,在咱们六和七之后,咱们的type呢,这个概念淡化了。
22:13
对吧,六开始淡化,七呢,基本上把它给干掉了,对吧?那么如果把它干掉的话,那你想一想,咱们现在这里边这两个东西index的是不是就相当于我们这个表,然后document是不是相当于表中的记录啊,只不过这个表中记录比较特殊是什么?是一个Json文档,注意啊,同学们这块要弄明白,就咱们现在呢,在咱们这里边对吧?原来呢,我们对在我们这个五的时候,主要在五的时候,那么这块呢,哎,它相当于我是table,然后到后来到了咱们那elect search啊,到了咱们那个ES,对到了咱们那个ES6以后,对六对到七啊六到七,那么这个时候呢,咱们这个index呀,它就相当于table了,然后咱们document呢,还是往document啊,还是我们的document,然这个呢,还是我们这个fair是吧,这个还是往fair对吧,那么也就是说咱们现在本身这个东西它的概念。
23:14
淡化了,但是有些咱们因为是我当年用的六的长六的一个版本吧,所以有的时候呢,他还得需要把这些东西加上它其实主要是为了一个对吧,占位过渡了,对,慢慢的这东西呢,要淡化啊,慢慢的这都要淡化对吧?所以说其实我们现在要说来色的话,我们主要呢,把这几个概念给我弄明白对吧?第一个咱们现在这个index是不是相当于一个表,Document是不是相当于表中的数据,这field其实就这些东西,ID name是吧,Act list这个就是咱们表中的字段啊,这表字段对吧?那么这个呢,其实就是我文档性数据库啊,原来我这里面放的什么呀,原来放的这个东西对吧?哎,这上面有什么历对吧?然后这里边是一行数据,然后呢,在咱们当前这个肉里边,对吧,来描述我们现在呢,对吧,咱们当前这条记录它的所有信息,现在不是了,我把数据放在哪了,我把这个数据啊,放在咱们这个杰森里边了,对吧?通过一条杰森啊,通过一个杰森对吧搜串。
24:14
来描述咱们这个数据啊,来描述这个数据对吧,这个呢是我们ES的特点,所以这两个东西很重要啊,这两个东西概念一定要弄明白,到你操作的时候呢,你主要操作就是他俩。对吧,你主要操作是材俩对吧?好,这是关于我们现在的这个index,还有一个呢,是我们这个document,对document,然后接下来还有一个什么呢?再往下对吧,再往下,那么再往下呢,这里有一个分片,还有咱们的一个副本,那么分片呢,这个东西其实就我分区的概念,只不过呢,它不叫partation,它叫char对吧,叫Sha对吧,Char对吧,其实呢,是我们这个分片的意思对吧?那么还有一个是reppelication对吧,这个呢是我们这个副本对吧,这个副本那么其实呢,为什么分片,为什么我们这有副本,大家想想,假如说啊,我现在不讲,你们告诉我为什么分片。
25:07
为什么做分票?我现在为什么做分片,分片的好处是什么?你们卡不卡这个东西和你们卡不卡是一样的思路,对吧?你们不卡为什么分片?提高并发度还有别的吗?等咱们如果是分,如果要是分片分区处理的话,的确是我在操作的时候,我是不是可以有多个不同的线程去操作你咱们不同的分片分区的数据啊,可以提高并发度,还有别的吗?查询快,那其实也和并发度有关系,还有别的吗?可扩展对吧?你想一想,我现在如果说我要是分片的话,我是不是可以把咱们当年不同的票放到咱们不同的节点上面去,如果你现在不够的话,那么咱们是不是可以随时来添加我的节点呀?对吧,扩容啊扩容啊,为什么要副本。高可用对吧?那其实这个东西一样的同学们,这东西我就不说了对吧?这些东西我就不说了对吧?其实分片和副本他们这个作用一个呢,如果是我现在要是分片的话,对吧,那就是一个提高咱们这个并发度对吧,那另外一个呢,是可以扩容对吧,可以扩容然后还有一个副本对吧,那么它呢主要是干什么,它主要是高可用对吧,它其实主要是我们这个高可用对吧,那么在咱们这个来七之前,默认的是我们这个无片就默认的情况下,你再创建一个索引的话啊,你创建一个索引,那么这个时候呢,对吧,那么它呢,就是帮你分了五个分区对吧,这是在我们的五的时候对吧,五个分区然后呢没有副本,但到六的时候呢,应该是五分区,然后呢,一个副本得到七的时候呢,那么它就是一个分区,然后一个副本了,对吧,这个不一样,咱们当前六那应该是我们这个五分区,然后呢,一个副本啊,这是默认情况下,对吧?给咱们这里它呢会默认进行我们这分分片,然后呢,并且有一个副本啊,并有一。
26:52
副本对吧?呃,那么这块呢,大家可以去看一看啊,他们之间对吧?这几个它的一个关系图,大家看一看,咱们当前这个呢,是啊,一个集群对吧?现在大家看这个图,那么这个呢,是一个我这集群对吧?那么当前这集群呢,对吧?一共有我们这三个节点啊,分别是NOTE1 note2,还有NOTE3,然后呢,在咱们当前这个题型上面呢,那么有三张表,或者说三个索引,注意啊,我这回再说索引的话,如果在elect式里边,它就相当于表的概念的话,对,有三个索引,对,那分别是ABC,然后接下来,那么咱们现在呢,在创建索引的时候呢,那么它为索引呢进行了分片,那么每个索引分几片呢?每一个索引分了五片,大家看这个东西是不是我现在点这个东西,是不是表示当年索引它分成片了,对吧,然后接下来那么咱们现在呢,这里我又给了我们现在这个索引啊,对吧,这这这个每一个分区对吧。
27:52
创建索引的时候,给他指定了两个我们的副本,两副本,那么如果两副本的话,这会要区分一下,假如说啊同学们你们要是卡副卡,如果你们要是卡不卡的话,说两个副本,那么两个副本呢,那你肯定是这样的,对吧?我当前在咱们这里边有一个分区对吧?然后呢,有两个副本,那么这块呢,肯定是我们leader这个呢,是FO2副本,它是不是这么安排啊,一共其实是不是就是两个节点对吧,两段值对吧?但如果说我现在要是我们这个对吧,ES的话,那么两副本它是除了我们现在原来已经存在的主之外,它呢有两副本。
28:29
对,就这都不算,原来那个它没有什么leader,什么follow这个概念对吧,它是除了它之外对吧,又多了两个对吧,所以说你看到虽然说两个副本,但其实呢,我有三份数据对吧,原来本身的我这里对吧,有的对吧主的对吧,那么另外一个呢,这也是我副本的对吧,这个东西呢,它其实也有master对吧,但只不不是我们这个leader和follow的概念对吧,这个呢,就相当于我们这个原来我们这个主分片里的数据对吧,然后接下来那么咱们现在呢,在我们这处理的时候呀,对吧,那么这个副本呢,它本身也有我们这个主短向深颜色的,这个也可以把理解成我要当前副本的主,就相当于我们这个卡夫卡里边它的一个leader,它没有leader follow的概念,但是它是什么呢?它是我们这个primary share和我们的replic key的这个share啊,就是说我现在是主,以及呢,我们的副本对吧,主和副本对吧,那么咱们需要注意什么对吧?那么我们现在呢,一共有三个节点对吧?那么你的一个我们的主对吧?和谁呢?和咱们的副本对吧,那么。
29:29
那你不应该在同一个节点上啊,你不应该出现在同一个节点上面,对如果出现同一个节点是不是没什么意义的呀,对吧?好了,这是关于我们现在呢这个图啊,这个图,然后接下来,那么咱们呢,用ES对和谁呢?和MYSQ进行对比,这块其实和我刚才已经对比过了,同学们看一看my sol里面是不是有数据库表,然后呢,肉还有咱们这个变的概念啊,对吧?那么在五的时候呢,这个对did相当于nice,然后表呢,相当于type,这个呢相当于document,这个相当于fail,对吧?但是咱们六和七之后,对吧?那么我们这里表示谁表,其实呢,是我们的nice对吧?然后在六的时候呢,Type成了摆设,七的时候呢,Type被移除掉,但注意啊,这个并没有被完全被移除掉,对吧,你把它当成摆设就可以对吧,然后接下来这里对吧,Document就是相当于咱们这个肉对吧,只不过咱们现在这个dog里放的是什么,放的是杰森啊,放的是我们的杰森对吧,然后接下来对吧,那么我们现在假如说啊,那么你在。
30:29
咱们开发的时候,那么你有这样的一部电影对吧?你有一部这样的电影对吧,这是咱们开发的时候你的累了,对,然后接下来电影里边有演员对吧?这个是不是我现在这个这个Java类呀,对吧?那么如果放在关系数据库里边,这个东西你怎么存。假如说我现在呢,这里边有一个电影,然后呢有演员对吧,然后电影呢,和演员他们之间是个一对多的关系,一部电影多个演员来参演,对吧?我问大家假如说啊,假如说你要是有关系数据库来描述这个关系的话,那么你现在怎么来设计?
31:05
几张表两张表吧,对吧,两张表表和表之间是在存在关系啊,是不是得有主外键呀,对吧?那么当前的这部演员对吧?哎,我当前在咱们这里边,我我我这我这个电影里边对吧?都有哪些演员对,那你应该给我拿过来,对这演员参在哪部电影,你在表里边,你得通过主外线呢,给我体现出来,对吧,大家想一想,一个是创建两张表比较麻烦,那么另外一个两张表建立关联关系对吧?这个呢,其实效率比较低对吧,其实我们真正啊,就是现在其实有一种开发方式,说我现在这个关系数据库,它什么叫关系数据库,表和表之间存在关系,但是有些项目它为了提高效率,对吧,它并不建立咱们主外键关系,就哪怕我现在这里,这两个表应该存在主外键关系,但是它其实在设计的时候,它并不去创建主外键关系。对吧,你想主外键关系真正对你就是个约束,它会这个降低咱们数据库的一个效率,对吧,它的一个性能对吧,你现在呢,别去鉴定什么主外键约束了对吧,咱们之间呢,就注意一下就行,对两张表的查询的时候呢,你别什么加主外键了对吧?但其实的确是有对吧,的确是有对吧,那么如果说我现在啊,我不用观于数据库,我直接用什么呢?我直接用我们现在的这个ES,对,那么如果我ES的话,那么他要想去描述的话,这个其实简单了,同学们,你看我现在想描述我们当前电影和演员的信息,我完全可以在一个角S里边把它给描述出来,对吧,你想我在这我这个建头象里边是不是有电影的属性,是不是咱们现在这里又有演员啊,对吧,我完全可以在咱们这个当前一个阶对象里面表示,所以说啊,像这种东西对吧,像咱们类似于我们这个豆瓣,我虽然不知道他具到底用什么,但是它这个肯定用的类似于我们这种类似于文档数据库ES呀,或者咱们这个mango DB和类似于这种。
32:50
啊,类似这种它不会用我们的关系词就可以做这个事了啊好了,那么这块呢,是关于我们这里啊,它的一些我们的概念,咱们稍微休息一会儿同学们对吧,稍微休息一下。
我来说两句