00:00
好,接下来呢,我们来看一下这个会员主题宽表,那同样看一下会员主题宽表里面有哪些字段。看完之后会不会晕啊,来看一下。一看这个会员主题款表啊,这里面乌压压一大片是吧,其实这里面还指的取的是冰山一角,你说没有把所有表的这个我们要统的信息都放在里面,如果都放在这里面的话,至少还得增加个。至少再加三倍吧,嗯,至少应该三倍的一个量,那你看这里面有啥信息,首次登录的时间,末次登录时间,累积登录录。啊,那在你的脑海当中快速回忆一下,哎,我如何来分析这些指标呢?啊,或者说老师怎么想的,老师怎么想的,就要把这些指标放在这呢。哎,是怎么想的呢?哎告诉大家哈,你看啊,这个前面这个是登录开头的,看到是登录开头是吧,这是哪开头的订单,一开头的订单订单订单这呢pay本的,哎不用多说了吧,也就说这张表是来源于各个事实表。
01:06
对吧,比如说现在呢,是会员主题,那你说会员主题跟各个事实表之间的一个关联。啊关联,那你看登录这里面有这么几个字段,然后呢,订单这块卡这么多,那这么多呢,你看还是手势末式累积累积。啊,然后最近30,最近30,那你再往下看那个支付呢,首次末次累计30天。啊,好像有规律哈,这里面它确实有规律,你看一下啊。给大家写一下宽表字段怎么来?就是维度表关联的40表的度量值,那还是关心的度量值。哎,然后呢,加上开头,什么叫开头,你什么时间开始的这件事儿,你什么时间开始支付的,首次是什么,你什么时候开始这个下单呢。哎,那就是这个是开头,然后呢再加上结尾,那结尾呢,就是当前这一时刻,他最后一次登录,最后一次下单,最后一次支付。
02:06
哎,就这些事儿,那累积累积什么意思呢?从开始到结束,这个过程当中总的次数是什么样。哎,这样记就好记多了吧,对吧,哎,好记之后呢,再来一个就是累积一个时间段。累个三段,你说这一个月。这一周,这一个季度也是三个月,他怎么怎么样,累计了多少次。哎了到十,那你看这里面的指标就是。最近三十日的登录次数,最近三十日的下单次数,最近三十日的一个金额。哎,金额对吧,哎,所以说这张宽表怎么来的啊,不要上来一啊,怎么这么多字段,老师怎么想呢,我怎么想不到呢。想到维。那跟会员相关的事时表有哪些呢?其实有八大四时表,咱们这里面只取了八大实表当中的三张表。
03:04
Log啊,加上这个log应该九个式子表了,这个是启动表的订单表了,支付表了。其实后面还有什么这个收藏评论优惠啊,加入购物车还有很多呢,对吧,嗯,还有很多呢,嗯,所以说这个主题宽表里面呢,是你日后要分析哪些指标,我就写哪些,我们后面要分析的指标呢。这些字段就能够覆盖,所以说我们就没有再往里面去增加啊,仅此而已哈。好嘞,那如何来分析这些指标呢?一看这些指标,好像两眼冒金光啊,晕晕乎乎的是吧?不知道从哪下手?不清楚,那还是看我写这个啊,思口总结,怎么去写这种circle呢?首先哎,我看找在哪写呢哈。累计表模式,对,从这开始,从这开始啊,如果是一张累计表的话,那咱们现在这种DWT的表不全都是累计表吗?那累计表怎么做,累计表中获取首次时间。
04:05
如果他第一次怎么怎么样。那怎么办呢?哎,旧的,那你记住哈,他获取首次的话,拿的都是旧的数据,它是否为空。啊,是否为空啊,然后取当前值,如果不为空的话,取当前值,如果为空的话,取旧的值。哎,这是这块啊,也就是说我拿旧的去比较比较首次,那如果是累积的末次。也是最近这一次发生了什么什么事,那用什么呢,用新的数据去判断。用新的墨是用新的,哎,这个手是能用旧的,好之后,后面你们会用到什么天数和次数,你说一统计什么什么天数的时候,往往是根据次数把次数转换成天数,往往要用到一步判断。这招记住。啊,这样一种,那还有下面呢,马上要遇到这个累积30天的指标。
05:02
我一会儿教大家累积的30天怎么来运算。哎,就是靠时间去卡嘛,哎就是靠时间去卡好,那我们下面啊,有了这个首次的和末次的,哎,搞定,那至于累积的呢,这块呢,这个如果天数的话,需要一个次数的一个变化,把次数变化成天数。哎,那用到手段呢,就是义务判断行来看。这块的具体逻辑哈。诶。打开。好来,那左侧这块呢,是我们目标表也是目标呢,我们希望在DWT里面出现这么多,嗯,这么多属性指标,那这么多指标从哪来呀。啊,我要往这里面插入数据,怎么来呢。他不在这呢是吧,一看一大面晕了啊,先不要晕,也就说处理累积型的这种表,你看他们没有分区吗?处理累积型的表怎么办?找old找new。
06:11
呢,这。比如说你只要把它的old是谁,New是谁搞定,那剩下的事就简单了,那来看一下吧,谁是old呀,Old的时候我们说过,Old的时候就是他自己呀。Out的就是他自己。哎,那你看我们这里面用的也是select直接from的,不就他自己吗?由于它不是一张分区表。这就极大的这个方便了我们后续的一个处理,因为这里面它存的是全量嘛,累积过程的一个全量。啊,最难的是我们那个优惠券领用和那个订单啊,订单领用那个是一个分区,不是一个量。啊,不是血量,你处理的起来可能是要要印印什么什么这个范围对吧?啊对应的这个分区,那我这里不用这个印呢,直接不是分区,那直接就全来得了啊全表扫描所有数据全拿过来,那后续的这个新的数据怎么获取。
07:07
啊,新的汇这么数据,也就说那新的数据就是今天也是3月10号这一天发生了哪些事情,我怎么把它收集起来呢。来看,那这就所谓的对应的这个。啊,对应的new,那new的话,你看我这里哈,我这里面获取了一个UID啊,这没问题,下面呢是登录次数。登录次数,我想统计今天的登录次数,因为未来的时候我要有一个累积的登录次数嘛,对吧,那我今天登录次数。我这里判断了一下是今天的日期,为什么呢?因为我这里面啊,除了这个今天的数据。这里面还要判断最近三十日,最近三十日,最近三十日一堆数据。比如说跟最近30相关的数据,我也都要在这个查询里面来处理。你就站在今天这个角度往前推30天。
08:00
相关数据的一个处理。那这种累积就是连续30天,连续30天的怎么处理呢?你看我from的是DWS这张表,这张表没问题吧,也就是说新表里面用的都是下一层的数据的表。这个旧的表呢,都是来源于顶层的DT,这是DWS吗?它俩差一层,那这里面我看了一下TT。DT是什么呢?是当前今天时间减去30。那说从今天3月10号往前推了30天。那是最近30天,就是这里面的数据全部都是最近30天的一个业务逻辑。对吧,然后按照设备ID进行分组,那你说我统计这啊,按照用户啊,这个用户最近30天发生了哪些事情。那问题在于什么呢?我既关心30天的,我也关心当天的,那这两部我全要。
09:01
那咋办呢?哎,简单呢,你只需要在处理当天的数据的时候加一个判断呢。你这个DT如果是今天的,那我统计的不就今天的数吗。哎,这样呢,就巧妙的把这个今天的数据和往前数30天的事情放在一张表里面,把所有单查出来。哎,就是这么一个逻辑哈,那你稍微捋一下看一下啊。诶,这张表先不用出啊,首先第一个如果日期是今天,那么它的登录次数,那不就是登录次数吗?这个没啥说的是吧,否则的话,如果不是今天的话,那其他日期我放零不就完了吗。哎,这是萨哈,我其他日期我就零取零,我只加今天的,只加3月10号的,好,那下面呢是下单次数,下单次数也能从对应的这张表里面出。DS里都有啊,对吧?啊,登录次数,下单次数这里面是都有的,刚才上上一次已经说过了,这就是为什么让你们提前练习一下的原因,在这儿我让你们快速熟悉下那些字段,那还有下单的金额,下单金额刚才你也做了对吧?啊,也已经把它算出来了,只不过前面加一个判断条件。
10:10
支付次数、支付金额在DWS这张表里面全部能够取到。啊,全部能够取到,等于说上面这个单次的今天的数据全部搞定,那上面这个连续30次,就是最近三十日怎么算呢。那首先看一个最近三十日登录天数。哎,就是我刚才说的,如果遇到什么什么天数。你首先要考虑的是,如果它这里面没有指定的啊,直接一步到位从天数里面去查,那怎么办呢?往往是通过次数。变换成天数。通过次数是变换成天数啊,而且呢,它是一个累积的过程,什么什么,呃,就是最近30天怎么怎么样啊,或者累积的一个过程,那得萨我得加在一起啊,我得把你旧的数据和新的数据加在一起,对吧?啊加在一起,那加在一起,那我要加在一起的话,我今天这统计的只是3月10号了,那我就把3月10号先算出来,日后呢,我再跟老的数据进行一个拼接。
11:15
那今天这一天的天数,我先把3月10号这一天说他在最近30。你说今天他有没有登录呢?他今天登录我就会算在这里面,今天他没登录,那就用老的。对吧,老的那一看,哦,Order count只要大于零,我只能记一次。这个很关键。哎,啊,这个out写错了啊,这不应该是auto啊,这个应该是,嗯,登录那个count吧。Order count大于零登录参数,嗯,这不应该用这个,用这个知道啊,应该用那个,呃,Log count啊,这个log count啊,这这个应该是放错了啊,Log count对吧,应该是count登录天数。对啊,登录不一定下单啊,说的没毛病,这个应该是写错了啊,笔误啊,应该是个笔误,好,那再往下,再往下呢,是最近三十日下单次数。
12:10
那你这条呢,只关心哎,3月10号这一天,他到底下不下单。下。哎,Some count order,那只把今天的这个order count。加在一起不就行了吗?哎,只加今天的,那再往下呢,是最近三十日下单的金额,那你就把今天的这个下单金额加在一起啊。啊,加在一起最近三十日支付次数,那你就sum payment一下,最近三十日支付金额,Sum一下记住了啊,这里面算的都是新的,新的话只代表3月10号这一天。他未来要跟3月10号往前推,你说这张表往前推30天的数据进行一个累加。那不就得了。对吧?啊,进行一个累加不就得到了吗?好,那这一块啊,大概现在这个新表和旧表的数据我已经搞清楚了,这个旧表里面是全表的数据,那新表的数据呢,有两部分,一部分呢是今天单次发生的,一个呢是最近30天累计发生的。
13:13
好,我都已经准备好准备工作了,那下一个。Old和就这张表,我希望印在大家的脑海当中啊,时刻想着这个事儿。时刻要有这个for out招引它,怎么招的?Old new now no,那来吧,一个个来,首先用户ID这个没啥说的,有新的用新的,没新的用旧的,对吧?首次一说到首次,那判断的标准就是用旧的去判断。对吧,哎,首次的是用旧的,那用旧的去判断,如果它等于空,指的就是这部分。啊,指在这部分,而and呢,它这个log count登录次数大于零啊,其他登录是大于零,那我就取今天,比如说它这里面有数据,我取今天没数据,你也没有数据,那还是老的,老的话不还是now吗?啊补个now就行了,哎,是这样的一个含义哈,好,再往下。
14:10
再往下是末次,末次呢是取新的数据对吧,用新的数据进行判断,末次的话呢,就是今天他有没有登录。今天他有没有登录,他只要今天大于零,那我这些数据全取了。那取今天的,那今天的这个末式登录时间,那不就今天吗?只要他这里面登录,那就是今天的末式登录,那否则的话,你就用老的数据呗。啊,否则用老的好再来累积登录天数,一涉及到这个累积怎么怎么样,那就是旧的数值加上新的数值。那你看NL的log count也是以前你登录多少次加在一起,再加上如果新的的次数大于零。你算的是天数。我要把次数转换成对应的天数,那就判断一下,哎,如果次数大于零,取一,否则取零。
15:05
哎,就这里面一个变化。再来最近三十日的一个登录天数,最近三十日的一个登录天数,那么你就需要把这个它新的这个count啊n v count登录天数是哪呢。30。是他吧,最近三十日的登录天数上,它大于零加一这块是不是有点问题啊啊啊。最近三十日的登录天数。最近三十日的一个登录天数。嗯。NL一下,如果它不等于空。哎,这个应该是一直是动态推进30。
16:01
哦,最近三十一直是动态的,那这也就只能一直去累加了,是吧?啊只能是啊对我知道了哈,知道了,因为我这里面哈,对他说的就对啊,是动态的,而且我这里面卡的就是这个最近30啊,最近30它会把这个这个DT啊,这个DT啊,它会取最近30的这些值。啊,最近30热值他都会取出来啊,刚才这块呢,他加的时候,他会加的是前30天的数据啊对这块呢,是他已经便利了前30天所有的数据啊,这块要稍微这个注意一下哈,也就说后面这个字段已经把你判断了,它是取了最近30天所有的数据,所以说这块呢,那你就直接把这个值放进去啊就可以了哈,放进就可以了,比如说是它是在下面这块已经提前帮你处理好了,那再往下,再往下呢,是首次下单的次数,一涉及到首次,那就用old的去判断,首次的用old,这不一样吗?啊OLDOLD的判断的话,如果它的空切这个,呃,它大于零的话,那我取当前的这个时间,否则的话用旧的啊用旧的,那下一个呢是末是下单次数,末是的话用新的。
17:12
啊末是用心的,那新的它的次数只要大于零,我就取当前的,否则的话取O一样道理,呃,再往下呢,是累积,下单次数一涉及到累积,那就是旧的加新的。哎,旧的加新的对吧?哎,哪一个部位空我就把哪个加在一起,加在一起一起你是一个是累计是不?那下面累计金额一样道理。仍然是旧的加上新的就搞定了,再往下累计最近三十日的一个下单次数啊,所有涉及到最近三十日的,通通全部在这儿,已经在这个时间范围内,把它都已经累加在一起了。啊,累加在一起了哈,好,再往下呢,是最近三十日下单的金额一样的,在下面已经提前处理了啊,直接把这个值。
18:01
啊对,过来就可以了。首次支付时间首次用旧的啊,Old对吧,Old is now,然后count大于零取当前的时间,否则的话取旧的,然后呢,下面呢是新的啊这个末式哈,末式的话取新的数据用new new点配count大于零当前,否则旧的。累计次数啊,累计支付次数一涉及到累积,那就是旧的加上新的,旧的加新的累积支付金额涉及到累积两个相加。最近30次啊,三十日支付次数,支付金额全部都在下面统一处理。看着这个时候呢,呃,这个字段比较多啊,而且呢比较复杂,其实呢,你要分成类的话,就这么几类啊,首次末次累积累积30。没了,就这四类。对吧,哎,你要抓住它本质的话,那你后续再处理的时候就容易多了哈,那我这块呢,稍微补充一下。
19:03
如果是累积30天的指标,那就在。新表对吧,啊,新数据表吧,对吧,咱们说说的那个new嘛,在new表表,新数据表就是new,嗯,在new中干什么呢?啊进行累加,累加外条件最近30天。对吧,你只要这个外置条件里面是最近30天的这个范围,那就可以对它进行各种一个累加啊,数据累加就已经可以搞定了,那之前呢,咱们说的首次用旧的时间啊,这个累积呢。累计表中获取末式啊末时间呢,就是这个取新的数据啊,取新的数据,然后什么什么什么,嗯,看下面写了吗。啊,遇到累积值应该怎么这遇到累积值的话,那就是这个旧的加新的啊,旧的加新的这样去处理,我希望呢,大家把这些规律呢啊给它掌握好,那日后呢,你再写起来啊,就轻松容易了哈,轻松容易了行,那这是这一块哈,那这个呢,其实我就不给大家写了哈,这个一个一个对这个时间来不及啊来不及我们跑一下演示一下。
20:22
这没问题吧,这个听懂同学帮我扣个一,没听懂同学扣个二。我看这块儿有没有难度。听懂的同学扣个一,没懂的扣个二。行,还没问题啊,这个子阳同学能听懂了,我觉得其他同学应该问题不大。这个沈阳不要生气啊,不要生气行,那下面呢,我们就往这张表里面呢,插入对应的这个数据啊,那这块这个逻辑啊,我就不写了啊,但是我是不写了啊,我希望你们在下面的时候,一个一个的去给我对下。
21:05
啊,一个一个去给我对下哈,对标杆啊,全是标杆,你只要你能对明白一个,你就像这里面我对什么呢?你可以对一个登录相关的,我对一个就行了,那你下面这个支付的什么,这个还有这个呃,订单相关的,那都是一个体力活了,比如说本质上它没有差别啊,对吧?啊没有差异。嗯,逻辑都是一样的啊。行,那这个表完事之后呢,我们就直接向里面去。插入没问题吧,能扛得住。能藏住吗?要要是稍微写一下,写一下有点太慢了啊,算了吧,让你们自己练,到时候自己自己对一下,如果自己对不懂的同学,如果这些逻辑啊,没理顺的同学呢啊,可以问我啊,可以问我啊,或者可以问那个浩哥啊,包括这个啊,我觉得问子阳都没问题,对吧,子阳没问题吧,没问题给我扣个一。
22:04
行向里面插入数据啊啊没问题好嘞,那应该就问题不大啊,这这块逻辑啊比较简单啊,这也就是你们日后啊呃,日后没改是吧?哦啊这有个没改。确实有个,嗯,是哪一个了,是这个吧。嗯,我看到那个直段叫什么呢。嗯,支付次数。最近三十日下单次数,对下单次数呢,是倒数第二位的三十日。倒数第二个30的啊。拿去修改一下。
23:00
这个是由于是第一次讲哈,所以说这里面肯定会有多多少少有些问题。这个是下单次数。这是最近三。嗯。登录次数,支付次数,我把那张表拿过来对一下。我怎么感觉是PPT有问题,这里面没问题。对一下啊,对一下别着急,那首先呢,这里面。登录次数,登录次数啊,这个是末次,末次登录。是一张这吗。啊,这个吧,应该是这个字段吧,应该是这个字段,这个字段的话,我们要要要找一下啊,31行,对是这是这个哈,这个的话应该用那个登录那个标记。
24:09
应该是他吧。应该换成它啊,对吧,大于它这事就OK了,直接改一下。Logo count。这对吧,这个知道哈。行,那这个知道就行了啊,这个对最近30次数是便利,三十日的是否可以优化成前一天的啊,最近三十日的今天是否登录。呃,到31日前登录的两个性能的差距大。嗯,我看看子阳啥意思啊,说这个呢,是最近30的一个次数,呃,可以哈,其实这块呢,你要不这么写的话,不在这块便利这个30天的数据,你在上面进行一个累加,也是类似于我们那个思路,就之前的那种思路啊。
25:14
之前的哪种思路呢,这个。旧的加上老的这种方式相对来说效率肯定会比这个高一些啊,肯定会比这个高一些,但是这个呢,是之前一个老师写的啊,我这个时间紧呢,任务任务重,所以说呢,没有来得时来得及这个时间去优化哈,优化肯定是有一定的这个优化空间的啊,没有问题啊。啊,就是说这块呢,要是我写的话,我更倾向于这个,呃,采取就是往前前面取的应该是前29天的啊,前29天数据,然后之后呢,现在呢,这次取的呢是这个啊,当前这一天的这样往起一加,相对来说会会好一些啊,会好一些啊呢,时间紧的缘故哈,也没有办法做到这个尽善尽美,你包括这里面你会发现刚才不就发现了这个,呃,有一些笔误嘛啊,有些笔误是很正常的啊。
26:01
因为这个确实是首次讲,嗯。这不跟你们出书一样啊,出书的时候你会发现书里面还有一些呃,一些笔误啊,这个像这个文档啊,这个能达到一个比较成熟的状态,至少要六遍以上吧啊,六遍以上经过六个班级的迭代,应该才能达到一个啊,至少上这个明面上错误应该是没有了,但是深层次的问题呢,也不排除啊,会有哈。那这块呢,那差那一个字段啊,我就不跑了啊,其实问题不大。嗯,我来看一下这个跑完之后呢,查一下结果。查一下会员主题结果。这样呢就跑完了对吧?啊这样就跑完了哈,行大家呢,有这个更好的这个方案的时候啊,可以提供给我啊,这个包括这个circleq优化啊,而且这个circleq这块呢,它的特点呢,就是呃,原来实现一个功能,它的实现方式啊有很多很多种,尤其是你们后面讲这个呃ad指标的时候。
27:02
Ad上指标像里面会讲什么七天内连续三天活跃,就光这一个指标就有五种方式的实现啊,五种方式的实现,当然咱们会选择一个呃,比较最好的一种方式哈,理解起来更容易一些啊,去实现的这个方式呢,去去实现啊,也欢迎大家呢多提一些这个,呃,就是写S后的这些思啊,丰富大家这个想象啊嗯,完我呢是更习惯于呃总结出一些套路了,你说遇到这个东西一说到次数怎么办,看一说到这个金额怎么办,Sum啊,上哪加啊,一说到这个首次。那就用旧的数据啊去判断,一说到这个末式,那就用新的数据判断啊,一说到累积表,那首先要想到的就是这个新的和旧的对吧?啊新的和旧的哈,然后再说到这个像这个,呃,除了这个新旧之外,还有像什么这个多表啊,多表的话那就是招引,那如果太多的表怎么办?With。啊wait time要把这些习惯呢养成之后,那然后之后呢,你再写这个circle啊,就没有任何问题啊。
我来说两句