00:00
来看下一个下一个我们打开这个下一个这个建表语句先啊,我们就照着这里边的字段去写S就可以。来看一下,那首先第一个字段呢,就前三个吧,前三个是不是跟刚才咱们。总结的那个没啥区别啊,对吧,其实你要算这这仨你怎么办就行了,直接把这个。Canr,拿过来。CR away放在这,只需要把这改一下就行,把这个所有的order是不是都改成payment就完事了,对吧?这个很简单啊,那我们就改一下,所有的order全部改成,哎,这个点错了啊,重点一下。来,所有的order改成pay搞定。是不是这就是支付的总次数,支付的总金额和支付的总人数吧?诶咱们这儿应该是写的有问题啊,是不是大于零啊。这个没没没没没没写啊,上面是不是也得大于零啊,这大于零啊好,那这个就没问题了啊,那这是我们刚才得到的三个这个人数啊,三个人数搞定,那他结束之后呢,我们看下一个啊给谁了,该当天的。
01:08
支付商品数,这个支付商品数咱们是说了啊,要求的不是总的,呃,就是当天总的被支付的这个件数,不是这个求的是啥?求的是一共有多少个SKU被支付了,对吧?那这个你知道怎么求。应该去哪张表啊,小你说。哪张表我们从DWS层的SKU主题表里是不是就可以搞定对吧?那因为在DWS层的SKU主题表里,我们看看啊,先select啊,让DWX层的SKX,你看咱们这张表当中啊,我们有这样的几个字段啊,主见是SQID,那其他字段呢,分别是这个SKU当天被诶支付呃被下单的相关统计等等等等,是不是都有啊,那我们这要找的应该是谁。只要payment count大于零。那就说明他今天被支付了对不对,我们就找有几个大于零的呗,啊,那所以这边咱们要统计的话,这可以怎么做呀?啊,把当天数据先过滤出来啊,当然这也可以用SUM1对吧,但是有必要吗?没必要,因为我们现在这是不是只有一个呃,这个统计值啊,那所以说直接按就行啊,Where d dt等于202006杠四,然后and and什么呀,And payment count大于零,那是不是把这个所有大于零都找到了,完之后呢,直接进行Co count看得清,那我们就得到了这个。
02:29
被支付的商品数吧,哎,就这点呗,那我们把日期写上2020杠零六杠幺四来逗号是完事了啊,那这个也比较简单啊,行,那现在我们相当于已经得到了我们这张表当中的四个字段,只剩最后一个了。对吧,最后一个呢,我们要获取的是当天的订单啊,它里边啊什么呀,上下单到支付的一个平均时长啊,那这个应该怎么办。你要想算它,那我们必须得拿到当天的每一个订单的。
03:01
支付时间和下单时间对吧?嗯,怎么拿,从哪拿。这个呢,DWS层有没有。DWS层我们能拿到每个订单的这个下单和支付时间吗?显然是拿不到的,一看一听这个每个订单的什么下单支时间和支付时间,这肯定是什么呀,明细对吧,肯定是明细数据,明细数据咱们DWS肯定没有DWD呗,就得那DW哪张表啊。这不应该是那个支付实时表啊,支付实呃不是那个那个那个订单实时表,订单时表应该是order in吧,Order in后我们找到order in打开啊,看一下这张表啊。呃,我这个可能是have so two那个刚才给挂掉了啊,我得把它提起来。咱们看一下字段得了啊,咱们先不看数据了,因为这个have two呢,启动需要一点时间。这边还那个还连不上了是吗。呃,连不上了,连不上应该是那什么啊。
04:03
来,我零。这个12356。嗯,先把这个小问题解决一下诶。可能是刚才我直接关机什么的啊。连不上,应该是我那个network,它那个有问题了。嗯,把它重启一下就行。来那个速度,然后那个不用呃,就速度啊呃,System ctl,然后network,呃,Restart。重启一下啊,这个重启不了,这应该是跟另一个那个服务冲突了啊,把它改一下就行。先把另一个停掉,有一个大的network ma啊,把这个先停掉,这其实这俩呢,我们正常应该把这个大的network manner应该给它disable啊来我们再执行刚才那个start。
05:05
啊,已经启动成功了,这回再重新连啊,啊已经OK了,那103肯定也是一样的问题啊,那么103也这样去试一下吧。嗯。123456,就大家有类似问题呢,也可以这个记一下啊。好,把这个先打开终端呃,速度,然后呢,那个先呃,System ctl先stop network manna这一页先把它停了,然后呢,再把呃。那个提起来这。CDL,然后呢,Restart。这个。嗯。好,那103也连一下行,这个也连上了啊,这就没问题了啊,我再看一下这个进程有没有SQGPS。
06:06
啊,他还在是吧,行,那这边咱们就呃直接查吧,来我们再重新看一下啊统计。啊,这个数据已经出来了啊,行,那现在我们大家来看一下啊,我们这儿要找的是什么来着,刚才我要找那个下单到支付的平均时长对吧?啊,然后咱们定下来,我们要去DW层的订单时表当中去找每个订单的下单和支付时间啊,你看啊,咱们订单时表啊,Order info,它是一个什么表来着,是一个累积型快照时表对吧?累积型快照时表呢,它的特点就是它里边会有很多时间。对吧?呃,这个时间分别对应于什么呀,对应于它这个业务周期当中的一个阶段,对不对?你看啊,咱们这儿创建时间也就是下单时间哎,支付时间,取消时间,完成时间,是不是有这么多时间呀,那我们这儿呢,只需要取这里边的两个就行了,那大家会发现啊,在这里边呢,有些订单是不是并没有支付啊,对不对,这样订单咱们就不要它了啊,就过滤掉就行了,OK,那咱们接下来呢,就去把这个事儿呢去落实一下啊。
07:06
哎,来到这个位置,找到我们刚才那个council啊,在这写这个circle啊,那已经知道去哪找了,我们就select from呗,From dwd层的先fact older INF for order info啊。好,那日期呢,我们需要过滤一下,DT等于2020杠零六杠幺四,好,那这一天的订单是不是咱们全拿到了呀,然后大家要注意啊,我们得过滤一下吧,把这么的过滤掉啊,是不是把得把那个payment time is not得过滤掉啊,我们留下的是不是应该是啊notno没错吧,哎,咱们要的是这样的啊,那这时候呢,我们就相当于已经拿到了每一个订单的它的啊各种时间了啊,那接下来怎么做呀?是不是求平均值,那求平行值的话,那咱这儿可以怎么做,是不是可以avg直接这么求就行对吧?啊,那avg里边写这就行了,是不是写上咱们那个,呃,支付时间减去那个下单时间是不是就可以了呀?那现在关键问题是什么啊。
08:09
怎么减?对吧,这俩时间怎么减。怎么减呀,这俩时间。咋捡的?啊。拉伸怎么减?日期相减,咱们知道data a对吧,Data a不,不是这俩应该是那个data data dif对吧?Data Di给俩日期相减,但是呢,它你要知道它减的是啥,是日期相减对吧?它返回值的单位是啥呀?是天对不对,在我们这儿要精确到分钟啊。所以他肯定不行,那那用谁呀。那咱们用谁呀?用谁呀?哎,对,我们得这么去做啊,我们得先把这个时间。啊,先把时间怎么做,先转换成时间串啊,那我们have当中能把时间转成时间串的函数是哪个来着?Unx STEM STEM对吧?Unix STEM STEM,那当时大家也看了啊,我们那个unix STEM STEM呀,它返回的这个位数是几位啊,十位啊,其实当时没数啊,但是一看差不多十位,十位,那它的单位就是多少啊。
09:14
苗。单位就是秒啊,这个大家得搞清楚啊,咱们时间春呢,要不就是呃以秒为单位,要么就是以毫秒为单位,对吧,毫秒的现在就是13位,秒的就是十位啊,那所以咱们这是以秒为单位的啊,那有秒的咱是不是能够精确到分钟啊对不对,那所以这个相对来说就比较容易了啊,那所以我们需要先将unix unix。先将我们的两个时间转成时间圈pay time,然后呢,是不是得减一下啊,减去unix unix time step,然后呢,把这个cur time放进来啊,一个支付一个啊创建时间啊,那这样一来的话呢,我们会得到一个秒的平均值了,对不对,这是不是得到平均值了啊秒的平均值,那咱们接下来需要怎么做呀?
10:02
啊,是不是要给它转成这个,呃什么呀,转成分钟转成怎么转,转乘除以60不就可以啊,除以60就可以啊好,那这个相当于咱们就完事了啊,我们把这个执行一下啊。来,走。执行一下啊。看下这个结果啊。目前看是没问题啊,转圈圈就说明语法至少是没问题的啊,其实这块呢,就这么做啊,当然文档上呢,它跟咱们还不太一样,文档上先怎么做的呀。文档是先求和,然后再再除以一个countt对吧?啊,当然这个跟avg这个函数的这个写法是不是一样,应该是一样的道理啊,对吧,那这个咱们知道怎么回事就行,好,那呃,结果出来了,嗯,结果出来的是是零是吧。呃,实间都一样是吗?我看一下啊啊对,咱们那个实验是随机生成的,对吧?我们所有的实间都一样,所以是零啊,这个是没办法,数据有问题啊行,那结果出来了啊啊,那出来之后我们剩下的事就简单了,剩下是不是就给它拼到一块啊,给它往里一插入就行了呀,那咱们这拼的话呢,我们用谁品呃用谁join呢?是不是还是用这个字段进行join就行,用时间join就行啊CTRLV啊这边呢,也给它,也给它补上一个吧,CTRLV啊,那当然你要想join的话呢,这个是不是一会得选这些字段,那我们都需要给它起一个别名啊,这个咱们就不再浪费时间了啊呃,把文档上的直接粘过来,咱们看一下就行啊。
11:31
这个就比较简单了,小问题。好,CTRLC粘过来。然后呢,放在这个位置。好,那就是这么做呗,啊就这么做啊好了,那这个不再多说啊,把视频录一下。
我来说两句