00:00
好,各位同学,那接下来呢,我们开始学习集齐查询的另一个框架叫做pres对吧?啊,那简单先来看一下这个pre的一个概述啊,来这儿有一个PPT我们就不打开了啊,一起一起读一下这句话就行了,来我们看一下这怎么说他说pre呢,是一个开源的分布式circle查询引擎,这个数据量呢,支持GB到PB诶级别啊,那完之后呢,主要用来处理秒级查询的场景啊,那这里边有几个关键点,咱们点一下啊,首先第一个它是不是也是一个circle口查询引擎啊,对吧,也就我们去使用它的时候,是不是还是使用还是写circle口,对吧?然后往下走,它支持的数据量是什么范围啊,是GB到PB这个字节的范围啊,这个一定要搞清楚啊,那如果超出它的能力范围之后,那那怎么办呀。那怎么办?那时候我们可以考虑使用其他的引擎啊,对吧?啊,这个一定要理解一下啊,OK,那它主要用来处理秒级查询的场景,也是它的响应呢,是不是在秒级啊啊OK啊,那它的原理跟我们前面讲的这个麒麟的原理就不一样了啊presal它是怎么加快这个计算的呢?是充分利用内存啊,是这样的,它没有用到预计算,这个大家一定要搞清楚啊,OK啊啊,那这块咱们看完之后呢,我们继续往下思考啊,那往下看这有一个注意事项啊。
01:21
注意事项咱们也看一下吧,这块怎么说,他说虽然press可以解析circle,但是它不是一个标准的数据库啊,就是它不是数据库啊,它不是my circlele或者是Oracle的替代品,替代品也不能用来处理在线事务OLTP啊,那这一段话呢,前边两句还是比较好理解的,对吧?他说它只是可以解析circle的,但是它不是数据库啊,它解析circle课主要是为了干啥呀?它解析circle是不是为了生成生成计算计划呀,对吧?啊,生成计算计划,然后进行相应的计算,进行相应的统计啊,是啊,他不是my circlele,不是Oracle的替代品,这个要搞清楚啊,也就是他是负责计算的,负责查询的,不负责存储啊,这个要理解一下啊,OK,好,那不,后边这句话怎么理解呢?说不能处理在线事务,什么叫做在线事务啊?
02:11
啊,后边有一个OLTP对吧?其际上我们前面讲过一个跟它差不多的概念,我们前面讲过一个什么概念o lap对吧?这个OLTP跟orp这两个概念有啥区别,有啥联系呢?这个我需要给大家简单说一下啊呃,咱们也是扩展一下吧,这个or TP和orp这俩概念,呃,直译过来分别是什么啊,RTP直译过来就是连接事物处理对不对?那P呢,翻译过来是啥?是不是连接?呃,这个分析处理啊,对吧?啊,实际上还是有一定的区别的,那这俩概念实际上谁先出来谁后出来的呀。呃,当然对于我们来说,我们可能是先看到的op对吧,但实际上呢,是olatp这个概念是先出来的,后来才有了olap这个概念啊,是这样的啊OK,那现在呢,我们从以下几个方面呢,去给大家简单的去对比一下这两个概念,Ortp和RP啊首先先明确一点啊,RP我们可以怎么去定位它,这这俩分别是一个什么概念呢?诶,你可以把这两个呢,当做一种处理数据的方式啊,当做一处理的方式啊OR2种数据处理方式,那这两种数据理方式它有啥区别呢?我们从以下几个方面说一下,首先第一个啊,我们从呃读数据的这个方面去考虑一下吧,读数据,因为处理数据无非就是读写对吧,就这些东西对不对?OK,我们先从读上面去看啊,那o lap,我们读数据的时候都是怎么读啊?
03:39
我会一条一条的随机去读吗?会吗?而orp是不是咱们那个联机分析处理,我们仓里边是不是就有这种联机分析处理的这个场景啊,对吧,那你分析的时候你是怎么分析的,是不是一次读取大批量的数据。对不对,我不会说随机的去读一条两条进行分析,我一读是不是可能就读一一整天的数据,或者说呢,读这个,呃,一一周的数据,或者是一个月的数据,对不对进行统一的分析,所以说从读数据这个角度来看呢,Op那我都是批量的去读啊,OK,那对于op来说,那他读数据的时候怎么。
04:15
哎,他不会这个大批量去读的,哎,他要读的话呢,只是诶小范围的这个随机的去读啊举个例子啊,那or TP这种呃,数据处理我们一般用在什么样的这个应用里边呢?啊,一般我们这个比如说电商这个业务系统啊,它数处理数据的方式呢,我们就可以称之为是OLTP处理啊是这样的啊,那or TP处理系统它的数据一般都放在放在哪呢?都放在哪数据。对,关系型数据库里边啊,是这样的啊,那你想想我们一个电商系统,咱们读数据的场景有有哪些什么时候需要读数据,你比如说举例子啊,那我们用户比如说在这个首页上,我是不是可以搜索商品啊,对吧?诶比如说输入一个商品的信息,我搜索,搜索完之后是不是理论上他应该给你展示出来相应的商品才行,对吧?那这些商品从哪来?
05:04
是不是肯定是从数据库里边读出来的呀,对吧,那这时候是不是就是读的场景对吧?那你说这种情况下,他读数据会读取很多的数据吗?是不会的,是这样的啊,就是每次读呢,都是小批量的随机的读取啊OK啊,这是读,那对那那我们再来看另一方面,另一方面是啥是写对吧?啊,那从写这个角度去考虑,我们看看or TP和orp有啥区别,那orp它的写是怎么写的呀?你就以我们出仓为例,你说我们写数据是怎么往里写的?是不是进行批量的装载对不对,比如说我我统一把一天的数据,我是不是写到一个表的一个分区里边啊,对吧,还是批量的去进行装载,OK啊,那对于这种OLTP处理来说,我写是怎么写,也是随机的写入少量的数据啊,随机写入少量数据啊,那问一下大家什么时候还是以电商系统为例啊,你说电商系统咱们什么时候需要往里边写数据?比如说下单对吧,比如说用户注册,比如说用户修改自己的信息,这是不是都要往数据库里边写数据啊,对吧?诶是这个道理吧,诶那这样一来的话呢,诶咱们应该就能想到了,我下单我不会说一下写大量的数据,我我去注册也不会写大量的数据,是不是每次都是批呃这个呃,随机的写入少量数据啊对吧,这是它的写的一个特点啊OK啊,那我们再继续往下进行啊,我们再来对比一下什么呢?啊,再来对比一下啊,就是这个数据的表象。
06:24
啊,数据的表象,那什么叫数据的表象呢?那对于olap这种系统来说,那我的这个数据啊,它会保留什么呀?会保留历史状态啊,数据是会保留历史状态的,那对于这种OLTP系统来说,那我的数据它是不是只会保留最新状态啊,对吧?啊,也就这个数据状态只要一变,那是不是原来那个状态就会被覆盖掉,对吧?它只会保留最新状态,而我们的o lap分析系统呢,是不是会保留历史数据,就这个意思啊,那然后呢,我们再来,再继续往下深入,我们再来看另一个点啊,那另一点是什么呢?比如说从这个,呃,这两个系统它面向的对象来说啊,那一般情况下,这种o lap系统,你说他面向的对象是谁?
07:08
或者面向的用户是谁啊。是我们公司内部的分析人员,对不对,你说这个orp系统它会对我们外部的用户开放啊,是不会的啊,是这样的,但是orb系统来说,一般它面向的就是谁,是不是我们普通的用户啊,对吧?比如说一个电商系统,它面向的是不是就是我们每一个这个普通的用户啊,但但是这个数仓啊,比如说我面向的是不是只有公司内部的分析人员,哎,面向的对象是不一样的啊,这个要搞清楚,那我们再继续往下进行啊,那最后一个点我们再来从这个数据量来去,呃,对比一下,那一般情况下呢,这个OLTP系统啊,它的数据量都在什么级别呀。啊,基本就是GB啊,到PB这个级别,GB级别吧,基本上就是这样的,OK,那orp系统呢,一般都在什么级别,是不是PB或者是更多呀,对吧,是这样的,诶这个呢,就是op和OTP啊这两种,呃,数据处理方式的一个对比啊在这儿呢,我们简单了解一下就行了啊好行,那完了之后呢,我们继续往下走啊,那这个概念我们就已经哎讲完了啊最终我们总结一下啊,那presso呢,它是一个S查询引擎,数据量呢支持这么多,那延迟呢是秒机。
08:15
啊,那在它支持的这个数据量的范围内啊,他能做到秒级查询,但是一旦这个数据量超出了他的能力范围,那它的查询也会变得非常的慢啊,这个大家要理解一下啊,好,我们往下走,下边呢是这个price的一个加厚图,那这个呢,我们简单的看一看就可以了,来,我把这个图点开一起看一下啊。啊,那这个图呢,还是比较清晰的啊,我们先来看一下左半部分啊,那左半部分呢,描述的就是presal集群当中的所有的角色,呃,那除了这个啊,除了这个ma store,它不属于price啊,那这个它干什么用的,一会儿再跟大家说啊,那现在呢,我们先来看一下priceto自己的角色,那首先我们先看它的这个,呃,客户端啊,这儿是不是有一个PAL cri啊,对吧?客户端就是给这个集群发请求的对吧?来接下来往下走,后边这两个角色都是他的服务端的角色啊,服务端的角色有啥?一个叫做presal coordinator对吧?那还有一个呢,叫做presal worker,哎,这个coordinator跟worker都是啥意思?
09:15
这个直译过来啊,直译过来coordinator的意思叫组织者,协调者对不对啊,Work呢,就是呃,工人干活的对吧?是这样的啊OK,那他们之间到底是如何进行工作的呢?来给大家简单说一下啊,首先我们用户呢,诶需要通过preo的这个客户端去跟pre集群进行交互,对吧?那其实咱们所谓的交互就是干啥呀。是不是就写circle对吧,你在客户端写个circle,然后是把circle发给我们的这个press集群啊,对吧?那发给谁呢?诶发给press的coordinator coordinator呢,他接收到我们客户端发来的circle之后呢,会将circle进行解析,解析成什么,解析成他自己的计算计划,大家要注意啊,这个press集群呢,哎,它不依赖于它不依赖于我们这个,呃,雅安啊,它不依赖雅安啊,啥意思呢?也就是press的计算任务,它是提到雅安上面吗?
10:09
是吗?不是的,哎,他不会把任务提交到盐上面啊,他有自己的这个,呃,资源管理有自己的这个调度啊,是这样的啊,这个大家要理解一下,他就生成自己的计计算计划,然后呢,把这个计算计划啊里边的计算任务呢,给它分到哪呢?分到不同的pressal worker去执行,那当然呢,这里边可以怎么做,是不是可以并行执行啊对吧?那每个press worker呢?诶会分到自己的任务,计算完之后呢,再把结果呢进行相应的汇总,最终返回给我们的客户端啊实际上是这样的一个过程啊,在这儿呢,大家理解一下就行了,OK啊啊,那现在呢,Price的基本架构咱们就差不多讲完了,那讲完之后呢,我们这个图里边还还剩下其他的一些内容啊,对吧?那比如说这个Mac道它是干啥的呀,后边这个虚线框里画的又是什么呀?哎,我们主管来看一下,先看后边,先看后边这个虚线框。大家注意观察啊,这个虚线框是不是看起来都差不多呀,这一共有三个对吧?是不是看起来差不多,这个结构是差不多的对吧?那我们来看一下这啥意思啊,那首先每个虚线框上面是不是都有一个标题叫做catalog呀,对吧?这个catalog呢,在pre里边指的就是啥啊,指的就是数据源,指的就数据源啊,那在这儿呢,我们应该能看出来,Presal它是不是支持多数据源,对吧?你比如说这个对接的啥呀?Have这个呢对接的是卡普卡,那这个呢,对接的是redd,那presal有一个非常重要的一个特点啊,就是它支持很多的数据源啊,对数据源的支持是非常丰富的,OK啊,然后呢,我们再来重点观察一下啊,就是不管我对接的是什么数据源,我这儿是不是都需要一个对应的connector啊,对吧,Connector啥意思,其实就是一个连接器,对吧,那一会儿大家就能看到是所谓的connector最终就是一个配置文件,最终就是一个配置文件。
11:51
啊,那当然呢,不同的这个数据源,我的这个配置文件肯定是不一样的,比如我举个例子啊,那我现在假如说我想对接have。那你说我应该在他这个所谓的connector里边配配哪些信息?
12:03
啊,我想对对接have,是不是读取have这个数据库里边的数据啊,对吧,你说我需要配哪些信息。其实这很简单,你想想啊,我是不是只需要拿到have的原数据,只需要拿到have的原数据,咱是不是就知道我应该去从哪儿读取have的数据啊,是这个道理吧,为啥还原数据里边是不是存储了我的数据库当中有哪些表,也存储了每个表它的数据在HDFS的路径,是这个道理吧,只要拿到原数据,我就知道have里边有什么数据,以及我从哪去读取数据了,是这样的啊,那所以说,诶,那对于这个have这个连接起来说,我们要配的应该就是啥呀?啊,就是你你只要能拿到还原数据就行,对吧,那我们拿到原数据的方式是不是有两种啊,获取have的原数据有两种方式,一种方式是啥呀?是不是直连买circle,那还有一种方式呢。是不是通过have的一个MAS store服务是不是也能拿到have的数据信息,对吧?那这边他是怎么拿的呢?哎,他是通过have的数据服务去拿的啊,那大家来看一下这个位置啊,看这这儿是不是就有一个have的me store对吧?啊,那也就是说我们需如果说我们需要去呃对接have数据源,那我们就需要怎么办,就需要启动have的啊,那我们在这个所谓的have的connect当中配置的应该就是什么东西,是不是应该是这个原数据服务的地址。
13:24
是这个道理吧,啊,你把原数据服务起起来,那在这个presal的这个have的connector里边指明have原数据服务的地址,那这个pre是不是就能拿到原数据了,拿到原数据之后,它是不是能够去计算这个have表里的数据了呀?就这个意思啊,OK啊,那我们再举个例子,你比如说下边卡夫卡,那卡夫卡我要想对接卡卡,你说我应该配哪些信息?你想啊,你要想读取卡夫卡的数据,那你应该是一个什么样的一个角色呀,是不是卡卡的消费者对不对,那卡夫卡的消费者必须配置参数有哪些,首先你的这个卡罗卡集群的地址是不是得告诉他,那其次呢,你要消费那个topic,这是谁?没没错吧,其实就这些信息啊,那当然你配你对接不同的数据源,需要配置不同的这个信息,这个理解就行啊,好了,那完了之后我们继续往下走啊,我们往往哪往哪走呢,往往这看来看这个位置。
14:14
大家注意观察啊,不管我对接的是什么数据啊,那这个数据只要到了pre当中,嗯,都是什么样的结构,是不是都是那个什么Che加上table的结构啊,对吧,这个SC啥意思。Schema其实前面给大家提到过啊,就是在有些关型数据库,或者有些数据库里边呢,它是没有database的概念的,对吧?取而代之的是谁?就是这个chema,也就是skyma,是不是就相当于我们have里边的这些base,对吧?那table呢,就是相当于呃,Table呗,是这样的啊,也就是说不管数据从哪来,到了price里边都是库加上表的这样的一个结构啊这样的,那有了库,有了表,我们就能怎么做呢?是不是就能写circle去查询这个pre里边的数据了呀,对吧?就这个意思啊,OK,好,那这就是prestal它的一个诶基本架构啊,在这儿呢,我们大致了解一下就行啊啊,那完了之后呢,里边还有一些文字介绍啊,这个咱们就不再一个一去看了啊,我刚才说的跟它是一样的啊好,接下来往下走,下面呢,还有一个PPT,讲的是什么press的优缺点,这个呢我们也来一起看一下。
15:14
来点开。啊,那这儿有一个图啊,这个图是谁跟谁的一个对比图呢?是MAP6跟这个什么price的一个对比图,对吧?其实所有的这些呃,计算引擎呢,都爱跟谁去比啊,都爱跟ma去比,而我我比你快十倍,我比你快这个20倍等等等,都愿意跟他比呢,也是跟他比啊,OK啊,那我们来分析一下啊,就是pre它为什么要比map produceduce快啊,这个呢,咱们简单了解一下就行啊,首先我们先来分析一下,就是map produceduce它为什么慢,它为什么慢,对他之所以慢呢,是因为啥呀?到落盘,对是因为呃同学就提到落盘了,对吧?啊,当然这只是一部分原因啊,那其实最主要原因就是什么呀,就是磁盘AO加网络AO对不对啊,那大家想想啊,如果我这儿呢,有一个比较复杂的一个计算逻辑,一个比较复杂的计算逻辑,如果我要用microdu去实现,那你你你是不是一个MAP6可能是呃完成不了的呀,对吧,因为你的逻辑比较复杂,对不对,你可能会需要怎么办?是不是需要多个MAP6,没错吧,而且多个MAP6它是一个什么关系,是一个串联的关系吧,对不对啊,那由于map呢,它的这个呃机制的问题,我map结束需要落盘,Reduce结束又要落盘,对不对啊,而且你要注意啊,你比如说我map结束了,Map结束之后,那我这个数据虽然呃确实会落盘,那落有有时候不光落盘啊,你还得干啥,是不是还有可能会经过网络的传输,对不对,为啥呀,因为有可能我这个map跟reduce它不在同一个节点,不在同一个节点,是不是就还得经过网络的传输啊,对吧?所以这里边呢,会有磁盘L会有网络啊,那这个呢,是相对来是。
16:50
比较呃,比较慢的,这个大家一定要注意一下,OK啊,那为什么它会它会比较快呢?来我们看一下啊,这里边呢,有两个点,咱们来看一下。
17:00
先看下面这个啊,那下面这个是啥?是memory to memory从哪到哪啊,哎,内存到内存啊,那举个例子啊,比如说我这map端结束了,对不对,Map端结束按照MAP6来说,我得干啥,是不是得盘对吧?但是你看落盘了吗?没有,它是不是直接把数据写到了下一个task里边去了呀,对吧?啊,这是内存到内存的一个数据传输是没有这个,呃,IO的是没有存O的啊然后再有一个,这什么意思,All stage pipeland什么意思啊,就是所有的这个阶段,什么阶段就是计算阶段对吧?它都是什么样的呀?是不是都是有一个从前到后的一个管道的呀,对吧,啥意思?那是不是就有点类似于我们那个Spark啊,Spark是不是他在这个呃,提交任务之后会先生成一个执行计划呀,对吧?那这个计划生成好之后呢,那是不是数据拿到,呃,从数据源拿到,拿到之后呢,是不是就直接经过这个,呃,按照我们之前的这个执行计划,从头直接就计算到尾啊对吧,是这样的啊,那在这呢,也。
18:01
是这样一个道理啊,那我先生成执行计划啊,先成执行计划,那生成执行计划之后呢,那OK,我把这个数据读到,读到之后呢,直接经过这个计算管道就得到了最终的结果啊,是这样的,它不会有这个什么多个阶段之间的等待时间啊,当然了,那这个呢,也是它快的另外一个原因啊,这就是presal它快的原因啊,咱们这个简单了解一下就行啊,OK,好,那我们再往后往后看啊,那这边重点要看一下,就是它的优缺点,对吧?那我们先来看一下优点,优点是啥呢?什么基于内存运算减少48O计算公快,这个都不用说,对吧?接着往下走,它另一个优点啊,是比较重要的什么什么优点来看一下。它是能够对接多个数据源的,而且是能够跨数据源连表查询的,啥意思啊,就是说比如说我have当中有一张表,我买S里边也有一张表,我可以在press当中呢,把have的这张表跟买circle的这张表呢,进行一个什么操作?关联join操作啊,它是可以去做做这个功能啊,其实这个功能呢,说呃,对于pre来说确实是它的一个优点啊,但也不是说只有pre能实现这个功能啊,你比如说我们之前学的Spark,你说Spark它能不能实现类似的功能,能不能。
19:11
可不可以也可以啊,对吧?那咱们学过Spark当中应该有一个模块叫Spark circle吧,对不对,那Spark circle我是不是也可以对接各种各样的数据源,对不对?比如说我随SPA搜索,诶我先对接呃一个数据源,比如说对接have,那比如说我再再对接一个,哪对对接外形数据库,那完之后呢,这个是不是可以生成两个这个临时表啊对吧?那玩说它俩是不是也能做关联也是可以的啊,就是SPA也能实现类似的功能,OK啊好,那接下来我们再往下走看一下它的缺点,缺点是什么呢?我们来一起看一下啊。我们先看一下这段话读一下啊,他说P能够处理PB级别的海量数据,但是P并不是一次性的把PB级别的数据呢,都给它加载到内存当中去计算的啊,这个想想肯定也是这样的啊,你不能说我一下把全部的数据都加载到内当中去计算,那这个集群这个资源再充足也扛不住啊,对吧?是这样的,那他是怎么做的呢?诶,而是根据场景什么场景看一下啊,如果是一些普通的count,或者是AV AV count是普通一些聚合运算呀,对吧?对于这种普通的聚合运算,那是怎么做的呢?是边读数据边计算,再清内存,读数据再计算,这种情况下消耗的内存并不高,这个怎么理解啊?给大家简单解释一下,假如说我现在这儿呢,有一张大表,对吧,我现在就要对这张大表的数据进行聚合运算,你说它是怎么做的,它会把这个大表一次性加载到内存里边吗?不会,它是这样去做的啊,它先加载一部分,这部分加载到之后加载到哪,加载到内存当中对吧?
20:42
之后怎么做,是不是对这一部分数据进行聚合对不对,大家要注意是聚合对不对,聚合意味着什么。因为如果聚合之后的结果是不是就会变得很少,数据量就很小对吧?那OK,那他会把这个结果保存下来,那原始数据呢,是不是就没有利用价值来对吧?这时候呢,就给它清理掉,那清理掉之后是不是内存又有空间了,有空间之后呢,我再去诶加载新的一部分数据加载到内存当中,那当然呢,这部分数据是不是也要进行相应的聚合,那当然聚合之后需要跟前面的结果进行一个什么操作,对合并一下对吧?OK,那这部分数据是不是也没用了,没用之后就给它清理掉就行了,诶它正常情况下是这样去做的啊,那所有的数据确实都是在内存当中进行计算的,对吧?但是呢,它实际上用不了太多的内存。
21:26
是这样的,不会说诶数据多少我就用多少内存,不是这样的,这个理解一下OK啊,那这种情况下呢,是比较理想的,这是比较理想的情况,比较理想情况啊,但是什么时候会出现问题呢?但是连表查就会产生大量的临时数据啊,因此因此呢,这个数据这个速度呢会变慢,这个怎么理解呢?来我们看一下啊,假如说我现在啊,需要怎么做,需要关联两张表。啊,那你想想,你说两张表关联,我们肯定不是说这个最终目的就是把它俩关联上就完事了,对吧?那我们这儿肯定还考虑啥,就是你你关联之后是不是还得有聚合操作呀,对吧,咱们说的是这个事儿啊,那关联之后呃得有聚合操作,那那我们在聚合之前这个关联操作它是怎么做的呢?那是不是得先有一个关联之后的一个临时表,是这个道理吧,它是不是得把呃需要关联到一行的数据,是不是给它得关联到一起才可以啊对吧?是这样的啊,那所以说诶,那我进行关联的时候呢,它会产生一个这个所谓的临时表啊,这个临时表呢,其实就是啥呀,其实就是那个所谓的呃临时数据嘛,就这个意思啊,大家想一想啊,那我这个关联的时候,那是不是也也会经历什么操作,就是类似于我们那个map produceduce当中什么操作呀。
22:39
是不是杀操作呀,对吧?啊,尤其是大表跟大表进行关联的时候,是不是可能会经历类似于这种杀的操作,对吧?因为你只要是这种并行的计算啊,只要是并行的计算啊,那是不是都涉及到one之后,都有可能会遇到这个类似沙的操作呀,是这样的啊,那这个沙无论是对于哪个计算引擎来说,对于MR来说,对于SPA来说,还是对于来说都是一个什么的,都是一个很重的很耗资源的一个操作,是这样的啊,所以说如果有连表查询的这种场景,那它的这个呃计算速度呢,就会相应的减慢。
23:12
啊,是这样的啊,那当然这个跟谁相比相对简单啊,跟这种哎不需要照对吧,只需要聚合的这种运算相比,你照操作肯定会变慢,那当然这个其实说实话也算不得它的一个缺点,这是一个通命,相当于是对吧?啊是这样的,只要涉及到之后啊,我就有沙发,有沙发就会慢啊这个很好理解,是这样的,OK啊,那然后我们在这儿呢,呃,这个缺点我们是没有办法呃去解决的,它就这样的对吧?那但是呢,我们可以有效的去避免啊,怎么去避免呢?大家想想啊,那既然presal他连表查的时候是比较慢的,对不对,那你说我们可以怎么做呀。咱不得得去迎合他这个特点,那怎么迎合。假如说我们have当中有一些表,它的数据呢,我后期需要使用sal去做查询啊,那你可以怎么做?
24:01
我可以在have当中啊,我提前给它该给呃,提前把它该照的表给它照到一起,我形成一个大宽表对不对,你形成大宽表之后,那我press去查询的时候呢,它是不是就不需要再做照了呀,对不对,那它不需要做join,那我的查询速度是不是就会变得更快一些呀,对吧?是这样的啊,那所以说那使用press的时候,咱可以这样去做,诶,我在have当中,诶,把需要这样的表给它照到一起啊,完了之后呢,形成一个大环表,这个大环表形成之后再用press去查询。也就是说我们需要去迎合它的这个特点啊,好,那这个price优缺点咱就讲完了,简单了解一下就行啊好,接着往下走,下边还有一小节啊,这一小节呢,是将preal与impela做了一个比较,这个impela前面简单提过一句啊,Impela是什么来着,是CDH平台当中的一个析查询引擎,那为什么在这儿要把press跟impella去做一个对比啊,其这个呢,呃,是这么一回事,给大家解释一下啊,Impela这个框架呢,与press这个框架,它俩的这个结构啊,是十分相似的啊,它俩这个框架的架构啊,或者是理念上啊等等是非常非常相似的啊,那所以说通常情况下呢,它俩会做一个呃这个对比啊,完了之后呢,这样一个帖子啊,还是比较详细的,那在这儿我们就不去看了,我们直接看结论啊,这个结论是什么呢?结论就是的性能呢,是稍领先于的,就是LA要比这个要快一些,但是呢,其实差不了太多,其实差不了太多啊,就是基本上可以忽略啊,但是呢,在数据源的支持上。
25:30
非常非常的丰富的啊,它它不支持什么呀,哎,支持比如说have啊,图数据库啊关数据库哎,以及非关数据库等等的都支持啊,也是pre呢,相对来说还是呃,这个支持的数据源还是比较丰富的啊,是这样的啊,但是in了呢,它支持的数据源相对来说就少一点啊in了呢,它主要支持的数据源就是谁啊就是have。啊,是这样的啊,那所以在这儿呢,呃,大家可以根据这样的一个特点去做这个相应的技术选型,你比如说以后我们到公司之后,诶这样呢,需要去从或者是盘里边去选一个,那选的时候呢,诶这俩性能差不太多对吧,差不太多你就根据啥去,是不是就根据它的这个,呃,数据源的这个知识程度去选,对吧?你假如说我们公司里边,诶我的数据源非常广泛,那我既有关键数据库,又有非关键数据库,我还得查have,那这时候咱是不是首先就考虑这个对吧?是这样的啊OK,好,那这个呢,就是与impel的一个简单的对比啊好,那再往下呢,我们要讲的就是这个press的安装了啊来,我把视频停一下。
我来说两句