00:01
OK,大家来看这个位置啊,这边的是德鲁伊呢,对呃,跟跟其他的一些这个呃o life框架的这样,或者是这个及其查询框架啊,对,跟其他的一些及其查询框架的这样一个对比,我们来看看啊,这里边的对比是什么样的,我们打开啊。嗯,首先看这个图,这个图呢,其实可能有点老了啊,有点老了,这里边有有两个东西是开发中,实际这个开发中的,现在已经不是开发中了,已经是这个OK的了,已经是yes了啊,已经是yes了,那这个图呢,其实大家可以自己改一下,一会这俩都已经是yes了,都是yes了,那现在我们先逐一的去看一看,咱们这的几个,呃,机器查询框架都有什么,有我们刚学的德鲁伊,有这个麒麟,有prela Spark circle,还有一个ES,那这个ES呢,呃,其实指的就是这个search啊,这个search我们大家可能感觉它是干什么用的呀?诶你这东西不是做这个倒排索引,是做这个全文搜索的嘛,对不对,我们在Java当中,我们确实是主要就是用它来干这个事的。
01:01
到位缩延,然后呢去分词,然后做全文检索,对吧,这是它的强项,那其实啊,这个ES在我们大数据领域当中呢,也有自己的这个应用场景,当然可能应用场景呢,不是那么不是那么的多,但也有用的,也有用的啊那一会我们再简单的介绍一下这个ES,一会再说啊好,那现在呢,我们看看这几个,诶分析框架,他们之间的几个对比项目啊,先看第一点,呃,样本有机响应。就是说能否做到亚美尼响应,你看一下。它是可以,它是可以的,后边全不行。你要记住啊,就是这俩东西。都是会进行预计算的,后边这些东西都没有预计算。你要记住,如果说就是这个这么大的数据量,PBPB级的这样的数据量,能做到亚美有机响应的,现在只有他们两个,就是都只能是预计算你才能做到,那基于内存计算,可能现在这个技术还没有达到那么高啊,还没有那么高,他们还是做不到这个,呃,亚么响应的。这么大的数据量是做不到的啊,当然数据量小这几个东西也能也能亚美积响应,那但是呢,你你有局限,数据量大了就不行了,那他俩的数据量大了,我仍然能做到亚美的响应,就是这点好,那下边呢,是支持这个百亿数据集,百亿数据谁能支持,其实都能支持这个百亿数据集呢,其实不是很大,其实不是很大啊,就是咱们正常的这个PB级诶,甚至是这个GB级诶基本上都能到到达这个百亿,都达到百亿啊,其实这几个都能支持到这个程度。
02:25
都能支持到啊好,那下边呢,这个SQ支持。就是否提供了circle了,那现在呢,德鲁伊也支持circleq了,也能写circleq了,也写circle,哎,那麒麟呢是支持的,后边都支持,只不过这个ES呢,它是不支持的。ES是不支持circle的啊,这个大家要注意好,那下边呢,我们有这个,呃,是否支持离线处理,那离线处理当中呢,我们德鲁伊可以离线,麒麟能离线,这个都能离线,都离线,ES也是能离线的,那这个实时呢,我们实时这边大家来看一下。呃,德鲁伊是能够进行这个实时的,那麒麟能不能进行实时,麒麟也可以进行实时,因为我们再去讲麒麟的时候,我们对接数据源是不是也能对接卡夫卡呀,那对接卡夫卡是不是就是实时计算啊,也是能够执行,也是能够做的,也能做的,那后边这些东西这个他们仨。
03:13
SPA这个都做不了实时,都是离线,都是离线计算啊,都是离线计算,然后后边ES呢,ES是能够做实时的,但是呢,它能分析的指标呢,也是比较有限的,比较有限的啊好了,下边呢,是这个精确驱虫。精确驱虫,那什么叫做精确驱虫呢?所谓精确驱虫啊,就是这个count distinct。Co count distinct的,诶得到一个这样的一个最终的一个统计值,那这个值呢,大家看似简单,诶不就是一个简单的count distinct的吗?但你如果说这个数据量要是上了一定的这个数量级,数据量非常大,那你执行一个这样的count distinct,其实是耗费的资源是很多的,你比如说咱们have当中,我们have当中是不是极力的去避免使用这个count distinct呀?
04:00
对不对,诶是这样的,但是呃,那这边我们看这几个精确驱虫当中,谁做的是最好的,麒麟可以说精确驱虫是做的最好的,那德鲁伊能不能做驱虫,但能做驱虫,但是不能精确驱虫,为什么?因为他有可能丢数据。类似这点,那后边这些东西呢,呃,都能做精确驱虫,就是都能做精,但只不过呢,它们的性能那肯定是没有这个麒麟好的。麒麟还还是能够做到这个快速的反应,快速的响应,而且那个结果呢,也是100%准确的,这是麒麟,而麒麟的那个精确驱虫呢,它使用的也是bit map这个算法。好,那后边呢,呃,ES呢是做不了的,也做不了的啊,那后边是否支持这个多比John多,John呢,我们德鲁伊是不能的,是单表,那麒麟可以,后边是都可以的,这些都可以,那ES呢是不行的,ES不行。好,那下边呢,是否提供了GDPC接口,那这里边德鲁伊没有,ES没有,其他几个是都有的,其他几个都有啊都有。好,这是对他们的几个简单的一个对比,那这个图呢,其实大家可以留着以后去自己做这个技术选型的时候呢,可以参考一下。
05:06
啊。呃,那现在呢,我们去看一看这几个框架。看看这几个框架啊,他们这个各自的一个简简介,咱们逐一的去回顾一下啊,来我们看德鲁伊,德鲁伊是一个什么东西呢?它是一个十处理这个呃,时序数据这样的一个时序数据库。O时序数据库,什么叫做时序数据库呢?就是说呀,我们往德鲁伊里边去写数据的时候呢,它会按照这个时间进行这个分片。会按照时间进行分片,然后我们查询的时候呢,那也是可以按照这个时间去索引数据的,也就相当于我按这个数据啊,往这种时去数据库里边写的时候,你必须得有一个字段是时间字段。必须得有一个时间字段,然后我们往这个德鲁仪里边去存数据的时候呢,我是按照这个时间去进行分片的,诶我一段时间来分一个片,一段时间分一个片,那这样一来,我后续我后续去按照时间去索引数据的时候,那我这个效率是实际上是相当高的,相当高的啊,那这个就是咱们这个德鲁伊它这个底层的一个这个存数据的一个结构啊,这个结构其实叫做一个什么东西呢?叫做一个segment。
06:21
就一个时间分片,叫做一个segment,这个后续呢,我们会诶会会说到的会说到的,这是德鲁伊那呃这个这就是我们所谓的这个持续数据库啊,就是持续库去我们通常都有一个特点,就是有什么会有一个时间字段。回然后呢,存储数据的时候呢,会按照这个诶时间进行分片,那查的时候呢,那我按照时间去索引数据是非常方便的,非常方便的好。它完之后呢,我们看下边,下边是麒麟,那麒麟它的核心是这个QB,是预计算OLP q吧,是这样,这个咱们讲过了,不再说了,好,那往下那pres呢,它快是因为什么呢?是因为这个几乎所有的操作都在内存当中完成,是这样的,它比have呢快一个数量级,一个数量级就是数数十倍,十来倍,OK,那下边隐拍了in拍了,它的特点也是这个,基于这个内存运算。
07:11
但是他支持的数据源是没有price多的,那这个简单了解看下边,下边Spark circle啊,那SPA circle呢这个。呃,我们前面其实也分析过啊,那rk Spark circle呢?嗯,它的思路是什么呢?SPA它的思路是这样的,它呀,它它首先它也是基于内存进行计算的,也是基于内存计算,然后它呢,它是把整个集群当中的内存啊,诶我给它当成这个一大块内存去使用的,诶是这样,它综合的把这个整个的集群当中的资源,我哎我整合起来一起去使用。然后呢,我可以诶,通过增加集群节点去这个并行的计算,并行计算啊,这是Spark circle它的一个这个基本的原理,那这边呢,我们Spark circle呢,不详细讲,因为这个东西放到后边大家会重度的去学习这个Spark的,因为它是在我们大数据领域当中呢,还是非常重要的一个框架,这个后边的大家再详细的学就可以了。
08:02
好,那往下看,下边呢,这个位置还有一个这个ES,呃,这边其实也说了ES,它最大特点是使用这个盗版索引去干什么呀,去做什么全检索啊这些东西,那他在我们大数据领域当中有没有使用场景呢?也是有的,比如说什么我们大家应该有同学听到过一个这样的一个技术站啊,叫做elk。EK,那这个E是什么呢?E就是咱们这个所谓的ES elastic searchl是什么呢?L指的是logit。诶老是K是什么呢?是K是K班的,K班的这其实是三个框架,四三框架,那他们仨怎么去使用呢?这个L是elk啊,不是e fkl是什么?L是log,是它的作用是采集日志。跟谁一样?跟我们学的一样。跟他是一样的角色啊,就是采集日志,那日志采集完之后,我可以放到哪呢?我可以放到ES当中。Serve当中,我可以存到里边,存的时候呢,我会见索引等等这些操作会存到这里,那后边我要干什么,我要做可视化的展示,可视化展示干什么用,谁用K班呢?那K班的呢,它也是一个这样的一个,诶可视化的这样的一个报表工具也也支持什么呀,也支持这个自定义报表啊,这些东西也支持这些功能,跟我们说赛的很像,但是K班呢,它有个特点,就是我的数据源呢,只能对对接他自家的这个ES。
09:24
只能对接ES啊,也就说我们是有一个这样的一个技术站的,也说他是直接从日志到最终的结果,哎,他能进行这个分析,那ES呢,我们能做的分析其实不多,只能做一些简单的这种聚合分析,只能做一些聚合分析啊,诶然后呢,做一些这个可视化的展示,也有使用的也有,诶一般用的时候呢,大致都是这么用整个的一个技术站,Logsh,这个search加这个班的。这个应该在后边我们的实时项目当中呢,诶应该会用到它,应该是会用到它的啊,那这边其实不是说了吗?ES这边我们是支持这个实时分析的,知时分析的,后边呢,我们应该是会用到的,这个到大到时候大家学的时候呢,再去,诶正常学就行了。
10:06
呃,对,现在呢,其实也有一个这个呃框架叫做这个fluent dent d啊,它其实呃跟我们现在的书上第一课提过12K提过是吧,那你知道就可以了,那现在呢,其实确实是外边呢也开始去使用这个呃fluent d了,那fluent d这个东西呢,其实呃也跟咱们flu的架构呢,其实也是很像的。也是很像的啊,就是说呃,也是基本上有source,有这个中间的title,有S结构基本类似,结构基本类似啊,那其实对于这个日志采集呢,我们在市面上其实有好多竞品,好多竞品啊,比如说flu d lost这些东西基本上都是竞品,就是他们功能都是一样的,都是采集日志,都采集日志啊,那这个其实用的都有都有啊好,那这个是我们简单的,呃,了解了一下这几个框架。那现在呢,我们最终有一个总结啊,就是咱们真正去做技术选型的时候,咱们到底应该怎么去选呢?我们其实可以从这样的几个角度去分析,几个角度去分析啊,咱们既然是机器查询对不对,那机器查询啊,我们你就得看,你就得看什么啊,诶首先第一点你的查询业务是什么,如果说你这只需要做这种ola分析。
11:14
就是多维分析,那OK可以选什么呀。可以选啥只做OLED分析,那我是不是可以考虑诶德鲁伊或者麒麟啊,他俩有什么好处呢?因为我的查询效率是最高的,而且我支持的数据量是非常非常大的。是非常大的。是这样的,首先你考虑这个事,那如果说。你除了做这种olap分析,你还要做一些更复杂的一些这种,呃搜库查询啊,比如说各种这各种这个子查询等等等,你要做这种复杂的查询,那这时候呢,呃,你可能用这个德鲁伊麒麟,那可能用起来就不是那么方便了,对不对,就不那么方便了,那这时候你去考虑谁呢?去考虑这个什么psto啊,X Spark这些东西。是这样的啊,首先先考虑这个业务,那考虑完业务之后呢,咱们考虑什么,考虑这个呃,数据集。
12:00
数集,如果说你的数据集是非常非常大的啊,超大数据集,那这时候呢,我们还是首选德鲁和麒麟,因为他俩是什么,他俩是预计算,就是我的数据集,甭管多大,我的查询时间基本能够维持在这个较低的一个水平。那如果说你是什么press,你是Spark circle,你是EL了,诶像这些基于内存进行计算的这些框架啊,它都会什么?随着数据的增长,我的查询时间肯定都会增长。那这时候如果说数据量非常大,我们考虑使用麒麟和多鲁伊,那呃在后边呢,就是pre SPA circle这样这样的一个顺序,那如果说我们要考虑的是什么呢?考虑我这个呃,支持的数据源种类。要考虑这个东西,那也就是说可能我进行这个多元分析的时候呢,进行这个呃机查询的时候,我可能要从多个数据源去获取数据,然后综合的进行查询,那这时候你就得考虑什么了呀,就得考虑诶这个数据源的支持程度了,考虑谁?首先presal支持的数据源是最丰富的,是最丰富的啊,它能够支持什么,能够支持时序数据,那个那个图数据库,能够支持咱们的这个no s数据库,诶还能够支持什么呀,能够支持咱们的呃,这个关型数据库对不对?诶甚至支持have等等,它都支持,这是比较全的啊,那接下来是谁?接下来是SPA。
13:16
我们大自己去学Spark的时候,其实也能发现我们Spark s也能支持好几种这个数据源,但是它还是没有多,那再往后呢,就是这个麒麟,我们麒麟这边呢,能对接离线,能对接实时,其实也还好也好,那再往后呢,就是这个德鲁伊了,再后德鲁伊这是咱们这个支持的数据源的这个种类。好,那这就是咱们这边的几个框架的一个简单的对比,这块呢,大家就是呃,简单的看一看就可以了,然后这个哪块比较重要呢?这块比较重要。这会比较重要,然后哪呢,还有这块就是说他们几个的一个性能的一个对比,大家可以简单的去记忆一下,是这样的啊,然后像这个ES啊,像Spark这些东西,我们像这东西咱们现在都没学,嗯,可能你对他印象不深,这个等大家以后学了之后,那再回过头来看,那就会有更深的这个理解了啊好,那这边咱们就完事了啊。
14:06
那再往下呢,就是这个德鲁伊的这个框架了,呃,这个框架原理相对来说要复杂一些,所以说我们现在先先不讲它,我们休息一会儿再讲啊,一会再讲,那下节课咱们把这讲了,讲了之后,那德鲁伊呢,我们就呃,接下来就去安装安装,然后使用一下就可以了,好,下回休息会吧。
我来说两句