00:00
好,各位同学,那接下来我们继续往下进行,接下来我们要做的呢,就是构建CU吧,啊构建CU吧,Cube怎么构建,是不是在这儿点这个new啊,对吧?那点一下这个new,那点完new cube之后,咱接下来要做的事是啥啊?咱们分为这样的七步,对吧?这个步骤要多一点啊,那咱们一步一步来,那首先第一步我们需要填一些这个cube的基本信息,那首先我们这里边每个cube都必须基于一个model,那所以在这儿呢,我们需要选择我们刚刚所见的那个older detail星型模型,对吧?好,接着往下走,那这是不是有一个cube name啊,对吧,Cube name cube name这里边咱填上随便填啊,比如说我就叫做older detail CU,这个没有问题吧?好,那接下来下边还可以再配置一些,呃,我们这个通知的一些邮件啊,等等这些东西,咱们这个暂时先不配啊,我们点击下一步。好,接着往下走,那注意我这这是不是又让我们选dimension,注意这次选择了dimension,那就是什么了,就是最终真正参与到计算的dimension了,能理解吧?啊是这样的,比如说我举个例子,在这儿假如说我选三个维度,那我最终计算结果当中应该有几个q boy的。
01:05
它这是不是要构建Q了,对吧,是不是二的三次方减一,哎等于七才对啊,对吧,那假如我这儿有呃十个呢。你看啊,三个维度跟十个维度是不是感觉差的不多。对不对,维度数量上是不是差的不多,但是我最终计算的结果的那个数据量是不是就差太多了,因为这个是不是指数增长的对吧,那就是二的十次方减一等于多少了1023对吧,那你看这个是不是就差了太多了啊,是这样的啊,那所以说咱们一会大家自己在选择维度的时候呢,如果自己这个呃本要是不太好的话,那少选几个啊,你选个两三个就得了啊是这样的啊,不要选太多,好,那下来我们点击这个爱的dimension,那接下来我们就开始选择我们自己的这个维度,我在这儿我也不全选了,我也少选几个啊,我就选四个吧啊,咱们量力而行看对吧?啊选四个,那选四个咱们选谁呢?往里边看啊,大家可以看我这儿是不是事实表能选,我维度表也能选啊,对吧,那咱们选选维度表的啊,维度表首先我们看这个SKU in for u在这里边呢,我比如说我可以选一个品牌啊,比如说我对它感兴趣,我后续需要去看一看我不同品牌的这个销量怎么样,对吧?是不是可以点这个品牌啊,接着往下走,那这是user user这边呢,比如说我对。
02:21
对性别感兴趣,我想看一看男性和女性他们的这个,呃,购买力怎么样,那我可以可以看它,那接着往下走,那下边还有啥,是不是有这个diam base province啊对吧?那这里边比如说我对这俩都感兴趣,都感兴趣,我是不是可以都选上啊,对吧?那那就选四个维度就OK了,那完了之后大家要注意一下啊,我们选完这个维度之后,后边我们还有一个选项。一个叫做normal,一个叫做derived,对吧?这个其实指的是什么啊,指的是我们这个维度的类型,那一个是normal normal就是普通类型对吧,那一个呢,叫做derived衍生类型。衍生,诶,这个衍生到底是啥意思呢?啊,这个暂时大家可能还理解不了啊,我们这个暂时先不提他,后续我们会讲,这其实是我们后续要讲的一个麒麟的优化手段啊,后续再说,那在现在我们为了方便大家理解啊,我们全部都选这个普通类型,全部选择normal普通类型能理解吧?好,那四个普通类型的维度我们就选完了,然后点击OK,好,大家来看一下这个位置是不是就出现了我们刚刚所选的四个维度啊,那接下来点击下一步。
03:24
点点完之后,这里边该干啥了,是不是该添加这个me信息来,对吧,Me是不是就度量,注意啊,这次可不是说我们只选一个维度度量字段就完事了,我们这次除了要选度量维度字段,我们还得选啥聚合函数对吧,更多的是聚合函数啊,你到底按什么聚合,怎么添加,那这是不是有一个。I的Mar对吧?ID Mar这里边呢,我们可以一个一个的添加,那这里边呢,我们可以随便起个名字,就是给你那个聚合函数,结果起个名字就是一个别名,完了之后这儿是不是可以选聚合的函数啊对吧?有sum,有max等等等等,那这呢是选什么呀?是不是选我们这个函数啊参数啊对吧?那参数是不是有一个具体的列,那这这也可以选常量值,那再往下呢,这是啥?是不是就我们那个参呃参数的值啊对吧?那比如说我想对某一个字段求求和,那怎么办呢?那这比如说我随便写一个名字啊,那玩之后呢。
04:16
这是不是sum,然后参数就是一个列,那完之后我选谁是不是就选我具体的列名,那这是不是就可以得到一个这样的sum,求和的一个一个聚合呀,对吧?啊就这样的,那是这这样咱们一个一个添加的太麻烦啊,我们度量值有好多,我的聚合函数可能也有好多,对吧,一个一个添加太麻烦了,我怎么办呢。来,我可以book可爱的对吧,Book什么意思,是不是就是批量添加对吧?哎,咱们可以点它,点完之后你看这个怎么填啊,很简单,比如说我萨姆求和,我要对所有的度量值都求和,那你就可以点一下萨完下边呢,是不是全选,选完之后点击OK,那我这是不是就一下添加了,呃,五个这个度量值啊啊就这样的,可以批量添加在这儿呢,我们就采用批量添加吧,完了之后呢,点击下一步。
05:02
好,那现在我们就来到了第四步了啊,第四步这块呢,我们要做一个事什么事呢?大家看一下是不是叫做refresh setting啊对吧,刷新配置对吧,这里边其实我们呃需要配的一个东西就是它啊,主要就是它就是这个auto mege thread holes。是不是自动合并的阈值啊,对吧?什么阈值,时间阈值啊,时间阈值啊,是这样的,这里边它这个自动合并,合并的是什么?我给大家简单解释一下啊,刚才咱们提到了在麒麟我们去进行计算的时候,咱也是做也是做也是做离线计算对吧?也是离线计算啊,那离算计算我是不是每天都会有一个自己的计算结果,对吧?那这个计算结果呢,麒麟是怎么处理的啊,它会肯定是存到HP里对吧?啊存到HP以什么样的形式存在呢?是一张新表的形式存在。那也就是说我们麒麟在使用的过程当中,是不是每天都会在麒麟里边新建一张表,每天一张表,每天一张表,对吧?那随着时间推移,那咱这个表是不是会越来越多,越来越多,那越来越多,那后续我们查询数据的时候,是不是有可能会跨不同的表去查数据啊,对吧?那这个效率显然是比较低的,那所以麒麟为了优化这一点怎么办呢?它会自动的每天去合并。
06:17
麒麟当中的表,HP当中的表,那这个合并其实就是合并表,合并HP里边表啊,那这合并的逻辑什么样的呢?诶,它会根据你这设定的时间阈值去合并,那这默认是一个七,一个28,对吧,那它具体的逻辑应该是什么样的呢?是这样的啊,第一天的时候,那我在HP当中是不是会有一个一天的表啊,对吧?啊一天的表,那OK,那他会先去判断满足不满足28。啊,如果满足就按照28天的这个逻辑合并,合并成一个二十二十八天的大表,如果不满足,再判断满足不满足七天的这个阈值,如果也满,如果满足那就合并,不满足那就不合并了,那咱们第一天肯定都不满足,对吧,那就不不合并呗,那继续往下走,走走走一直走到哪一天的时候呢。
07:05
第七天第七天是不是有七个一天的表啊,对吧,那同样还是先判断满足不满足,28满足就合并现在不满足对吧,不满足判断诶这个条件满足满足满足满足的话,我是不是就把这七个一天的表合并成。一个七天的这个大点的表啊,对吧?啊是这样的啊,那OK,我继续往下走,到了第二天,呃,到第八天买第八天第八天是不是这样的一个情况啊,一个七天的啊,完事之后一个一天的,那满足28嘛,不满足满足七嘛,也不满足,那继续往下走走走走一直走到第几天的时候呢。是不是14天的时候啊,14天的时候是不是会合并成两个七天的表,没错吧,那继续往下走到28天的时候呢?啊,一直走啊,一直到28天的时候,会出现什么样的情况,是不是会有三个七天,还有七个一天啊,对吧?那这时候直接会合并成一个28天的表啊,它是这样一个逻辑啊,就是自动合并,那这个我们用它默认值就OK啊,是这样,其余的我们可以不配啊,那接着往下走,Next,好,那完了之后我们就来到下一步,这一步叫啥叫做。
08:07
Advanced setting对吧?Advance是不是高级的意思,高级配置,那在这里边呢,我们要做的其实是一些麒麟相关的优化啊优化,那这个优化我们现在暂时先还没讲啊,所以暂时咱这个位置呢,先不配,用它默认值就行,等下我们讲了之后再告诉大家这儿怎么配啊,再接下着往下走,点击下一步,那再往下呢,我们就来到了这个,呃,这个位置,这个位置叫啥叫做con configuration or right对吧,是不是配置文件的覆盖啊,对吧?啊在这里边呢,我们可以去配置一些麒麟的参数,那这些参数呢,会覆盖它的默认值,那它的默认值在哪放着呢?默认值是在麒麟的诶根目录下边,这里边是不是有一个靠目录对吧?靠目录里边呢,有一个Kend.properties也就是说,我们可以在这个位置去覆盖它默认的参数,注意此处覆盖的参数是什么级别的啊。
09:00
是不是cube level是不是cube级别的呀,对吧,也就是说这配置参数只会对谁生效,只会对我当前这个cube生效对吧?啊,你要想全局有效,那就那就得去改配置文件了,但是改为配置文件之后需要重启啊啊那这个咱们暂时不配,不配之后点击下一步,下一步这个位置看一下。找我干啥?这是不是让我们去回顾一下我们刚刚所配的这些参数是否正确啊,对吧?啊,如果有问题你可以再返回去修改,没问题的话呢,点击save保存即可。好,那现在我们就把这个Q吧,就配置完毕了,好那大家要注意啊Q吧,咱现在仅仅是配置完毕了,对吧?啊仅仅是配置完毕了,我现在开始计算了吗?没有,那怎么才能计算啊这个位置。那这是不是有一个actions啊,对吧,Actions里边呢,有一个build build是不是就是构建的意思,没错吧,那咱们点击build。那完了之后会看你会看到它这是不是弹出来一个呃,输入框对吧,让我们输入一个开始日期,一个结束日期,那他会根据这个干啥呀。
10:05
他肯定会根据我们所说的开始和结束日期这个时间段去过滤我们的数据,对吧,没错吧,因为他要做离线批处理嘛,对吧,过滤一批数据去进行计算,OK,那问一下大家它过滤的数据啊,是哪个表的数据?这其实告诉你了呀,对吧,这是事实表的数据啊,对吧,完了之后是根据哪个字段过滤的,是不是根据我们刚开始构建model的时候指明的字段过滤的呀,啊是这样的啊,完了现在我们就过滤一下,比如说我现在想计算15号的数据,那怎么选。他这是左闭右开啊,左闭右开,那是不是应该选择呃,2020年6月准对吧,完了之后呢,是不是15完了之后00:00啊没错吧,左闭右开嘛,那这边呢,我们再选2020年,呃,2020年每月是不是也是六月玩16对吧?那这样一来是不是就能拿到我们15号这一天的数据啊,那完之后呢,我点击submit提交。
11:01
那现在咱这个任务呢,就算是提交上去了啊,提交上去了,提交上去之后我想我想去看一下它的计算进度,怎么看呢?点右边的monitor啊,Monitor是不是监控啊,对吧?那完之后大家可以看一下啊,这儿就出现了一个这个计算的drop,它已经开始计算,这是不是有一个progress啊,对吧?进度,那当然现在还是在准备阶段,好,那我假如说我想看看它具体执行到哪一步了,怎么看呢?这是不是有一个向右的一个小箭头对吧?蓝色的点它一下。点完之后呢,这里边儿就是我们整个cube构建的计算流程,从前到后都有啊,从前到后是都有的啊。然后在这边大家需要稍微注意一下啊,你可以看一看啊,它这边分有很很多步对吧,第一步第二步,第三步第四步,那实际上他这个从前到后的这些步骤也是有什么的呀。有前后的依赖关系的,也就是其实这个东西就跟我们之前讲的阿斯卡的那个计算流程是不是一个概念啊,对吧,那既然有依赖关系,那麒麟是不是就得保证第一个完成之后才能完,才能执行第二个,第二个完成之后才能执行第三个呀,对吧,那麒麟是如何去保证这个。
12:09
依赖顺序的呢。他其实会用到我们那个历史服务器啊,是这样的啊,也就是说第一步诶,我这个任务执行完成之后,那他会怎么做。是不是会在我们的嗨杜的历史服务器里边会有一个记录啊,对吧,那他的记录是什么?应该是如果成功之后是啥是四个C的对吧,那麒麟就会去观察历史服务器上面的这个,呃,任务是否是succeed的的状态,如果是那我就继续往下进行,不是的话,诶,那我就等待。能理解吧啊,它其实就是通过历史服务器去解决我们这个任务之间的依赖关系的啊,实际上是这么一回事啊,呃,所以说我们是不是在即在使用麒麟的时候必须得启动谁必须得启动hioop当中的历史服务器,对吧?诶,这是大家需要注意的啊,OK,那咱们现在要做的事呢,就是等等待它这个执行完成啊,是这样的啊好,我们暂时先把视频停一下,这个麒麟的这个使用大致就是这么多啊。
我来说两句