00:02
OK啊,来我们继续往后说了啊呃,刚才我们聊了一下这个。啊,这我们知道了啊,它这个S的这个个数呢,还是呃,需要这个好好的去琢磨琢磨啊,到底要怎么去分配的啊,你不能这个瞎分配啊,因为它这个多了呢,呃,对你这个集群的这个资源的消耗是很恐怖的啊,然后少了呢,你的负载呢又上不去。对吧,所以你要这个合理的去规划这个沙啊。行呃,但是因为你在这个生产环境中呢,你这个你不能说,因为说这个下的太多了,然后你就什么把它这个降的太低啊,这样也不行,那你在这个合理的情况下,你就什么正常去规划你这个啥的。但是呢,呃,你的这个ES集群,你这个使用的时间越来越长的话呢,那你的SH的个数呢,还是会越来越多。在这种情况下,你就不能说因为这个煞的太多了,你要什么把这个煞的给它降低啊,这是不行的,因为你之前已经什么合理的把把它什么规划出来。
01:02
对吧,好,那么当我们这个长时间这个使用下来以后,你这个下的多了以后,我们应该怎么办。那我们就要怎么对他怎么做出这个优化啊,这个下的这个优化的话呢,有两个层面呢,啊,第一个层面就是。及时归档这个冷数据。啊,这个什么叫做及时归档冷数据呢,就是把一些你这个已经。不太会去访问的数据啊。就比如说这个时间长的数据啊,这个去年的数据啊,或者什么这个半年前的数据,就是大概率情况下已经什么不太会什么对它进行这个访问了,那么这种情况下,我们就可以把它这个归。就是把它什么定义为这个冷数据啊,它不是这个热点数据了,那么像这种数据的话呢,其实我们就可以什么对它进行归档了。好,那到底怎么归档呢?就一般情况下我们就会怎么把它从ES中给他拿走了。我就这么不再去存这个数据了,把它拿走。啊,不是说把它删掉啊,是把它拿走。啊,那拿到什么地方呢?我们可能会把它什么拿到这个,呃,比如说一些什么存储代价比较低的啊,这个主站里面,比如说放到这个HDS。
02:10
对吧,或者说啊,你就结合实际情况,如果说你的这个数据啊。你是在这个实时处理的时候呢,你放到这个ES中的,那你这个离线的话呢,你也这么存了一份的。对吧,那这种情况下,我觉得你在这个ES中就可以把它是可以可以什么把它删掉了,因为反正我这个理想里面还有一份,对吧,那我可以考虑把它删掉。那如果说你没有这个离线啊,就离线里面你没有这一份数据,你就只有在ES中有,那这种情况下你是不能把它删掉的,你就要把它什么归档了,把它放到一些什么这个存储代价比较低的里面,比如说这个H加S。对吧,把它存到这里面啊,反正你已经什么不会这个频繁访问他了吗。对吧?啊呃,那我们这个归档之前的话呢,可能会做一个操作啊,就是把你这个要归档的这个数据,然后呢,我们去做出一个统计啊,就是我们留一个结果就行了啊,把它这个统计的结果给他留下来。
03:01
明白吧,然后数据的话呢,我们就什么直接给他什么拿走了。好吧,就是我们相当于什么存一个,呃,长期的一个聚合啊,就是长期的这个聚合结果给他存下来。然后这个明细的话呢,就把它什么拿走。对吧?啊,因此我们这个ES的话,一般也会这么去说啊,就它里面会存什么数据呢?存这个呃,短期的明细啊,就是我们这个最近一段时间内的这个明细数据,我是要存进去的,在这个长期的这个明细数据呢,我们就不存了啊,我们顶多给你存一个什么长期的一个什么聚合结果,就比如说啊,以什么年度或者什么以这个季度啊,然后给你做一个汇总啊,把这个汇总出来结果给你传下来,然后明细数据就把它拿走了。对吧,那你数据拿走以后呢,因为你不拿这个ES存了。对不对,这个时候你这个ES的这个资源就什么把它空出来了。对吧,啊,这是一个归档冷数据啊,这个大家要知道一下。好,呃,然后还有一个就是你目前没有办法去做这个归档的数据。你必须得什么在这个ES中呢,做这个存储的数据啊,那这个时候怎么做呢?我们就要什么从你的下的内部去做这个优化,就是我们尽可能去降低你每一个分片所占用的这个资源消耗。
04:11
好,那这个话题就会涉及到我们刚刚所聊的一个事儿,为什么你的每一个Sha的,你所维护的数据量差不多,但是你会占用的这个内存的。大小不一样呢。对吧,这是由什么原因导致的呢?其实这个原因啊,主要就是因为我们的断来导致的。那我们对于你这个每一个下的内部的优化,就是去合并它的段啊,把这个段呢做一个合并,合并完成以后呢,我就可以降低你对这个资源的一个消耗。好,所以说接下来我们就要去说一下这个段到底是个什么东西,好,那如果说我们想把这个段说明白的话,那我们就要先要知道一下我们数据的物理的一个写流程,或者什么物理的一个提交流程,就你这个数据呢,它到底是怎么去写到我这个ES中的,刚才我们说的呢,只是一个。
05:02
呃,写的一个原理对吧,现在我们去说一下他这个写的过程呢,我们都是经过了哪几步,怎么把数据写进去的。明白了吧,来这个我们呃给了一个图啊呃,我们自己画一个吧,好吧,我们边画然后呢边去这个分析它啊,大家把这个事情呢,给他了解一下,你就知道这个段是怎么来的了。OK啊,行,那我们就来自己画个图啊。大家都跟着听啊。好,那我接着往下往后往后面画吧,呃,我们再来一个啊放到这。好,我们叫这个就是,呃,物理写流程啊。OK,呃,那首先的话,我们肯定会有一个客户端了,对吧,那我就拿一个客户端过来,假设这是我那个客户端啊。
06:01
好,假设这是我的客户端啊呃,那首先我的客户端呢,会发送一个这个写的请求啊,那么这个写请求的话呢,它这个ES它是一个异步写啊,异步的一个写操作就是它不会只直接把数据呢写到你的磁盘中,它会往内存中先写啊,所以它会先写到一个位置。这个地方叫什么呢?这个地方叫做不可读内存啊嗯。它叫不可读内存啊,不可读buffer。好,那我就放到这吧,它会先写到一个不可读的buffer里面啊,就是一个内存空间啊,它先写内存的啊,同学们这个要注意的。诶。这个不要了啊。行,呃,那么他往这个不可读的这个buffer中写,他写的是个什么东西呢?注意啊,他写的其实就是你的一条一条的数据啊,因为你每次写都是写一个写一条数据进来的啊,所以这个我们又可以拿一个呃拿一个字来表示啊,这个是我们一个一个dock啊。
07:06
对吧,他写的就是一条一条的数据啊,我把它拿过来啊,他写的很多啊do。然后do。对吧,等等吧啊,他会写很多啊,我这个稍微再大一点啊。OK,他会写很多,就是他先他为什么先把你的每一个这个do啊,然后呢,先写到一个叫做不可读的一个什么这个buffer中,就这里面东西呢,你是不能去读的。明白吧,你是不能去读的啊OK,行,那你不能读不行啊,对吧,接下来啊,他会把这个数据呢,再往另外一个地方去写。这个地方叫什么叫诶。这个地方叫什么叫可读8UFF分,就是我可以读了,明白吧,好,那从这个不可读这个buff分,然后到这个可读这个buff分。它经过多长时间呢?这个默认是一秒钟啊。
08:06
好,就是一秒钟啊,呃,这个我们叫做。有有一个专业的叫法啊,这个叫什么叫refresh啊refresh啊默认是这个一秒啊,就它会什么,每隔这个一秒钟啊,然后呢,就会什么,从你的不可读的这个8UFF分中,然后呢,把数据呢给你,诶转移到什么另外一个地方叫这个可读八分,那么这个过程中呢,它并不是说把数据原封不动给你转过来的,他会做这一个操作,什么操作呢?就是把你当前这一秒钟,你所展的这个数据给它打包成一个。断。然后给你写过来。那就说白了,其实啊,我们这一秒钟我攒了数据,到了这里面以后呢,它就变成一个个的断啊,那这个时候我们的断就出来了啊,就说白了,我这里面存的其实是一个一个的段啊,同学们,你每隔一秒钟你写一次,每隔一秒钟写一次。
09:02
对吧,你存的是一个一个的断,那你的数据呢,什么就变成一个个的断了。明白我的意思吧,假如说啊,假如说啊,这个是我们给个颜色吧,啊,假设这个是绿色的对吧,那我将来这个写过来以后呢,它也是一个绿色的啊,就是表示什么意思呢?表示你的这些个数据啊,假设你是一秒钟的数据,那我就什么统一都写成一个段。对吧,当然哈,你前提是什么前提你你都得是什么,都得是一个索引的哈,你不能说我不同索引的数据,那我写到一起,那不是的,它会是按照什么索引去做划分的,OK吧,好,那么比如说将来我们会有很多段啊,这个段是另外一秒钟的数据啊,我就标成不同的颜色啊。对吧。能理解我的意思吧,好,他会每隔什么每隔一秒钟就给你写到这里面了啊,这是一个可读八分,那么其实你写到这里面的数据,我就可以什么正常的去做读取了啊,正常去做读取啊,但是大家想哈,你的数据你光写到内存中这个不靠谱呀,你最终你不得落盘吗?对吧,所以说下一步啊,这个数据呢,就会做落盘。
10:03
啊,这个数据呢,就要落盘了,那么这个落盘的话,落到什么地方呢?落到我们的这个磁盘啊,其实就是我们的下的啊,就是我们的分区啊,这个是你的磁盘了。能明白吧,这个是你的磁盘了啊,那么你往这个磁盘中落的话,它就是原封不动的啊,你在这个里面可读八分钟,你存的是什么,那我往里面去落的时候,我就原封不动的把它落进来。那就说白了,我落到你的这个Sha里面以后,它其实就是一个段,一个段,一个段这样的一个结构,好,那这个过程我们也有一个专门专门的叫法,我们叫什么呀,叫做flash的操作啊,叫flash操作,那么它是有条件的啊,这个flash什么时候执行一次呢?就是你的,呃,应该是半个小时啊,我记得是默认啊,这个30分钟啊,或者或者什么呀,或者就是我们的叉lo达到这个上限,就是512兆啊,这里面我会涉及到一个什么叉lo,我先把它写到这儿啊,或者这个。
11:03
Trustlo达到512兆,呃,那这个trustlog我们稍后再提它啊,你现在知道一下它会什么,最终呢,诶有一个条件来控制它,控制什么呀,控制你这个可投八分的数据呢,要进入到你的这个SH里面,就是进入到你这个磁盘里面。能明白吧,好,那我们再来分析啊,那你说啊,你看我们在这个正常写的这个过程中啊,我们的数据呢,先写到你的不可读八分,再写到你的可读八分,然后呢,最后呢,数据呢,写到你的磁盘中。但是呢,它其实并不是要保证你的数据全部都写成功以后,我才会响应,客户当时写成功了,他只要把数据写到内存中,我就可以响应你的数据写成功了。那么这个时候大家会想到,那你的数据呢,在内存中其实会停留很长的时间,比如说停留30分钟,对吧,或者说呢,达到512兆,那你总得写很长时间才能把它数据写过这么大,那我最终的数据呢,才能够进入到磁盘中,那假如说你的数据还待到内存中的时候,我的ES如果说出问题了。对吧。
12:00
那这个时候你的数据呢,就不可能真正的写到磁盘中,那你的这个数据就相当于会什么丢掉。对不对。那这个问题怎么解决啊,同学们。其实很简单啊,这个问题的解决方案我们在之前都遇到过,所有这个异步写入的,我们都会有类似的机制。你比如说你们在HDFS中。对吧,研究那个name node的时候啊,研究name node的时候,你们应该接触过一个话题啊,就是它会把数据呢,诶以这种方式去写啊,它会涉及到两个文件,一个是文件,一个是那个叫做镜像文件叫face measure对不对。是吧,这个是你真正的磁盘,这个ID呢,也是一个磁盘,但是呢,我们真正写数据呢,是先写到你的内的内存中,就那个原数据啊,我先在你的内存中去构建。最终的话呢,它才会什么在你的face image里面去构建,那么中间的过程,我怎么去记录我这个内存中原数据呢?怎么保证这个数据不丢呢?我要怎么记录你的ID文件。
13:01
对吧,就把你所有的写操作呢,在这里面去记录一下。能明白吧,这是你在HDR涉及到的一个,那么你们在讲h base的时候也有类似的机制。那你的数据呢,是先写到这个叫做什么呀,叫做memory里面对吧?好,先写到member store,那你怎么保证写到member store的数据就不丢了呢?他要去记录,记录到什么呀,记录到叫做。W,对吧,进入到一个什么预写日志里面。能明白吧,就说白了,你所写到内存的数据,如果说你就敢响应客户端写成功了,那你就要在内部去保证这个数据是安全的,怎么保证呢?就要去记录一下什么它的操作。那这地方也是一样的,你看一下我的数据呢,先写到内存中,其实我就可以响应客户端说你写成功了,那我怎么保证这个数据就绝对安全呢?那我就要把你的写操作给你记录下来,所以说啊,其实我们不仅要把数据写到你的内存中,还要把数据写到什么地方呢?还要把你的操作啊,同学们把你的操作。记录到什么地方呢?进入到你的一个地方,这个地方叫什么呀,我把它复制过来啊。
14:06
它会记录到这个地方,这个地方呢,叫做,呃,我就写到这吧,啊,叫做chlo。Translo好,当然它也是先进translo的内存,这里面记录什么东西,记录的是你的操作啊,比如说操作。对吧?呃,我们就把这个大概的一个思想给你表达出来,其实他这个trans log的记录东西还是比较复杂的啊,还是比较复杂的,我们不纠结那么多啊,我就只把这个真正的一个写流程啊,把这个流程给你说明白就行了啊,就说白了,我不仅要往你的这里面去写,我还要什么往这个穿里去写。理解吧,嗯,大概的过程你可以这么这么去理解啊,写到内存,然后写到它里面。呃,在这节上吧,好吧,在这节上。好吧,要写到内存中,还有什么写到这个translog的内存中啊,行,但是呢,你看你这也是个内存,这也不靠谱呀,对吧,所以说呢,我们还会什么呀,再接着往后去写,就是呢,我最终的会放到你的translog的什么呀,叫做磁盘中,明白了吧,最终会放到磁盘中,那么这个过程。
15:12
这个过程。多久呢?这个你可以自自己去调啊,就是每条或者周期啊,就是每条数据或者什么周期啊,就是你可以自己去调整啊,就是你是希望他每一个写操作,我都什么直接去落盘,还是说我一个周期去落一个盘,比如说每隔几秒钟,每隔几秒钟去落盘,这个你可以去调整。理解吧,啊,如果说你要做的绝对安全,那就最好是也不能要绝对安全,尽可能安全的话,那最好是每条数据你都落一次盘,每条数据落一次盘。能明白吧,啊就说白了,它也是同样的机制啊,我的数据呢,不仅要往你的内存中写,我还要什么进入到我的translo的什么内存中,然后呢,再怎么接着进入到我的这个磁盘中,它这样的一个过程。OK吧,好,那么就相当于我们的数据其实真正是内存中写了一份,然后呢,我还并且把你的操作呢记录到了我的chlo中,那么假如说诶,我们在。
16:08
这个刷新的周期内,比如说我还没有来得及去做这个flash的操作,你的内存的数据呢,丢了。丢了以后怎么办呢?没有关系,因为我所有的操作呢,都在我的这个trans磁盘中,所以说呢,这个东西主要是做什么事情的啊,它主要就是用于恢复我的数据啊,就加比如说将来我这个出问题了。对吧,那我可以什么基于我的这个叉log呢,去做什么去做这个数据的恢复啊,就是这个过程主要就是什么做这个数据恢复,对吧,我可以什么去恢复我的数据。能明白我的意思吧。嗯,大概是这样的一个过程。好了,那么这样的话,我就把我的数据呢,最后呢,真正的能够什么写到我这个Sha的中,那么你看我的Sha的中啊,对于我的这个Sha的中。大家就发现它其实记录的数据呢,还是以段为单位进行这个记录的,就是一段一段一段来去记录的。好,那么将来大家想想哈,我的每一个段是怎么来的,我的每一个段呢,其实是基于你的写操作来的,比如说诶,我写了一秒钟的数据,好,那我就什么把它合并成一个段,那我再写一秒钟的数据,我再合合并成一个段,再来一秒钟,我再并成一个段。
17:16
好,这个里面大家注意多长时间生成一个段,这是按照你的refresh的时间来的,但是呢,我的每一个段中有多少条数据,这个是按你的写入频率来的,比如说你的一秒中你写了十条数据,那我的这个段中就有十条数据,你写了1000条数据,那我的这个段中我就有1000条数据。明白我的意思吧,好,那我说这个的话,主要想给大家表达一个什么意思啊,就是你的一个Sha中具体维护多少数据,其实跟你的段的个数是不成正比的。那是不是我的段越多,我对应的数字数据就越多呢?不一定。对吧,有可能我的每个段中就十条数据,十条数据,十条数据。对吧,而我的另外一个呢,它里面一个段1万条数据。
18:03
对吧,人家就一个段,但是你是三个段,但是数据上来讲的话,还是人家许多。对吧,所以这种要给大家表达一个意思,就是你上中的数据量的这个维护的大小,跟你的段的个数其实是没有什么关系的。理解吧。但是。这个地方我们能够明确的是,你的段越多。你的段越多,那我要占用的资源就越多,比如说我要给你的每个段去维护什么,维护你的什么索引啊,对吧,在内存上去构建。能明白我的意思吧,就你的段越多,那我需要占用的这个资源就会越多,因此我们再回到这个文档中给大家去看这个话,我们的每一个段啊,每一个这个Sha的,它会大概占用30~80到那堆内存,为什么会有一个跨度呢?而且这个跨度大家看一下它其实还挺大。对吧,挺大的一个跨度,那么这个其实主要就是因为你的每一个下中,你的段的个数不一样,你的段越多,我占用的内存就会越多,那我的段越少,我占用的内存就会越少。
19:04
那你看你同样的这个数据,比如说啊,这里面他们各维护了十条数据,那总共就30条数据,如果说我的30条数据我是进入到多个段中的,那我的内存比如说是60兆,对吧,但如果说我的30兆数据我记录到一个段中,那我的内存可能就是30兆。对吧,那你维护同样的数据。那我可能是尽可能让我的内存越小越好吧。对吧,所以说这个时候如果说我们上去对你的下做内部优化,那我们主要做的事情就是把你的段做一个合并。怎么合并呢?把这个再拿过来。就是我们最终呢,希望达到这样的效果。就是我的一个下的磁盘中,我就只有一个很大的一个段就完事了。啊,很大的一个段来把它再调个颜色,就调成这个蓝的对吧,这个过程我们就叫做段合并。
20:04
能理解了吧,好吧,那其实你看一下啊,这个机制其实跟那个h base那个机制特别特别的像。H base也是啊,它这个数据呢,都会什么写到什么一个一个的什么那个什么store中对吧,那将来你这个store fair中呢,又会有过期的数据,又会有被删除的数据怎么办呢?那我在做什么,做这个stop合并的时候,我是把你这个。很多什么,是不是合并成一个什么大的了呀。对吧,这个机制是很像的。好吧,行,那这个事情我们说明白以后,那我们再回到我们这个文档中,你来看一下啊。那我们在这个优化我们这个Sha的时候。我们归档了数据,这个不说了,再一个就是合并你的多个段,对吧,这个我们就说明白了,因为你在物理的提交流程中,你就会什么出现各种各样的段,那我们尽可能让我的每一个上中这个段的个数呢更少一点。对吧,这样的话,我占用的这个内存空间呢,就会更小一点。好吧,行,那我们知道这个段合并的好处以后呢,接下来我们说一下它这个ES是怎么去合并这个段的。
21:07
给大家去说一下啊。这个ES的这个段合并啊。它的这个门槛比较高。能明白吧,门槛比较高啊,你看啊,这是我们刚刚描述的啊,就是。一不写无机制对吧,那我们会什么生成什么,很多段。对吧,那这个段的数据呢,有独立的这个路索引。日积月累,你的一个Sha的是由什么?成千上万个Sha的组成的,那么性能是一定不好的,而且消耗的内存巨大。那我们就是希望能够把你的很小的段呢,合并成大的段,这样的话既节省你的内存,又提高查询性能,所以说ES它实际上是会什么在后期,在这个什么后台呢,会实际上周期性的去合并这个段。但是呢,它的什么呀,门槛特别特别高。因为什么呀,因为你这种合并操作呢,会占用资源。会影响你当时的这个搜索性能。所以说它的这个限制和这个门槛呢,非常非常高,那么最终导致的结果就是很久都不会触发断合并,或者说我合并的效果并不理想。
22:10
明白吧,那就说白了,你寄托于ES官方啊,他的这个方案,然后呢,帮你去做这个段合并,其实是满足不了我们的效果的啊,我满满足不了我们的,我们希望的效果,它很难去满足我们。因此我们将来会怎么做啊,我们会这么去做手动合并。啊,那么你手动合并,你就不担心说这个影响你这个搜索的性能了吗?那我们肯定担心啊,所以说这个手动合并的一个时机就很重要了,对吧,你一定要挑选一个合适的时机。而且大家注意哈,因为我们在生产环境中,我们都是以天为单位做索引分割的啊,就是这个基本上都是这么去做的。那也就意味着我今天的这个索引啊,等我过了这个零点以后,它里面就不会再有新的数据了,因为我零点以后的数据,我会进入到第二天的这个索引中。那这里面的数据如果不再进行变化的话,那我就可以考虑统一对它什么进行一次段的合并。
23:05
对吧,统一进行一次段的合并,然后把它合并成一个段,或者什么更少的段,这个就看你看你的情况,你你希望它合并成几个对吧,这要跟你将来这个查询呃什么什么等等要什么挂钩的,对吧?但基本上我们都是越少越好,越少越好的。OK吧,好,那你看一下啊,你零点以后你的这个数据呢,就不会再动了,那我就可以做合并了,而且正好零点以后,这个时机也比较合适。大半夜了嘛,对不对,你对这个ES的这个什么使用,应该就什么频率比较低的时候。对吧,这种情况下你的查询的也不是很多,那这个时候你再合并段就比较合适了。对吧,好,那怎么合呢?我们只需要去执行这样的一个指令就可以,什么对这个段子进行一个合并。你看啊,就是post,前面是你的索引,后面是你的什么叫做force,或者是什么强制合并,然后后面这个写的什么呀,就是强制合并成几个段,比如说我就希望你最终合并成一个段就完事了。
24:01
了解吧,最终合并成一个段就可以了。好吧,啊,这是我们的一个什么指令啊,行,呃,那这个效果我们可以简单演示一下啊,比如说我们查看一下这个索引的一个断情况啊,呃,那这个效果可能不是很明显啊来这个什么意思啊,就是查你的索引它里面什么各种段的情况,你看我这个S不就什么表示什么表示排序嘛,我按照什么段的个数做一个排序,后面是显示表头,后面是我要提取哪些字段。对吧,我直接把它拿过来去执行一下啊来,那我们打开我们的浏览器。好,访问我们的这个。可以的啊。过来以后呢,把这个执行一下。好来拉到最下面,就是我们之前写的啊,不看它了段合并啊合并行你看了啊,我把它拿过来先这个查一下啊,先查一下。呃,那查谁呢?我们就查所有的啊,等一下。
25:02
呃,现在我们能够看到这个段啊,它其实也不是很多哈,嗯。诶,这个还好吧,这个还好。呃,我看哪个多一点啊这个,呃,这都是六个是吧?嗯,都是六个。这里面数据有多少呀,这里面数据数据好像不多呀,我查一下啊。嗯,这个应该提前给点数据就比较好了啊,Get这个movie稍等一下啊。呃,Movie index,然后呢,这好像就我们的几条数据是吧,就三条数据是吧,嗯。那我这个查的这个结果不太明显啊。啊。行吧,那就就拿这个吧,就拿这个吧,来就随便拿一个吧,好吧,嗯,随便拿一个,就就拿这个吧,我们用的比较多的啊,就拿它。
26:02
啊,我先截个图出来啊,截个图出来。好,这个图啊,放到这儿。行来给大家去说一下啊,现在我们查到这个结果的话,你看我们就看它了啊,就看它当前它有几个段呢?它总共有六个段啊,大家能看到吧,同学们,它总共有六个段,就是什么c count啊总共六个段,然后呢,呃,这个所占用的这个内存呢,是11.9KB啊这个其实很小,因为我们数据量很小啊,然后呢,总内存啊这个多少,然后呢,这个store size,你存储的大小是多少?能理解吧,车子带还有多少啊,行,这个能看懂,然后它有几个这个杀的呢?有两个杀的啊,呃,就是一个是主,一个是副嘛,对吧,其实它总共就一个煞的,只不过是有两个分区啊,有两个副本而已啊OK,行,那你看到这个效果啊,那比如说呢,我们这个索引的话已经不用了啊,比如说这个过了零点了,过了零点以后我要什么对它进行合并了,那怎么合呢?那你可以这么去合啊,就是把这个拿过来。直接去合就可以了啊,当然这个合并的效果的话,他不会呢,再立马看得到,他得等一会儿啊,比如说我们和谁呢,和这个moving index就和它对吧,就和它,然后呢,把它合成一个段啊,你可以这么执行一下。
27:06
行,他就帮你合了注意啊,然后呢,他合完以后,他会给你返回一个结果,说你这个总共有几个几个这个。呃,几个煞的呢,有这个两个,为什么是两个呢?因为有一个主有一个副对吧,这样能看得懂啊行,反正就是这个现在已经什么合完了,但是呢,你现在再去查的话,你还这个不能立马看到效果哈,我看能看到效果吗?Movie index。诶,已经能看到效果了是吧,那还挺快哈,还挺快对吧,就是有时候你可能要等半天啊,这个已经看到效果了啊,那我们看一下吧。因为我们数据傻,数据傻。好,拿过来对比一下啊。行,来对比一下。对吧,OK,看了啊同学们,我们说你你给我什么合并成一个啊,但最后结果你发现是两个,为什么是两个呢?这也很好理解,因为你毕竟有两个副本嘛,对不对,那你的主副主主下中有一个段,然后你的这个副本的这个下中是不是也得有一个段呀。
28:02
对吧,这个加起来就是两个啊好,那你再来看这个占用的这个资源啊,你看一下我们同样的数据,如果说你是六个段的情况下,你占用这么多的内存,但是我两个段的时候,你看我就占用这么多内存。就是我一个段的时候,我就占用这么多内存啊,它应该是总共有三个段就对了,因为它包含这个主副嘛,对吧。然后对吧,然后呢,这个占用的什么,这个种类存大小以及什么,你看磁盘空间是不是也是变小了呀。对不对啊,当然这个不是很明显啊,因为我们数据量很小,如果说你这个数据量比较大的情况下,你这个合并啊,它的这个效果你对比性是很强的,这个差距还是很大很大的。明白了吧,啊,但是呢,这个其实我们也能够看出来了啊,就你合并完以后呢,确实啊,你看占用了这个内存也小了,然后占用了这个什么磁盘空间也小了。那肯定是好处比较多的呀。对吧?啊,所以说以后我们在这个呃做这个S的优化的时候,就一定要想到这个段合并这个事,就把它里面这个段子做一个合并啊,那这个合并的话呢,我们呃交给ES去做的话,这个门槛比较高啊,所以说一般我们都会什么手动的去做这个合并。
29:05
明白了吧,啊,来这个我们就聊这么多了啊。
我来说两句