00:01
好了啊,那现在我们看看咱这个需求啊,呃,那这个需求呢,我们也就是ADS层,呃,首先啊,先介绍一下ADS层,呃,它是干什么用的啊,前面我们有ods,有DWD有DWT,呃有DWS有DWT,那这些东西啊,呃全是在干什么,全是在为我们后续做需求诶而做准备,为后边做需求做准备啊那咱们的需求,呃在这呢,咱们也分了这样的几个,呃几个几节,然后每节呢,咱们给它归到一个主题里边了,那比如说第一个设备主题。那这里边儿呢,我们求的都是一些关于。咱这个设备的一些指标,那这边有会员主题,那都是跟会员相关的一些指标,对吧?那后边那个还有其他的一些东西,比如商品主题啊,或者营销主题,哎,是这样的啊,那这是咱们这个这个呃,Ad层咱这个主题的一个划分,那咱们现在呢,呃,先小试牛刀,我们先就是后边这三个主题呢,咱先不看,咱们现在重点呢,先看这个设备主题。
01:04
先在这个设备主题啊。那这个设备主题给大家说一下啊,我们呃管它叫做设备主题,虽然管它叫做设备主题啊,但这里边呃叫做设备主题,为什么叫设备主题呢?是因为呃咱们去统计这个呃主题下边的所有需求的时候呢,我们全是按照那个设备ID去算的。Mid mid计算的,那其实大家能发现咱们这个所谓的设备主题里边,它的这个需求都是跟什么相关的呢?其实都是跟咱们这个,呃,APP也好,或者PC端也好,是根据咱们这个流量相关的。流量相关什么叫流量,比如说咱们这个每天的活跃的这个,呃呃,这个设备数对不对,那每天新增的设备数,每天流失的设备数对不对,那这些都是跟流量相关的一些指标,那在这儿呢,大家看到呢,这些东西全是流量相关的指标,你看有什么活跃设备每日新增沉没,然后呃回流流失留存连续对不对,那这些都是跟所谓的这个流量相关的指标啊,那咱们在公司当中呢,我们去,嗯,就是呃大家做前面的这个,那个做呃写S的时候,其也发现了咱们呢,呃去标识一个用户的时候。
02:19
标识一个用户的时候啊,我们其实有两个东西,一个是所谓的设备ID,一个是这个呃user ID对不对啊,那也就是注册用户他登录之后是不是会有一个user ID啊,对吧?那如果说这个用户没有注册,或者是在未登录的状态下去使用这个APP,那他的那个日志当中是不是就没有那个user ID啊,就只有一个设备ID,哎,它是一个这样的现象啊,那我们在公司当中啊,去统计这个跟流量相关的这些指标的时候呢,我们通常是按照这个呃设备ID去计算的。通常是按照设备ID去计算计算的,比如说我算这个当天一共有多少活跃的,OK,我我需要把那些没有注册的人,我也给他算上,也算上,那我这个这个呃,算其他的一些指标的时候呢,跟流量相关的通通都是按照设备ID去算。
03:06
是这样的啊,OK,那现在咱们就已经明确了,至少明确了咱们这个主题下边所有的需求,我大体应该去从哪些表里去找,是不是应该是跟这个设备主题去靠拢啊,对吧?诶基本上去往这里去靠拢。OK,那咱们完事之后呢,我们接下来把这个呃任务呢给大家布置一下,呃,我们先呃一次性的先不给大家把这个所有东西全布置下去,可能大家那个有点消化不了,我们先做前三个。咱们先做前三个啊,咱先呃,让同学呢,先有一个这个初步的一个感受,看看这个需求到底应该怎么去做,咱们先感受感受啊好,那我们现在看这个,呃,第一个需求活跃设备数。活跃设备数啊,首先咱们先来明确一下什么叫做活跃设备,这个在最开始的时候,那个大海老师应该跟大家讲过这个什么叫做活跃设备,对吧?什么叫活跃其实很简单,在这呢,我们的活跃的定义就是说你只要今天诶启动过我们这个APP,只要你启动过OK,我就算你为一个活跃用户。
04:09
我就算一个活跃用户啊,是这样的,然后呃,那算活跃用户的时候呢,我们通常啊会出什么这个日活,还有一些周报以及月报对不对,那呃这个日活呢,很简单,就是当天一共有多少个活跃用户,对不对?那这个所谓的周活有什么呢?周活就是呃有一些这个咱们本周就是本周一共有多少个这个活跃用户,那这个月活指的什么呢?就是咱们本月一共有多少个活跃用户。就是这么个一,一个这个一个这个需求啊,有日活,周活,月活,那在这块呢,我需要先给大家打一个预防针,就在这块呢,有有很多同学他可能他会怎么去认为呢?OK,他会这么认为,比如说我算出来了这一周的12345677天对不对,那我算出来这一周当中每一天的日活我都算出来了,比如说这个呢有10万,这个有有15万等等等等等等,OK,那我把这一周里边的每天的日活都算出来了,然后周活怎么去算周活,他把这一周里边七天的这个日活加起来,就作为他的周活了。
05:16
这个东西就作为着火了,那大家说这样,你你这样去做对吗?你这样去做对吗?这样做肯定是不对的,肯定是不对的啊为什么不对呢?大家来想一下,什么叫做,什么叫做这个活跃设备数啊,什么叫活跃设备数,那也就是说在这一天当中,如果说我有一个,呃,有一个同一个用户啊,同一用户,我比如说我活跃了多次,那OK,他只算做一个活跃用户。能理解吧,只算做一个,只算一个啊,那同理,那假如说在这一周当中,哎,我有一个用户呢,我在每天都活跃过,那OK,那你在这一周里边那个周活你去算的时候呢,这也只算一个用户。只算一个用户,那所以说你这个周活它不是由日活这么简单的加起来的,所以这块呢,大家一定搞清楚,那月活跟他们前面的关系也是同样的道理,首先大家先把这个先明确啊,对,是有可能有重复的,这个东西大家得考虑到,好,那把这个预防针打下去之后呢,我们来看看,咱们去做这个,呃,活跃设备的时候呢,我给大家起一个头,我们起个头啊,我们来想一想,这个日活咱们应该怎么去算。
06:23
日活也没怎么去算,咱们先不考虑其他,咱们就考虑日活。先给大家一个思路,大家一个思路啊,那OK,我想统计日活的时候,无非就是想找到什么,无非就是想找到诶有哪些设备在今天登录了。对不对,有哪些设备在今天启动这个APP了,那把这些所有的设备找出来,我们给他count一下,得到的是不是就是今天所谓的今天的这个日活呀。对不对,那OK,我怎么去找咱们今天活跃过的所有设备。从哪去找,哪去找。然后大家去找这个东西的时候呢,嗯,应该是有一个这样的思路啊,首先我得明确这是设备主题对不对,设备主题,那OK,咱们设备主题呢,你就得这么去考虑,我先考虑我在DWT里边,我能不能找出来我想要的数据,先从DWT开始,如果DWT可以,那就从这出DT,不行再去考虑DWS。
07:21
如果说DWF还是没有你想要的数据,那OK,你只能回归到明细数据DWD了。DWD,然后大家要要要有一个这样的一个认识啊,什么认识呢?就是咱们的宽表DWTDWS,我们的宽表它不是万能的,它不是万能的,它不可能诶能够应对我们后边的所有的需求,不可能它总有某些特殊的需求呢,我DWT和DWS可能满足不了,满足不了怎么办?去我们的最原始的明细数据里边去查,DWD所有需求在这是肯定能查出来的。这样,所以大家应该有一个这样的先后的考虑顺序,先考虑DWT,再考虑DWS,再考虑DWD。
08:02
那OK,咱们起个头啊,那现在呢,我们来看一下,我在这个求日活的时候,我们看看从DWT能不能找到咱们想要的这个东西,能不能找到,那先看DWT啊,看DWT的这个设备主题环描,设备主题环描往下看。咱这个设备主题宽表呢,这里边儿前面这一大堆东西啊。黑色的这个字都是什么,都是咱们那个设备的一些信息,对吧,这个咱不看了,咱们看这里边这是什么东西。诶,这里边呢,我们统计了一些这个这个跟每一个设备相关的一些时间,或者这个次数,有些这样的东西啊,那看看有什么,有首次活跃时间,有末次活跃时间。然后还有什么当日的活跃次数和累积的活跃天数,对不对,有这样的一些指标,那我们来琢磨琢磨,我从这张表里边能不能找到当天的活跃的用户能不能找到。
09:01
琢磨琢磨,能不能找到。哎,你看这个同学啊,他这个张浩同学,他说诶log大于零。你你看是不是login是什么,是不是当日活跃次数啊,对不对,只要当日活跃次数大于零,那就说明什么,说明这个人今天是不是活跃了,那他是不是就是一个活跃用户。对不对,诶没错,张同学这个反应还是比较快的啊,或者说有同学可能跟他想法不一样,还有什么想法吗?还有什么想法呢,他可能这么去想,诶诶咱们这儿是不是有一个末次活跃时间啊,末次就是最后一次活跃时间,那末次活跃时间等于咱们当天这个日期,是不是也是能够把咱们这个当天的活跃设备给它找出来呀,也是能找出来的。哎,就是这么个意思,就这么意思啊,所以说在这呢,我们这个日活,哎在这能出能出我就在这出,我就不往前考虑了,就不往前考虑了啊,那当然你这个日活日活怎么办?日活在DWS能不能出。
10:02
日活在DWS能不能出,肯定能出啊,对不对,你看一下我们DWS里边,咱们有什么,有一个每日设备行为对不对,那每日设备行为当中是不是也有一个login count呀,也有一个活跃次数,那我从每日这个设备行为当中,把这个当天这个log count大于零的设备给它找出来,是不是也是可以的呀,也是可以的。所以说咱们在那呢,在哪呢,在DWT,在DWS呢,我都能找出来,都能找出来,所以说这块呢,大家,诶这个去做的时候,就按照我刚才这个这个思路,先考虑DDWT行不行,行的话我就拿,不行的话往前推,实在不行就就有可能推到DWD是这样的一个关系啊好了,那我就现在呢,抛砖引玉,给大家讲了一个,那剩下的呃,我就不会再讲了,剩下的我就只是部署,然后大家自己去想到底应该怎么去做啊,我都讲了就没意思了。好,那现在这个日火你可以这么去求啊,那接下来我们看一下这个周火。周活,什么叫周活,周活就是把诶这个本周的这个活跃用户给他找出来,本周的活跃用户。
11:08
本周啊,大家把这个记住本周的活跃用户找出来,那完事之后呢,看下边下边月活,那就是诶本月当月活跃设备。大家要注意啊,咱们这个算周活和月活的时候呢,不是让你去算最近七天和最近30天,不是不是这么去算啊,周活就是哎,从周一到一个周日。能理解是吧,那这个月活呢,就是从这个,呃,比如说是3月1号到3月31号,哎是这样的,不是说最近七天和最近30天,这个要搞清楚,要区分开,要区分开啊好,那大家一会可以思考考周火怎么求,月火怎么求啊,要怎么求好那这个说完之后呢,我们看看这个活跃设备数,就是这个需求,我们在ADS层,我们在ADS层啊,它的这个建表语句是怎么样的,就说我们怎么去,呃在ADS层去保留咱们这个活跃设备数的这些统计结果,统计结果啊。
12:03
这个直接登录日期大于这一周周日,诶这个我不说啊,你自自己去考虑自己考虑啊,现在先不说这个事,好,我们看怎么去保留咱们活跃,呃,这个设备相关的一些统计结果啊,来大家看我们现在啊,把这个周活月活和日活呢,我们全部都给它放到一张ADS层的表了,因为他们都属于活跃主题嘛,活跃活跃需求嘛,对吧,都放在一张表里了,那都放在一张表里,大家可能会觉得有点有点别扭。怎么别扭呢,你想一想,你这个按照常理来说算日活是不是应该一天算一次对不对,那算周活呢,是不是应该是一个月一周算一次对不对,那算月活呢,是不是应该一个月算一次啊,对吧?诶同学可能会这么去想,那确实呃,大家也应该考,应该这么去考虑啊,也这也应该这么去考虑,但是大家想一想啊,如果说诶真这么去做的话,能不能做,肯定能做。只不过你这么做的话呢,可能要相对来说要稍微的麻烦一些,为什么你想一想啊,你比如说日活我一天算一次,那你周活呢,一周算一次,那你月活在一个月算一次,那这样一来的话,你后期咱们算这个需求,这个任务,你要你要干什么,你要交给阿兹卡班,或者交给乌这些东西,让他去定时调度的。
13:14
你要让他们去定时调度对不对,那如果说你要分开算的话,这个一天一次,这一周一次,这一月一次,那OK,那你那个调度任务呢,你去部署的时候呢,就要麻烦一些了,这个我单独的要让他一周跑一次,这个呃,这个要单独一天跑一次,这个呢,我要让他单独的一周一次,这个要单独的一月一次,这样呢,可能要稍微的麻烦一些,要稍微麻烦一些啊,那如果说咱们可以想办法啊,把这个周活的需,周活日活月活的需,我想办法给它并到诶一张表里,我都让他统一的,怎么样统一的都是让他一天去算一次。都是一天算一次,那这样一来我们去诶交给阿斯卡班去部署的时候呢,那咱们那个任务呢,会诶更清晰一些,更简单一些啊,那我们来看看他是怎么去并到一张表里的啊,大家来看一下,首先咱们这有一个统计的日期,统计日期那这里边有一个当日,诶用当日活跃用户数量就是这个日活,那这边呢,同理有一个当周的周活,还有一个当月的月活,当月的月活,哎大家想一想啊,呃,比如说我这个算日日活,我一天算一次正合适,那这个周活呢,如果你也一天算一次的话,那这个实际的情况是什么样的呢?可能就会变成这样,OK,我到周一的时候,我是不是会把当周的这个数据给他查出来了,但是当周我现在咱们数仓是不是一天算一天的数据啊,一天一天的这个数据往这个数仓里放啊,对不对,那你周一的时候算的时候啊,是不是咱们本周是不是只有这个周一的数据,后边是不是还没过来呀。
14:43
对吧,后边没过来,那OK,那你结果你算了一个这个当周的已经有一条数据了,只有周一这一天的,那OK,那到了周二呢,到周二又又怎么样了,是不是,诶又来了一天啊,那也就是说你又算了一个当周的这个诶周活,那这时候呢,有两天了,那同理,再往后呢,诶到了周三的时候呢,诶又一个,那本周是不是又多了一条数据,也就是说他有这样的这个这个三条数据了,那OK,是不是这一周有七天,那我最终咱们当周的周活我就会有七条记录啊对吧,第一条是只有周一的,第二条周一周二,第三条123,对不对,那哪一条数据才是我们这个完整的一周的周活呢?
15:24
很显然,是不是最后一条数据才是咱们本周的周回呀,这才是完整的数据,对不对,那其实我们后期去做这个展示的时候,去做可视化展示的时候,我其实应该想展示的一个什么呀,是一个完整的一周的这个周火,对不对?我可能我并不需要你那个周一,周二周三那个中间的那个那个过程,我不需要,我可能只需要最终一个完整的周火,包括那个月火,我可能只需要最终一个完整的月活。对不对,那所以说咱们就得想办法啊,加一个标记,诶方便我们后续把咱们周末以及月末的这个最终的统计结果给它过滤出来,怎么加的呢?这加了一个这东西来这儿有一个是否是这个周末,还有一个呢,是否是月末。
16:07
是否是月末,那这样一来,咱们后期去统计,去获得咱们本周最终结果,以及本月最终结果的时候呢,那就会方便很多了,对不对,是不是可以根据这个标记去进行这个过滤啊进行过滤,那这个呢,就是咱们这个ADS层这个跟活跃相关的这个表的一些这个呃字段,咱们就是这么去设计它的啊这么去设计它的OK,那呃这个呃表咱们就介绍完了,然后大家要做的事呢,就是想办法往这张表里边儿诶去诶插入我们需要获取的这个日活,周活和月活。想办法去做这个事,我现在能讲的就这么多,我不能再往下讲了,再讲之后这个SQ就没意思了,嗯,这个需求没劲了啊,所以剩下的东西大家自己去想怎么去做好,这是我们,呃第一个需求,这个视频我先录一下。
我来说两句