00:01
OK,呃,来同学们啊,我们来看一看这个,呃,麒麟我这个任务呢,已经构建完成了啊,这cube已经出来了,而且这个地方呢,是ready的状态,Ready状态,那这个算完之后我们怎么去查结果呢?呃,在这个位置啊,Inside inside就是洞察的意思,在这点。然后在这呢,就直接能写circle了。然后大家写S的时候要注意了,注意什么呢?就是你写的circle必须得是什么,必须得是你提前构建出来的才行,对不对,那我们提前构建出来什么东西了,我们构建出来我选定了维度了。对不对,那你查的时候呢,你只能查你选的那几个维度的组合,你不能选你没有构建的维度,这是第一点,那其次度量值也是一样的,我们度量当初咱们定义了两个度量值,有一个它自带的抗星对不对,还有一个什么,还有一个我们给他加上的那个啥玩意儿,我们给他加了一个那个呃,萨姆求和对不对,也就说你查的度量只能有这俩。就说你只能查你提前构建好的东西是这样的啊,然后还有一点就是你写circle的时候呢,因为我们涉及到了这个事实表跟维度表之间的join了,对不对?那我们写的时候,我们当初定义model的时候,就定义模型的时候,我们指明的是什么join方式,那你在这写S的时候就要使用什么join的方式,那之前咱们用的left join,那在这儿呢,也要用left join才可以。
01:25
就是说你得跟自己定义的一样才行啊,得保持一致才可以好,那现在咱们写的时候呢,你点这个位置啊,诶,这是咱们那几张表,这个是我刚我那个新定义的那个model当中,呃,那个model当中,那个Q当中啊,我只选了这两个表,我只选这两张表啊OK,那现在咱们去写一个下S啊来。首先这是fact,这是你看啊,这里边咱们这个表里边就是have当中字段是不是肯定远比这个多呀,对吧?那这边为什么只出现了这这几个字段呢?是因为我们定义cube的时候,我们只选了这几个字段,对不对,那也就写S的时候,你照着这个位置去写就行了,好,那我们现在演简单的演示一下啊,比如说我们想去查看一下,咱这个查看一下什么东西呢?查看一下这个,比如说诶各个地区的,咱们想查一下各地区啊,各地区各地区什么呢?这个呃,订单金额总和它的分布是什么样的,看看诶一这个,比如说东北地区多少,华北地区多少,对不对,咱看一看这个东西。
02:24
那怎么去写这个circle呢?那来select select应该先不说选什么形from吧,来from哪儿呢?From咱们DWD,然后这个pay。Payment这个应该是in吧,来起一个名啊,叫P吧,然后让他进行left left呢,咱们维度L就来一个,然后base下文线pro base provin,然后后边呢,咱起个这个,呃,别名这个叫什么呢?叫做这个。
03:04
呃,地区地区咱们叫location l吧L,然后啊,这个P点应该有一个P点什么呀,P点,呃,P点我看一下啊。这是PP,有一个这个proce ID pro。p.pro这个vic province ID。让它去等于这个location.l.L点什么呀?看一下啊,L点是不是idi啊,那就I did,然后后边呢,别忘了BY一下啊,BYBY谁P应该是BY,这个咱们要查谁,咱们要查那个region对不对,那也就是BY.l点。Rena reon。Region re GI ion,然后前面呢,咱们需要把这个l.region呢,给它放在前面,CTRLC放在这啊。
04:02
CTRLV,然后逗号咱们只能是不是要么查count星,要么查sum订单金额呀,对吧,那我们就订单金额pay应该是a o payment amount,那这个circle呢,我们就是说就是只能这么去写啊,就是你定义了哪些东西,你这边查的时候才能只能查哪些东西,那现在我们来看一下这个circle,它的这个查询速度怎么样啊,因为它是不是声称是亚秒级的呀,那咱们扫描me一下提交。你看这个其实速度呢,还是很快的,0.28秒,0.28秒压秒级啊。就就是说这个circle,如果说我们拿到have的数仓当中去跑。那这个它是不是肯定就就因为时间至少得几十秒啊,对吧,那所以在这呢,还是非常快的,它延值是比较低的,然后大家这时候呢,要要注意一个点啊,注意什么点,就是有的同学可能我第一次去进行查询的时候,因为我这不是第一次了,因为我刚才这个呃,课前的时候呢,我我也尝试了去查了一次了,查了一次,然后大家要注意啊,你这个第一次查的时候,可能时间要比这个稍长一点,可能要有个几秒。
05:06
可能要几秒,这是为什么?给大家说一下。第一次查他之所以慢是因为啊,我们这个数据结果咱查的是不是结果,结果存哪呢?结果存在h base当中了,那我们查H跟h base进行去,呃查h base数据的时候,咱是不是首先第一步就是要建立一个h base的一个连接啊,这个大家在学h base时候应该是写过h base API对吧?那那那需要建一个链接,那h base的连接呢,是非常重的一个操作。它的连接,它不是一个简单的连接,不是说像咱们JDBC那样,就是一个单纯的连接,H base当中API当中的链接呢,它相当于是一个什么呀,相当于是一个这个呃连接池,相当于一个连接池,就是说我们h base其实那API,呃那个官方文档上有明确的说明,就是h base的connection呢,是要要求我们干什么,要求我们得得做成单对不对,做成单,而且呢,还不建议我们对它进行化。
06:03
是不是啊,那所以说它其实它本身就像一个一一个一个一个一个连接,然后里边呢,它封装了,对呃呃h base当中这个master的连接,呃,以及这个reading service连接,还有谁还有和组K的连接,所以说这个跟h base通讯建立连接的过程是非常这个慢的,所以说第一次呢,建连接可能比较慢,那后续建好连接,这个连接呢,是不是就诶就就就不会关闭了呀,就会一直开着,因为咱们这边这个麒麟的进程一直开着嘛,它会一直开着,一直开着,那你这边再查询呢,那它就会很快很快了。是这样的啊好,大家知道这个事儿就行,然后呢,还有一个点需要给大家给大家那个提醒一下。就是咱们写circle的时候啊,当然这个left draw呢,要求什么要求是不是咱这个事实表必须得放在左边,对吧?是这样没错,呃,然后大家还有一个还要注意一个点,就是即便我们用的不是left,即便我们用的是inner,就是普通join,普通join,那我们写circle的时候呢,这个起麟那也要求我们把事实表放在第一个。
07:06
事实表放在前面,然后维度表放在后边。哎,大家这块得注意啊,在这块得注意。OK,那这个我这个查询这边呢,咱们说的就这么多,就是其实麒麟啊,你那个构建完Q吧,剩下的就容易就是各种写SQL查询就完事了。就是这样的啊。OK。那我先把这个视频录一下,就是大家。
我来说两句