00:00
那现在我们看看这个cube咱们怎么去定义啊,呃,那同样现在还是点这个绿色的这个new,这时候呢,点这个new cube,你看前面是不是一个小方块,这指的是咱们那个cube啊点点完之后呢,这回我们去定义cube的时候呢,同样是分为这样的几步啊,我把这个拉到这边吧,拉这边比较合适啊好大家看,那这边呢,我们需要有呃这么多的七步啊,咱们一步一步去做,先在第一步,第一步是这个QB,首先它要我们去选一个model,因为你的CU吧,是必须得基于某一个model的啊,对吧?好,那现在咱们选选这我的payment不就有了,咱们选过来那起个名字,那这个我叫什么叫做pay,这个payt。呃,Payment cube好选完那下边呢,我们这其实可以配置这个通知的,配置通知,那咱这就不配了啊,我们点击。好,那接下来这时候我们是不是又要去选dimension和Mary呀,大家这回要注意了,刚才咱们定义猫的时候,选的时候那些你不一定都计算,但是我这时候选的dimension选的我就是真正要计算的了。
01:02
哎,这回要注意啊,那我们看看我们点击I的D点完它之后呢,我们这里边呢,需要去选我哪些这个维度要进行计算,那这时候呢,咱们来看看我们需要选什么啊,那这会因为这会候你要选多少你就算多少了啊呃,而且算的时候是多少,是不是二的N次方减一啊,所以大家那个电脑要是比较菜的话,那你这块少选几个啊,不要不要全选上少选几个,那比如我电脑就不行,那我少选几个啊,那比如说在这个事实表当中呢,我选一个什么,选一个这个支付的类型。Payment type,诶,它可以作为一个分析问题的维度,然后再往下。下边呢,呃,有什么呀,有这个真的真的是不是就是这个用户的性别呀,还有user level用户等级,我可能这俩都关心,都关心,我都给他选上。对不对,那下边还有什么该这个,呃地区的地区地区表,那这里边呢,我可能我对谁啊,我我可能对region感兴趣,那省份我就不选了啊,因为我这个电脑比较菜,我少选几个,那OK,下边呢,呃还有什么,还有这个日期的日期的呢,呃,如果说你没有没有没有分析的指标,那我们就不选它了,你就不选就行,那这时候呢,就相当于我们是不是已经选完了,我选了几个,我选了一个这个两个三个,我选了四个。
02:10
大家如果不行的话,你就选三个,选两个都可以啊,不要多少选点,就是计算量会少一些,好那这个玩意儿之后呢,我们来看一下啊,咱们在选维度表当中的这个维度的时候,咱们跟选事实表当中的维度是不一样,这事实表实表这是空的对不对,那下边这个维度表这边呢,有这个选项。对吧,那选项里边有什么normal,有derived normal什么意思,就是普通的正常的意思,Derived呢,是这个衍生的意思,衍生的意思啊,那这边我们衍生维度呢,是使用麒麟当中的一个优化手段。优化手段,这个我们放到后边高级部分来讲,那现在呢,我们就全部都选为正常模式。诶,全部选为正常模式二衍生这个东西呢,我们后期再讲,那全部选为正常,好,那也就咱们选了四个,这个相当于选了四个维度,对不对啊,四个维度好,那选完之后呢,我们点击下边的这个,呃,OK,点它。
03:04
好,那四个维度咱们就选完了,选完之后呢,我们接下来紧接着点击这个next。这时候呢,需要我们去添加mirror,那添加mirror的时候呢,那这次我们就不是说只选一个字段那么简单了,对不对,因为你最终你要干什么,你这个要聚合,聚合完之后是不是肯定得有一个聚合函数啊,对不对,那这边你要求什么,你得告诉他,就比如说它这有一个自带的,自带什么是这个count。就是会有一个这个分组进行这个计数的这样的一个功能,这是它自带的,自带的啊,那这个东西你要不想要也可以删掉对吧,那我们现在可以加上我们自己想要的怎么办?点击这个加mirror。那下边呢,首先起一个名字,那这边比如说我要分析的就是这个前面的维度跟这个订单金额总和的规律,那我就怎么办,我就起个名字,这个随便起啊,比如some。啊,那下边诶有是不是有一个表达式啊,那这边能选什么呢?来看啊,N都能求啊,这个常用的几个都能求,这是这边。
04:02
那完了之后呢,你sum函数是不是得有参数啊,对吧?那参数这里边可以是常量值,Content也可以是一个列,那我们这肯定是一个列呗,对吧?选column column完之后哪个列呢?诶是不是肯定是那个度量值啊payment amount肯定是它好,那我们给它选上就行了,选完之后,那这时候呢,大家注意啊,不要直接点next,你点next这个东西相当于你没保存,那你得点一下OK才可以啊,点OK,好,那出现这个位置,你看是不是有俩了呀,俩了之后呢,你再点这个N。好,那到现在为止,我们就已经定定义好了,咱们这个这个度量值了,那再往下呢,实际上就是一些高级的配置了,比如说现在这呢,有一个refresh setting refresh什么意思呢?Refresh它的意思是这个,呃,合并刷新的意思,那这边呢,我们主要给大家讲一个参数就行了,就这个位置autoge这个自动合并,对合并自动合并。刚才咱们分析过了,我们刚才分析过了啊,就是我们的麒麟呢,是这样的,我们定义好一个Q吧之后,对不对,那我们计算的时候怎么算的,是不是一天一天算的对吧?我每一天算完之后呢,我我会把结果怎么是不是存到h base当中,每一天算完诶都会把相应的结果存到h base当中,那大家要注意了,我们数据存到base当中啊,我每一天的这个,诶这个数据呢,我都会存成一张表。
05:25
每一天的数据都会存成一张表,就是一天一个h base的表,一天一个H的表,然后在这个麒麟当中,我这一天的这个表在h base当中,我管它叫做一个什么东西呢?我管它叫做一个segment。S格的意思就是就是切片分片的意思啊,对吧,相当于我一天一个片,一天一个片,然后一个片就是一个表,一片一个表,那这样一来的话,如果说随着时间的推移,我们h base当中啊,可能会有大量的表,对吧,一天一个表吗?大量表,那有大量表有什么坏处呢?这个其实坏处也倒也不是很,也不是很坏,那表多了,可能我那个HP的原数据那要多一些,对不对,这是有可能的,那其实我们这个倒无所谓,倒无所谓,那其实对对我们这个麒麟来说,我们使用的时候,我这个比较多了,对麒麟来说有什么坏处呢?其实有坏处的什么坏处啊,就是我们去诶查找数据的时候呢,它有可能会有问题,比如说我后续我想干什么,我想去查找一下咱们那个,诶半年的数据。
06:23
我把半年的数据,我这个结果我拿出来,我统计,我最终看一下这个结果,我想看一下,那这样一来的话,会出现什么问题呢?会出现你需要去扫描这个半年的表,半年的表相当于有180张表,你需要去去去扫描对不对,那这个其实查询的时候效率呢,可能会比较低,那所以说在这呢,我们麒麟有一个这样的功能,什么功能,就是自动合并表的功能。自动合并表啊,也就是说它会自动的帮我们把这个每天构建出来的那个表给它合并到一起,那合并的时候它的规则是什么样的呢?我们可以自己去设置,这样呢,它的默认配置是七天一小病,28天一大病。当然不是生病啊,是合并啊,就是七天合并一次,28天又合并一次,是这么去做的啊,那这边它的具体的合动的规活,那个合并的规则是什么样的呢?给大家解释一下,可能你想象不到它是怎么合并的,比如说七天一小病,28天一大病,那我到底是怎么合并啊。
07:15
是不是感觉想象不到啊,诶是这样的,我给大家解释一下啊。OK,他这个每天生成一个新表的时候,他都会去按照你定义的这个规则去检查一下,他先检查什么呢?先检查是否满足28天的条件,如果满足28,那就按照28的合并,如果不满足,在线检查是否满足七,那满足期就按照七合并,如果都不满足就不合并。是这样的一个逻辑啊,那我现在举一个例子,看看是怎么回事。诶,这时候大家看谢波提的这个问题,说跟h base的合并一样,这块大家千万要把这把它跟H的合并给它区分开,它跟h base的合并不一样。这个要注意啊,H base的合并指的是什么?H base的合并呢?指的是你一张表里边的,对不对你的那个h file进行合并吧。
08:04
对不对,你是HFA进行合并,这是一张表的HL进行合并,我们这麒麟这边所说的这个合并指的是什么?是什么是诶多个表进行合并,是多个表合并成一个表。这块呢,大家一定要区分开,不是HL的合并啊,是表的合并,好大家把这个记住啊,好,那我们现在继续往下讲,我们看看它这个默认的这个合并规则到底什么样的啊,好比如说我我举例子啊,比如说我现在诶第一天有一个一天的表对不对,那这时候满足28,不满足七也不满足,所以不合并,那依此类推,123456。七诶到第七天的时候,那我现在检测28满足不满足不满足,那是否检测七满足满足满足满足,那OK,我就会把这诶七个一天的表给它合并成一个七天的表。那这是一个七天的表,那OK,那接下来我们到了第八天又来了一个一天的表,那满足28嘛,不满足七满足嘛,也不满足,那这时候呢,他就会继续走走走走走走,那到多少时候呢?到第14天的时候,那我就会有一个七天呢和七个一天的,对不对,那这时候满足28吗?不满足七呢,满足满足满足OK,我就会有两个七天的表。
09:15
对不对,两个七天的,那依次类推,那直到什么时候,直到我到了28天的时候,我现在是不是应该是有三个七天的和七个一天的呀,对不对,那这时候先检查是否满足28满足,那OK,统一的合并成一个28天的表。这就是他这个合并的一个逻辑啊,那这边咱们就用它这个默认的就可以好,那它完了之后呢,我们接下来直接点击next啊来往下走点击next,这是咱们这个合并这边,那再往下呢。到第13天的时候,不就满足七天的要求了吗?第13天的时候不满足啊,13天的时候我是呃,有这个一个七天的,一个七天的,然后六个六个一天的呀,他是没法合并的,得七个一天的才能合并。是这么合并的啊好,那这个咱们继续往下看啊,下边我们点击next之后呢,我们就来到了谁,我们就来到了这个advanced setting来到了这个位置。
10:10
Setting,那来到这之后呢,这是一些高级配置,这个其实跟我们什么呀,跟我们那个HP的,跟那个麒麟的优化是相关的啊,那这个优化的概念我们现在还没说,所以这边呢,咱们就先跳过,先不管它啊,那直接点击next。然后再往下呢,这边也是就是说我们可以去配置一些属性,在这进行配置,刚才咱们不是看了吗?给大家就是我们在这个麒麟当中,我们可以去覆盖一些这个have的配置,呃,以及覆盖一些咱们那个MR的配置,对不对啊,那你想要想覆盖的话呢,你可以直接修改配置文件,那配置文件改了之后是全局有效,那你在这呢,也可以进行配置,在这配置完之后呢,就是只对你当前那个cub有效。对不对,那加,然后诶给它配上就行了,是这样的啊好了,那这个完事之后呢,我们点击next。然后最终这是我们这个cube的一些信息,就是这样了,那这里边呢,有什么,有几个这个维度表,有几个维度,有几个度量,那就给你列出来了,那最后点击save,然后点击那OK,那到现在为止,咱们这个麒麟的Q吧,我就我就已经定义完了。
11:11
就定义完了啊,那定义完之后,接下来我们就可以让他去进行这个计算了,那注注意啊,这时候只是定义完了,其实并没有计算,计算怎么办?来点一下咱们这个Q吧,这块已经有东西了,对不对,点哪点这个位置。Actions啊action,那这里边呢,有一个有一个build,这个build呢,就是一个计算,就是构建吧,然后点它点,那这时候呢,会弹出来一个那个输入框,让我们去把什么输进来呀,让我们去把这个呃,输一个起始的日期,再输一个这个结束的日期,对不对啊,那这时候他这个日期这个前后是什么样的呢?是前边是include,后边是c include应该就是这种形式呗。对吧,是这种形式的啊好,那这里边儿我们要计算,比如说我们现在集群当中有这个好几天的数据,对吧,那我现在想计算十号的数据怎么办?那计算十号那你选呗,那其实日期那应该是选这个上一个月的啊三月呃,三月3月10号十号,然后这个12点这个am,这其实就是零时啊零时。
12:12
这不是,这不是中午12点,这是上午12点,上午12点就是那个零时啊,可能有点别扭是吧,那零时,然后这个零分对吧,那就是3月10号这个位置就选上了,那完了之后呢,结束日期应该是谁?那结束日期是是不是应该是3月11号的零时啊对吧?那选3月10号11号的零时,诶那这样一来我是不是就能够把十号这一天的数据给它过滤出来了呀,那完了之后呢,点击submit,点完它之后,大家要注意这时候呢,我们就诶真正的去进行计算了,这时候就真正去计算了啊,那我去哪看它这个计算过程呢?看这个位置monitor。那这边呢,就把咱们这个计算过程呢,给大家列出来了,列出来了啊好,那列出来之后呢,我们来给大家简单的说一下这里边儿的一些东西啊,这是这个有一个执行的进度,一个进行进度啊,然后这边你可以刷新,可以刷新,那然后大家看看这个位置啊,这个位置是一个小三小小蓝色一小三角,你点一下这个按钮啊点。
13:09
点完之后呢,你往下看啊,往下看,那下边有什么东西呢?下边有咱们这个就是构建任务的这个整个的一个流程。构建任务的整个一个流程,因为咱们这边,呃,实际上说白了,底层你去计算的时候,是不是也是map reduce啊,也是需要一串map reduce的一串和一串啊,那大家想一想,那既然是这样的话,那相当于我多个mmr之间形成了一个什么,是不是形成了一个work flow啊,对不对,那多个任务之间是不是有依赖关系的呀,既然是有依赖关系,我得确保什么,就得确保是不是第一个mmr跑完了,我才能跑第二个,第二个跑完才能跑第三个。对不对,他得这么去算才行,那所以说大家想一想,我怎么知道第一个是否完成了。对不对,你得保证他完成了才能跑第二个怎么知道怎么知道,诶那麒麟是,诶利用咱们这个历史服务器去判断这个事儿的,也就是说诶,我第一个MR提交了,那OK,那我是不是就会去监控这个历史服务器上的这个任务啊,如果说你在历史服务器上边,你这个任务的状态变成了succeed,变成成功了,那OK,我才会去提交下一个MR。
14:15
对不对,那这就是我们麒麟使用这个历史服务器的这个场景,所以说麒麟呢,要求我们必须得启动历史服务器,得启动历史服务器啊,这个大家得记住好了,那这时候呢,它就会诶一点一点从上到下去跑了,那这个最终呢,这个跑完之后,这个位置呢,会变成100%,那这个就是咱们麒麟的这个基本的使用过程,就是从从哪呢?从去定义这个呃,Model,然后呢,再去定义这个,诶Q吧,那Q完之后呢去计算,计算完之后呢出结果,出完结果我们就能去进行查询了,这是咱们完成了计算的这一步了。好了,我先把视频录一下啊。
我来说两句