00:00
好,各位同学,我们继续上课啊,那咱接下来要做的事儿呢,是学习如何配置麒麟的这个预计算规则啊,那配置麒麟的预计算规则呢,我们分为这样的两步啊,哪两步啊,这是不是有一个绿色的new对吧?那咱们点一下啊,点一下点完之后呢,我们这里边会发现有一个new model,还有一个new q吧啊这俩分别是啥?我们给大家解释一下model model是不是一个模型对吧?模型前面看这啥是不是一个五角星啊对吧?那其实所谓的new model呢,其实就是在干啥,就是定义我们自己的模型,这个五角星表示就是啥,是不是星星模型啊对吧?那当然这里边雪花模星也可以,雪花模型也可以啊,那在这里边我们实际上说白了就是在干啥啊,就是在告诉麒麟,你这边同步过来的这些表,哪些是事实表,哪些是维度表,然后呢,你的事时表跟维度表之间的关联关系应该是什么,就是说通过哪个字段关联的,那这个其实就是我们这个。
01:00
Model这一步做的事儿啊,就是告诉麒麟咱们这个模型是什么样的啊,所谓的new model就是这意思啊,那第二步下一步该干啥,是不是该这个new cube了呀,对吧?New cube这一步呢,我们实际上就是要选择哪些维度字段参与计算,哪些度量值参与计算,那我这个度量值,我的具体的聚合函数应该是哪一个,是求和还是求平值,还是求最大值等等等等。啊,是这样的啊,那这就是我们这两步要做的工作,我们现在先看第一步,点击这个new model对吧?New model点点完之后,我们现在就来到了创建model的这个步骤了啊,一共有几步,大家看一下五步对吧?咱一步一步来啊,我们先看第一个,这是不是要起一个model的name啊,对吧?那我给它起随便起个名字啊,比如说我们就叫做这个呃,Or呃,D order de t detail,然后呢,来一个star,那这就是我们的星型模型啊对吧?后边来一个description,这块不写也行,不写的话我们就击下一步,好,那着往下走,诶,你看这一步让我们干啥?这是不是让我们选择fact table fact其实就是实时表,对吧?那咱们选呗,谁是我们的时表,是不是那个order detail是实时表对吧?选过来选完之后,你看下边又让我们选啥,是不是I的lookup table啊,其实这个lookup table就是直译过来就是啥,就是查找表对吧,但其实这就是啥。
02:18
维度表什么叫查找啊,我是不是就正常情况下拿着事实表当中的一个维度,外界去维度表里边去查找我们所需的维度字段呀,对吧?所以说我们称之为查找表,Lookup table也没有问题啊,那这就是维度表那点点完之后呢,你看啊,这里边儿其实让我们在,其实在让我们在这我们干啥,你可以看一下。叫我干啥?嗯,先干啥?后边其实告诉难了,对吧?这边有一个tips啊,对吧,一个小贴士对吧?来看小贴士让我干啥?来看一下,让我们去选择pickup table draws another table that already exists,啥意思?是不是让我们从我们已已有的表里边选的表去进行关联呀,对吧?就这意思,还是继续往下走,那这开始让我们看啥是不是specify draw relationship between two tables,是不是让我们去指明两个表之间的这个关联关系啊,对吧?那其实所谓的关联关系就是啥?
03:13
就是通过哪个字段关联对吧?啊,以及我们这个关联的这个种类是什么,因为关联我们可以有可以有left,是不是有这种操作呀,对吧?啊是然后继续往下走,那后边还有一个,这一定要注意。John type have to have to,然后be same as什么意思?Will be used in querry啥意思?也就是说我们这是不是让我们声明一个join type join类型啊,对吧?此处声明的join类型必须得跟什么保持一致,将来我们查询的时候所使用的这个join文方式的一致,对吧?啊,是这样的啊,这是大家需要去注意的。好,那接在我们就按照它要求去做呗,那第一个先来一个from from,看咱们这能选谁?From table现在只能选实时表对吧?那咱们就选时表呗,那下边之后呢,我们有inner的,有left,有left draw,对吧?比如在这呢,我们先选inner的,那继续往下走,那lookup table呢,是不是就维度表,维度咱们这么多一个一个选啊,先选它这是商品维度表对吧?点点完之后这儿一定注意啊,啊是不是让我们添加那个join的连接条件呀,对吧?Join condition,那点一下呗,那左边是不是就是实时表,我们应该选XQID吧,右边不是有ID,没,没错吧,那边之后点击OK,好,那现在我们就添加上了一张表,就这样了啊,那继续我们添加另另外一张,注意啊,这次我再点from table的时候,你看我是不是除了能选这个试试表,也能选维度表了,那这给我们透露了一个什么信息啊。
04:38
给我们透露一个什么信息,就是咱这个模型其实是可以支持雪花模型的,对吧,为啥你那你假如说我这儿我要选一个维度表,我是不是就可以给维度表再去照它自己的表,没错,这是不是就是雪花模型了呀?啊就这个意思啊,当然我们这其实是星星,我们就还选实时表呗,啊来选它完了之后下一个选第二一个维度,第二应该是user info,对吧?那我们选择user ID,这个应该是ID没问题对吧?OK,快速的把下一个也点上,下边还是事实表,那完之后呢,选择base province,那选择我们的这个province ID这边是不是ID,然后点OK,那咱这个模型是不是就照好了呀?那接下来点击下一步。
05:19
好,那下一步之后呢,他让又让我们选东西啊,这回选的是啥?是不是dimensions啊,对,Dimension就是维度字段,那在这儿呢,他让我们把这个所有的维度字段都给它选择出来,注意啊,那咱们在这儿所选的维度字段,并不是我真正的参与到最终计算的那些维度字段,在这儿呢,我们只是告诉这个吉林哪些是维度,哪些是度量,能理解吧,那至于到底哪些维度参与计算,我们这还得在后边那一步去做啊,后边不还有一还有一步那个新建cub的那一步啊,对吧,在那里边去最终确定参与计算的维度是谁啊,那咱们这就直接就选就完事了呗,选啊,那你会发现啊,咱们选维度字段的时候,理论上维度的咱是不是应该去哪选,是不是维度表里选,但是呢,他把事实表是不是也列在这了。
06:07
为啥呀?不,你定要想一下,因为事实表当中是不是也可能存在维度字段,因为咱们讲维度模型的时候,咱们提到过一个一个概念,什么概念维度退化对吧?那就是那个维度比较小,我们可以直接退化到十表,所以这里边是不是也可能有对吧?所有人这呢,也能让我们去从这里边选择维度字段,好,那这其实前后都是有对应的啊,咱们点点完之后,我们选择事时表里边有没有咱们的纬度字段呀,谁可以作为我们的纬度。其实这个source type这个来源类型是不是可以作为我们的一个维度字段呀,对吧?还记得这个source type是啥意思吗?就是我们这个订单明细的来源是来自于我们搜索结果还是智能推荐还是活动推广,还记得那个来源吧?啊,是这样的啊,OK,这其实可以作为我们一个维度维度的字段啊,尽量往下走,那商品维度表里咱们选谁?在这里边我们象征性的选几个就行了啊,比如说我们可以选谁啊,比如可以选呃,这个是否在售,其实可以作为我们的一个维度,对吧?那当然咱这不选了,我们选一个谁选一个,比如三级分类吧,1233级分类,这是不是典型的维度啊,对吧?接着往下走,诶,品牌是不是也可以作为一个维度,那在这我们不都选了啊,都选我们也也用不了,那其实正常情况下,在在生产环境下,这就应该都选上啊,都选上咱们这呢,就不选那么多了啊相征选几个就OK,那接着往下走,这是不是有这个u in u咱们选谁,比如说我可以选一个。
07:31
诶,比如说user level user level是不是一个用户的级别啊,对吧?诶他可以作为一个维度字段,那还有谁,比如说真的,哎,真的真的是不是性别啊,对吧?比如说咱们对性别比较感兴趣,对吧?啊,那OK,咱们就可以选上它,那接来往下走,这还有一个啥DM base province是不是那个地区维度表对吧?那我们这里边就选province name加上region name是不是就OK了,这是我们所选的维度字段,接来往下走选度量值,你看度量值只能从哪选。是不是只能从事实表里选对吧?哎,就是这么一回事啊,那咱们的度量值这个可能就比较多了啊,我们从哪从SQ number往下走,这都是我们的。
08:09
哎,BT不是啊。呃,还有谁,还有这个最后一个,这些是不是都是我们的度量值对吧?这是啥?这是SQ number商品的件数,原价活动优惠金额,优惠券优惠金额,还有最终金额对吧?这都是度量制,那咱们都选上买完之后点击下一步。点下一步好,连到下一步之后呢,那你看这里边儿又让我们选一个什么东西。是不是选一个partition,一个分区字段呀,对吧?啊,当然这里边其实我们也不一定非得选我们have当中的那个分区字段,咱们have当中我们的表示数分区段都是DT啊对吧?在这我们不一定非得选DT,我们要选的是一个什么就行了。时间就行了啊,你选一个任意的时间字段就可以啊,是这样的啊,为什么啊,给大家简单说一下,那咱们这为什么要选一个时间字段呢。我们选这个时间字段的目的是什么?
09:03
给大家简单说一下啊,那其实是这样的啊,就是后续啊,我们去使用麒麟去进行这个计算的时候,因为咱们现在对接的是have,对吧,Have是不是也离线计算呀,那我们去计算也是每天计算,是不是前一天的数据啊,对吧,也是咱们数据也是批量算啊,一天一天的算,那麒麟怎么样能够拿到我们这一天的数据呢?那他是不是得知道一个时间字段才可以啊,对吧?啊,完了之后他就可以根据我们在这儿指定的这个时间字段去过滤我们前一天的数据,然后呢,去进行计算了。大家能理解吧,啊,就是这个意思啊,也就是在这儿呢,我们需要给他一个时间字段啊,是这样的啊,那当然我对于不同的业务,我给他的时间字段是不是应该是不同的呀。比如说我举个例子啊,比如说我以谁为咱们订单明细。订单明细实时表,订单明细时表啊,那你说比如说我要去计算的话,我一天天算,我每天应该算什么,我每天是不是应该算前一天所有的订单明细记录啊,对吧?那你说我们应该把哪个时间给他。
10:06
注意啊,咱这选选选表,我们这个时间段只能选哪个表里的,是不是只能选实时表里的,能理解吧?啊,那你说我这这张实时表,我选时间段应该选谁。理论人物应该选谁啊,我是不是应该选择cur time啊,是不是这个道理啊,当然咱们这个cur time我在这儿,我没给他,我没选出来对吧?啊,当然如果要选的话,我是不是应该选择咱们那个cur time才可以,是这个道理吧?啊,对,这这个大家应该是能理解的,对吧,应该是能理解的啊,那那所以说我拿到time之后,那我麒麟是不是就能够根据cur time去找我每一天新增的订单明细去进行汇总统计来,对吧?诶这是cur time,这是这是订单明细,那假如我是另外的一个事实呢?比如举个例子啊,我们以支付业务为例,那支付支付我那边是不是有一个cur time,还有一个拷贝time啊对吧,那我要统计的话,我正常是不是应该统计支付成功的。没错吧,那我应该选谁?我是不是应该选copy time,对吧?也是不同的业务应该选不同的时间,这个大家应该搞清楚啊,是这样的啊,但是大家要再仔仔细思考一下,我们的实时表咱是不是都有分区,有些情况下我们那个分区字段就跟我们的cur time或者跟copy time是不是就正好是一致的呀,对吧?所以在这我们是不是也能直接使用我们那个DT分区字段呀,对吧,是这样的啊,那当然对于这个DW do detail来说,那你说我们使用DT是不是就OK?
11:29
可不可以,可以吧,哎,这个没有任何问题啊,咱们是可以的啊,当然我选这个cur time也行啊,选D,因为它俩是不是一致的呀,对吧,因为这这张表咱是一个什么事时表事物型时表类吧啊,它是对它是一个增量分区啊,所以说OK,这俩都行,那咱们选DT吧,好,那选完DT之后再让我们选一个啥。是不是选一个date format呀,对吧,就是我们这个日期字段下边那个日期的格式,我们是不是正好就是年杠月杠日对吧?当然这里边儿也支持其他的格式啊,也支持其他的格式啊,OK,那现在咱们没问题之后呢,我们就可以点击save保存了,然后大家注意这儿是不是还有一个filter,是不是有一个过滤,对吧?那我们在这儿呢,也能再加一些这个特定的过滤条件,注意你这个过滤过滤的是哪张表。
12:15
哪张表是不是这张表,比如过滤我们是不是只能过滤事实表,那咱们这选择是不是选择的也是事实表的字段呀,对吧,这个大家要搞清楚啊,好,那咱们这不需要做额外的过滤,那就直接点击C保存就OK了,点击yes,好,那到现在为止我们就已经把自己的这个model创建完毕了,OK,那这一步完事,我把视频录一下。
我来说两句