00:00
好,上节课呢,我们已经把这个每日设备行为这张宽表的数据已经导入进去了,用到了技术,一个呢是group啊,还有呢就是这个con ws和克。这几个的一个组合,实现了我们DWS层数据的一个处理,那讲完DWS层之后,接下来我们要讲的是DWT层对应的这个设备主机课表原因是什么?原因是因为DWS层里面宽表的数据是当天发生的数据,你看都是聚合的3月10号嘛,那是今天的,那么这个设备DWT成它又是统计的什么呢?是统计这个设备从开始。到当前这一时刻,哎,到当前这一时刻,它的一个累积行为是累积行为,那一涉及到累积行为,大家还记得这个累积的数据怎么处理的了吗?我们之前讲过一个叫累积型快照实时表,累积型快照实时表优惠券和订单。
01:04
哎,做拉链,做拉链是一张,那在这里面这个像这个处理优惠券和订单的时候。我们用到了一个什么呢?就是在写circle的时候用到了old和new,哎,对啊,建峰说的非常对啊,那其实你只要处理这种累积的行为,你就给我想着O的是什么,New是什么。然后他们之间的一个谁覆盖谁的一个问题,就完了啊,就完了啊行,再来看一下这个DWT层啊,主题宽表这上面。学的不错啊,剑锋啊,这个脑回路OK哈,看来还是很聪明的。嗯。大家看一下,我们现在呢,建了一张主题宽表,那主题宽表呢,是d wt UV topic啊,Topic就叫主题的意思,前面这些呢,仍然是公共制段,公共字段。
02:04
都是通过的基本信息,那下面这块,下面这块呢,是我们额外的在主题宽里面增加的信息。有什么呢?首次活跃的时间。末次活跃的时间。当日活跃的次数。累积活跃的天数。啊,然后呢,还有一个地方要注意一下,它不是分区表。记住了,它不是问题表,为什么不是问题表呢?因为它是一张累计表啊,啊累计表没有做,没有做这个分区的必要啊。因为这张表里面记录了所有的状态啊,所有的状态信息都在这张表里面,直接可以从这查。好,那么如何来分析首次活跃时间末式活跃时间,当日活跃次数,当这个累积活跃天数?乍一看懵了是吧,好像没做过来,我们一点点看,那这个呢,是对应的这个这个代码的一个circle啊circle,那circle的话,你要向这边里面插入数据,那就insert right table对吧,这个没毛病,那数据哪来。
03:09
你要向这个DWT里面插入数据,哪来的?肯定是DWS上来的。那DWS层哪张表跟这个UV对应呢?哎,DW层有一个DW SUV detail,就是我们刚才写的那张表,对吧,3月10号呢,每天活跃的设备主题画面啊,设备主题画面。啊,每天的设备主题方面。好,那这两个数据我怎么来做呢。简单的我说过,只要涉及到这种问题,你是累积的过程,那就有一个old和new的一个问题。Old。你我现在这两张表往这一放,现在大家应该不陌生了啊,因为之前已经讲过两张表领用优惠券和那个订单的。这是之前发生的数据,这是今天新生的数据。
04:03
今天发生的数据,那我如何来获取历史这张表的数据?以前我们获取历史的表的数据的时候呢,我要从信债表里面获取什么对应的这个,呃,这里面日事件开始的那个时间对应的分区,但是现在简单,为什么简单。这不是分区表啊。这不是分期表,那不需要这个获取分区,你只需要干什么,全表扫描啊,你想想,我要想获取O的数据,我只需要获取一下全表扫描,当前这里面有啥的我就查查就行了。那我就查这张表里面历史数据是什么,那怎么来呢,你看。直接slide形from DW TUV就是它。我是不是就把你这张表里面现在有什么数据我就取出来了,好,那我想取新的。对吧,你今天有了一些新的数据,那我想跟你进行后续的一个整合,捏在一起对不对啊在一起,那怎么捏在一起啊,我怎么获取新的呢,简单呢。
05:05
你今天的数据只是时代的新from。那今天的数据都在DW SUV detail count这张表里面DTDT的时间就是今天,那它就是新的数据。那接下来就是这两张表,进行一个叫负二的专业。负二,负二的噪音的特点就是谁没有我就补空。你没有我就补空呗。对吧,哎,你说现在这个结构已经搞定了,那下面的话,这个结构搞定之后,我们来具体分析下面的一个一个事件,首先第一个首次活跃的事件。省回的事情,那你看我这里逻辑什么样逻辑哈,Old ID is now old I is now,谁是now,这一片片区的不是now吗?对吧,那我取谁呢?3月10号,3月10号是谁呀,是不是取今天的取新的这个数据啊。
06:04
对吧?哎,那否则的话,如果这里面不是now,比如说OLDID,它不是now,不是now是谁呀,是这里的。这一片区的。那你用谁的?那你就用他自己的呗,原来你是啥就是啥呗,那我就保留old了。那你想想,那这个是不是首次活跃的时间。就是他首次活跃时间了,这里是O的设备,O的设备里面记录了他以前活跃的时间,那如果新增加的设备,新增加设备我看什么呢?哎,判断你这个ID为不为空啊,因为正常情况下,你新增的设备ID在这个老的里面是没有的,没有出现过。他才会为空。只有你这里的设备ID曾经没有出现过,你左侧这个now,它才是为空。没毛病吧,哎,没毛病,那他为空的话,那我就填上今天呗,因为你是今天新增加的。哎,新增家的,哎,所以说第一个首次活跃时间就是old the way now,那我就填今天,否则是老的那再来。
07:05
那有同学说末末世活跃,我又怎么玩呢?什么叫末世活跃?也是最近一次的活跃。啊,最近也是活跃。那来看一下new ID is not now。啊,Not now,你说这里是new new的设备ID not now not now,这些不都是not now吗?你想这里面不是都是那那那这个不是那吗?都有设备ID,那我取谁呢?我就取今天呢。为什么不取今天呢?因为今天是我他肯定是最近的这一天嘛,我今天他都活跃了,那我今天肯定取今天的。那如果他是now呢?那那就在历史里面存着呢,那我就取你以前是什么样的,那我就取什么样的呗,你以前是,那你以前是什么值我就什么值,保留什么原样。哎,就是这么一个含义,比如说末次的时候,那就说末次的含义就是今天有新增的或者会了。
08:04
那我举今天的,没有保持历史原样不动。啊,保持的选项不动,这就是末式活跃,那再来当日活跃次数。哎,当日活跃次数。当日活跃的次数。哎,那这里面是新的设备ID不为空,首先是新的ID不为空,然后用了一个log count log count还记得是哪一个值吗?这里面唯一新增加了一个值。就是他的登录次数。对吧,之前就增加那么一个度量值登录次数。啊,就是log count,那count,那你看啊,如果新的设备ID它不为空。那我这里面今天我登录多少次,那不就是今天的次数吗。哎,那另一个如果他今天的设备ID为空呢。
09:00
没空,他表示他今天没登录,我这统计的就是今天的,那我就给你个零得了。对吧,你没登录,那你没没活跃,那你以前那我就给你个零,那今天你活跃多少次,我就取你这个用你这个拉的这个次数,那不就解决这个事了吗。啊,这个事的话好,再来下一个呢,是比较难一点的啊,比较难理解的哈,叫累积活跃天数。啊,累积活跃天数也是一个累积的过程,也就说在这个。嗯,在你这个设备开始活跃,开始一共累积活跃多少次,它可能不是连续的啊,没要求连续活跃是累积的一个过程。那这怎么做呢?累计活跃的次数。想一想,要是让你做什么做?哎,这里面呢,其实它是包含两部分,既然是一个累积的过程,它就两部分,什么过程呢。你以前?
10:01
胡老师。加上今天的活跃。这一次。捋一下这思路,你的子表里面一定存储着他之前累积的天数,还有一部分呢,是今天。你不管活跃了多少次,我只能记一次啊。你活跃一次,我也是相当于这个累积的,这个是天数,它不是次数。我只能算一天对不对,你登录了三次,我也只能算你今天活跃了一次。啊,回忆了一天。啊,这个概念哈,也就是说它是天数的概念,不是次数的概念,那你就需要把这个次数转换成天,那怎么转次数转天呢。New的这个登陆次数,它只要大于零。我就取一。你说只要你今天登录过,不管你是一次两次三次,我只算一天。没毛病吧,哎,没毛病。那如果今天一次都没登录,那对不起明天。这是新的,那老的就更简单了,你老的这个数据怎么来的,不也是之前用这个新的时候算的吗?你第一天启动的时候不也是都是新吗?
11:08
哎,那你就是这里面以前曾经累计过多少条数据。那就是多导上数据啊,也就说这里面只要有值,它不为空吗?只要不为空就说明有值,有值的话我就取这里的次数,那你从来这里面落号呢,就是一直都是这个now。之前就没有,那我就取零啊。嗯,就取零啊,就零次吧,你这以前也没登录过,就是零次。啊,就这个意思哈,那好,那这块呢,就是if这个大于零,只是这块转了一下,那我把这俩加一起,就是整个它累积活跃的一个天数。啊立回填数,所以说这个就是这个,呃,做这种设备主题宽表啊,相应的一个处理方式。啊,这个方式那稍微总结一下哈,你像处理这种手持时间,末测时间这个呢,就是看。
12:00
看什么呢?哎,把这两张图往这一放。看他取的是哪一部分,然后呢,加上这个义务判断,预判断啊务判断,OK,那还有呢,当日活跃次数,这个简单啊,什么活跃,活跃次数就是你之前这里面它有次数就取次数啊,比较麻烦的就是一个累积,累积呢它包含两部分,只要涉及到什么什么累积的后面我们还会有这种指标哈,那就是old的加上新的。啊O加新的,新的时候加的时候要注意它的单位呢,是天数,不是次数,你需要把这个次数转化成天数,那就是次数,只要大于零,它就是一。次数不大于零取零啊,OK。
我来说两句