00:00
OK,那我们来打开这个麒麟文档上的这个架构的APP,咱们打开。啊,这个图呢,呃,实际上是从这个官网上拿下来的啊,是从官网上下来的,那这个只不过给他翻译成中文了,好,我们看这个麒麟架构啊,麒麟架构呢,大致呢,可以分为这样的三层,三层啊前面上面一层这是负责干什么的呢?负责查询的。负责查询的啊,那下边一层负责干什么呢?是负责这个计算的,负责计算的中间还有一个所谓的路由层,这个路由层呢,我们一会再单独说它,单独说它现在不考虑它,我们现在呢,一个是查询,一个是计算,对不对,那这个呃计算,我们先说计算吧,因为大家都知道我们麒麟要进行预计算,对不对,那预计算是在干什么呀?预计算是不是就在将原始的数据。给他干什么?给他是不是给他放到一个所谓的cube当中啊。对不对,就是给它进行这个o lap cube的这种构建,对不对,构建完之后这个cube呢,我是不是要进行存储的呀,对不对,那接下来我就得考虑了,你计算的数据源是什么,那你结果这个Q吧,存到什么地方了,这是应该是咱们考虑的东西啊,来我们来看一下这个,呃,计算层有什么东西啊。
01:14
层首先下边有一个引擎,Cube的N是不是就是呃,Cube构建引擎啊,对不对,这个所谓的cube构建事事实就是在干什么,事实上就是在原将原始数据给它进行聚合计算。对不对,这就是在构建Q嘛,其实就是说白了就是计算,就是计算引擎,对不对,那这边还有一个这个语言数据,这个语言数据指的是什么呢?就是我们后期啊,咱们这个呃,使用麒麟的时候呢,我可能会构建各种各样的cube,可能会有很多cube,那每个cube呀,都有一个自己的原数据的原数据啊,包括你这个里边啊,有什么维度对不对,有什么度量值对吧,那都是这个原数据要负责呃存储的东西。好,那这个咱们简单分析完了,接下来咱们看看我这个所谓的计算,我的诶数据源是什么,我的这个最终Q吧,存到什么地方,咱们来看看啊好。
02:05
先来看这个数据源,数据源呢,咱们麒麟我们能够对接什么,能够对接,也能够对接卡夫卡。那对接have的时候呢,我们麒麟用它干什么呀?是不是用来进行离线计算啊,对不对,那麒麟实际上也能对接卡夫卡,那对接卡夫卡就说明麒麟具有什么样的功能啊,是不是也具有这个实时计算的功能啊。是这样的,我们麒麟呢,也是能够进行实时计算的,对接卡不卡好,那在这个离线数仓当中呢,我们就让他去对接hi物就可以了,那对接hive对接的时候,我们对接的是什么呢?对接是这个星型模型,刚才咱们说了对不对,要对接咱们DWD层就可以了。好,那它完了之后呢,我们往下看,下边呢,就是说诶看这个位置。那这个位置下边就该什么呢?计算完之后你要干什么,你要把数据你要存储啊,对不对,你那个olapq是不是要进行存储,那存储我存储到什么地方呢。存储到h base当中,这是麒麟人家选择的这个咱们的呃,Cube的存储,存储的这个框架它使用的是h base,那其实大家可以分析分析啊,那麒麟它为什么会选用咱们的h base去存储这个ola cube呢?
03:18
为什么呢?为什么要选用h base,那他为什么选用HP,我是不是就得想一想h base它的特点是什么呀?H base特点是什么?H base它的特点就是我能够在怎么做,能够快速的怎么做呀,而且是随机的去干什么,去读写海量数据吧。对不对,那HB的特点就是实时的注意啊,是实时的随机的读写海量数据,那这个海量它海到什么程度呢?在HS官网上有明确的介绍,它能够支持什么呀,能够支持数百万行,呃,数百万列,然后数十亿行这样的大表。
04:01
第二大表,我们在h h base能能支持这么大的表啊,而且能够做到实时的随机读写,这是非常非常这个强大的啊,非常强大的,所以说咱们这边麒麟就最终采用了这个HV作为它的这个存储来源,为什么你想想啊,首先咱们刚才分析过了,我这个计算的时候啊,我因为要涉及到了,呃,是不是要计算很多这个维度组合呀,对不对,所以说首先我最终这个Q吧,要占用的空间会比较大。空间会比较大啊,那空间大,你咱们HS能够进行它是不是一个no circle啊,No circle它的特点就是能够干什么,能够进行这个无线的这个横向扩展,是非常容易进行横向扩展的,那所以说咱们这个数据量大,对h base来说不叫个事,而且数据量少,数据量小啊,我还不用h base呢,对不对,是不是只有数据量很大的时候,我才会用到h base,这个你得知道啊,你得知道这是第一点,那其次呢,那咱们麒麟,麒麟还还有一个什么特点,是不是我后续我得保证我查的时候快才行啊。
05:00
对不对,因为我是一个什么,我是一个及其查询框架嘛,Op及其查询框架,那你得快才行,那HP是不是能够进行随机的实时读写呀,那所以我读的肯定是比较快的,那所以说最终HP的成为了这个阿尔法奇这个存储olapq的这个选择啊,啊,这是他选它的原因,好了,那完事之后呢,我们再来看看这个下边这点这个东西啊,来看一下。啊,这个出来晚了,应该先出来这什么,这是对接的我们have当中的这个星型模型吧,Star game星型模型啊后边呢,这个最终的这个数据呢,我们存储到了这个HP当中,好,这就是咱们的计算层,就是这么多对接have和卡夫卡,然后数据计算完之后放到HP里,好那完事之后呢,我们再来看一看咱们这个上边的查询层,查询层呢,它给我们提供了这样的,呃,两层,有这样的两层,一层呢是这个query engine。Query engine什么意思,就是查询引擎呗,对吧,那上面呢,还有一个这个rest server,一个rest服务层,服务层,那这两层分别是用来干什么的呢?我们先来说一下这个query engine,就是这个呃,查询引擎,它的作用很明显,作用就是将我们客户端,也就是我们发过来的SQL请求给你转化成什么呀,是不是得转化成这个h base的这个查询语言啊。
06:21
对不对,因为咱们结果存哪了,存到诶h base里了,对不对,那你这个我们使用麒麟的时候,我麒麟给我们提供了circleql接口了,对不对,我们写circleql,写circleq,但是你这个能直接跑到h base里去查吗?不能,H base是没有这个circle的,对不对,那所以说它是它不是它不是关性数据库吗?对不,它是in no circle,那所以说麒麟这边能够将我们circle呢,转换成自己的这个h base产品语言,然后呢,从h base里边是不是能够直接返回我们想要的结果,那结果返回给客户端,那我们这边呢,就能够拿到我们想要的数据了。哎,其实这样的一个过程,是这样的一个过程啊好,那这个这个query engine我们就说完了,那说完之后呢,嗯,那上边是一层什么是一个这个rest服务层,诶一个服务层,那它的作用是什么呢?它的作用啊就是诶给我们客户端提供接口,给我们也是给我们提供接口,那因为什么?因为我们是不能直接去访问他这个,呃查询引擎的,我们只能通过谁只能通过rest server,它的作用就是提供接口,然后接收咱们客户端的请求,那请求拿回来之后,他再把请求转给这个query engine,然后呢,诶我们这边数据再返回。
07:30
是这样的一个逻辑啊,那这个server它都给我们提供了哪些接口呢?我们来看一看。上边有这样的。两个,一个是rest API,这个所谓的rest API呢,也就是说这个server呢,它给我们暴露了一个这样的一个接口,比如说这个麒麟下边的,呃,那个比如说呃,API下边有一个什么query,那OK,你访问这个接口的时候,那你就可以去进行查询。诶是这样的,当然还有各种各样的这个接口,各种各样的接口啊,那这个rest API呢,我们后续呃会去使用一下的,我会告诉大家怎么去使用这个rest API的啊,那如果说他给我们提供了rest API之后,我们能用它干什么呢?我们其实如果说有了这个rest API之后呢,我们可以怎么样,我们可以诶对它对这个麒麟进行二次开发,二次开发,那比如说我想自己开发一个麒麟的工作界面,一个外部页面,你自己是能开发的,为什么?因为它有rest的BI。
08:26
对不对,那你在你的前端,诶你你比如说有什么输入框啊等等等等,诶发送请求给后端,那我后端请求的是谁?后端我就请求咱们麒麟的这个rest so,那得到结果再去前端展示,诶是这样的啊,就是你可以进行二次开发,二次开发这是这一点,那除了rest API这种接口呢,还有什么接口呢?还有这个借力BC或者是ODBC的接口,那接力BC大家都都比较熟悉,是不是干什么呀?我们Java去连接数据库的这样的一个接口,对不对,那还有ODBCODBC是什么呢?区别就是这个是Java语言,那这边呢,我们是C语言,C语言,那也就是说咱们提供了接DBC或ODBC的接口,那有了这个我们就有什么好处了呢?呃,我们就可以非常方便的去和咱们这个BI工具去进行对接了。
09:11
BI工具大家现在应该都知道是啥了吧,就是咱们那种,诶像咱们今天上午是不是学了一个super set呀,对不对,那就是一个非常典型的BI工具,它的特点是什么?能够对接各种数据源,然后诶能够帮咱们把数据呢,以图形化的方式展示出来,这个BI分析工具对不对,那这个麒麟他有了这些接口之后呢,就能够非常方便的去和这些BI工具对接的,其实咱们superet呢,是能够跟麒麟进行对接的,是可以对接的啊好,那这个就是呃,麒麟给我们提供的这个查询接口。有这种API,还有这个GDPC好,但是你甭管使用哪种方式去访问这个,呃,麒麟甭管用哪种方式,你给他传的都应该有什么,都应该是circle。对不对,把所有给他,然后他给你返回结果,这就是咱们麒麟的这个主要的两层啊,一层是计算,一层是查询,那中间还有一层这个路由层,路由层是什么呢?我们简单的给大家分析一下啊。
10:06
是这样的,我们来分析一下,分析下什么事呢?大家琢磨琢磨,呃,咱们这个这个麒麟呢,我们麒麟它是一个什么引擎,刚才在官网上,包括这个文档上有定义是一个什么引擎,是一个多维分析o lap分析引擎。对不对,那o lap实际上指的什么是多维分析对不对,那多维分析其实呃,落实到我们的这个circle上面啊,落实到circleq上面,其实就是什么,其实说白了就是诶各种格入外,然后加聚合函数,是不是应该就是这类的查询,我们叫做多维分析啊,对不对,那也就说咱们麒麟呢,实际上对这个S的这个呃支持呢,就是说诶就支持这样的多维分析。支持这样的多维分析啊,只能是进行这样的多维分析,多维分析,那OK,那所以说是不是有一些可能有一些复杂的circle,或者一些复杂的这个函数,我们在麒麟当中是不支持的,对不对啊,那既然是这样的话,你想一想我们这个circlel,如果说我甭管什么样的circle我都扔给麒麟的,那这样一来会会有什么样的现象呢?我可能去HP里查呀,你并没有把我这个预计这个结果给给我预计算出来,你并没有预计算出来。
11:12
对不对,因为它能计算的值是什么,只是各种维度的组合对不对,再加上各种具有函数对不对,它只能把这样的给你计算出来,那像以其他的一些这个复杂的指标,我可能什么呀,我麒麟我是没有办法去进行穷举的,没有办法穷举,那所以说就会出现什么样的问题呢?诶我在麒麟里查的时候呢,可能有些指标我并没有进行预计算,那你去HP里查,你就查不出来,你就没有东西。对不对,没有东西,我们麒麟这边他他想了一个这样的办法啊,诶我加一个路由层,你h base当中没有OK,我把你这个so,我就给你转回你的have当中,你用谁呀,你去你用你用have去计算。对不对,那have是不是肯定什么样的需求我都能查出来呀,因为我有原始数据嘛,都能查出来,对吧,那确实这样能够解决这个问题,但这个这个层,这个路由层呢,但其实想的还是比较好的,但其实不好用,它为什么不好用呢?你想一想啊,咱们去设计一个系统的时候,比如说我要用到麒麟,我我设计一个系统要去用麒麟,那你想一想,那你是不是就得诶就得就得按照什么呀,就得诶我我就得认为我们的麒麟呢,是不是二秒级响应啊,那我设计系统的时候,我是不是都是按照秒级响应的这种这种这种规格去设计的这个咱们的系统啊。
12:22
对不对,那如果说咱们这个有这个路由层,那它是不是有些需求,他可能会给我转到那个have里边去查,那当然会导致什么呢?会导致啊,咱们后边这个系统,我这个查询时间不可预知。就不可预知,就是我可能我是按照什么呀,我是按照这个亚秒级想象去设计的,结果有些查询呢,你给我整了一个什么,整了一个一小时才回来,那所以导致这个系统呢,可能会诶出现这个问题啊,所以其实这个路由层呢,并不好用,那也就是现在呢,这个路由层就是默认其实是关闭的,默认是关闭的啊对默认已经是关闭的了,所以就现在啊,这个东西咱们就诶了解一下就行,有这么个东西就行,诶那咱们就不说它了啊,就不说它了,好了,那咱们这个就说完了啊好,那说完之后下边啊呃,还有一些这个文字介绍,就是对上面咱们这个每个组件的文字介绍,这个咱们就不再重复了,全是刚才我讲的东西啊。
13:12
好了,那这边就过了,过了之后我们再还有一点再讲一点吧,咱们把这个麒麟的特点呢,呃,也给大家说一下,也说一下啊,那麒麟的特点我们来看看啊。有这样的几个特点,一共这样的五个特点,呃,标准色后接口,支持超大数据集压秒级响应,可伸缩性,高存储率,BI功集成,这是它的特点,这其实也是官网上的东西啊,也是官网上的,那我们来看看第一点啊,标准的SQ接口,那有的东西可能会比较诧异啊,你不就有一个SQ接口吗?这有什么值得提的,这还作为一个特点对不对,这还还值得作一个特点,那就是为什么?其实它确实值得作为一个特点,为什么啊,你得想一下咱们的麒麟它是一个什么olap分析引擎啊。它是一个Mo LA,它不是Mo lap对不对,那你要是mop,那你有S那是很正常的,但是你对于一个mop来说,我是基于作为数据集的,对不对,那实际上我正常是没有这个SQL接口的。
14:10
但是我们麒麟呢,恰恰就在mop的基础之上,给我们提供了四个接口,所以说这个东西呢,它就值得一提了,是这么回事啊,好了,那接下来往下看,原来是支持这个超大数据集,那这个东西跟这俩跟这个样本响应的,我们应该组合起来去看对不对,就是我数据量可以很大很大,然后呢,下边我这个查的时候呢,我的速度还是很快的,亚马逊响应。是这样的啊,这就是呃,咱们这个麒麟的这个最重要的特点,性能非常非常好啊。就是在现有的这个市面上啊,就是呃,就是说现有的市面上啊,就是能够做到这个超大数据集亚秒级响应的,诶几乎是只有这个麒麟啊,几乎是只有麒麟是这样的,还是非常强大的啊好,那下边我们往下看,下边有什么,有这个可伸缩性和高吞吐率那个,这个就是指的是咱们麒麟啊,你看啊,单节点可实现每秒70个查询。
15:07
单节点的麒麟啊,能够实现每秒70个查询啊,这是非常非常强的,非常非常强的啊,那你可以琢磨琢磨,咱们你想啊,如果说我一个一个circle,我我让谁我我我用have去查询。我用还选查询,那你想一想,单节点一秒钟能做几个查询,你是不是一个都做不了,对不对,那起点单秒就是单节点能实现一秒70个查询,这是非常非常厉害的啊好,而且呢,它还能够搭建集群。而且还能搭建集群啊,搭建集群这个,那搭完集群之后,我这个伸缩性,我吞吐率就会更高,这是非常棒的啊好,那下边是这个BI工具集成,BI工具集成是因为我们麒麟它是不是提供了接DBC和ODBC接口啊,所以说我能够跟市面上的诶各种各样的这个呃,BI工具进行集成,那都有什么呢?诶比如说如果通过ODBC接口,我可以和他们table AO Excel pro BI的工具进行集成,哎,这些这些其实都是一些咱们这种BI工具Excel的这个Excel,就是我们这个呃,大家熟悉的那个Excel,其实Excel其实是一个非常非常非常强大的报表工具,就是我里边其实能够出各种各样的图也是能出的啊,只不过他的支持的数据量就可能要少一些,要少一些啊。
16:18
好,那现在往下看,那借力BC,我可以跟哪些东西集成呢?可以和这个S库,呃,BI rt,那这些其实是一些Java的这种BI工具,加入BI工具啊,甚至还有谁还有我们的super set,诶我们也是能对接的。好那往下看,下边有一个这个,呃,Rest tpi,那rest CPI我们有了之后呢,我们就能够让它和我们自己的外部应用进行集成,也就是我们可以自己进行二次开发,其实大公司呢,诶很多公司都有这种二次开发啊,很多都都有二次开发,那如果二次开发这些东西呢,就是呃,咱们这个Java的同事去做了,Java同事去做了,好那下边呃,这还有一句话,这是咱们麒麟呢,呃,他的开发团队也贡献了一个zip。那其实这个Z是一个什么东西呢?也是一个BI工具,能够对接各种数据源,然后呢,能够出各种各样的图,它用它主要给谁用的呢?它主要是给我们的这个,呃,分析师去使用的,就是咱们数据分析师去使用,然后进行这个机析查询的,我在里边呢,能够诶写各种查询语句,然后立马出结果,然后甚至直接出图都是可以的,那能够非常方便的去分析咱们的数据啊,能够非常方便的分析数据,主要是给分析分析师去使用的,那一会我们也装上给大家简单的演示一下。
17:30
好,那这就是咱们麒麟的这个基本的一个介绍啊,有它的框架,还有它的这个特点,咱们就说完了,好,那下节课我们就开始去使用这个麒麟了啊。
我来说两句