00:00
好,接下来呢,我们看一下3.5DWS层用户行为宽点,在这一层呢,我们要建这个各种各样的这个宽点,你在企业的时候,你也是要这么建。因为在企业当中有个别企业他能建一到两张画面啊,我可以看一下这个,呃,去哪网的,你看他们有多少张宽表啊。好,那接下来啊,回过头来看一下我们要建的这个行为宽表啊,真正在启发当中啊,用户行为宽表尤其在电商里面几乎是必见。啊,他关心的就是这个用户在这一天当中做了哪些事啊,做了哪些事好,那我们来看一下。我们这个用户用户行为宽表啊,是属于一个四维性的啊,我拒补了三张,哪三张表呢?分别是对应的这什么表。订单表对吧,哎,订单表,那这两个知道呢,支付表是吧?那这个呢,平成表,那除了这三张表之外,我还能去估多少张表。
01:07
咱们一共有多少张表,12张吧,对吧,啊,12点吧,那这里面相当于12张表,我觉得都可以聚回了。啊都有些,那像这个这八张表,八张表跟用户行为相关的不多了吧?啊不多了啊,像这个订单,订单详情商品,嗯,哎也差不多,要想聚的话也能聚合进来,是这样吗?啊所以说啊,尽可能的把能聚合的表都聚合在这里面去啊,这是一个企业啊要做的事情啊在面试的时候,面试官最喜欢问的就是诶里面有多少张课表啊,比如说你说出来这个有用心行框面,还有啊围绕着商品的扩面,围绕着购物车的是扩面啊,还有围绕这个呃,支付的宽面等等这些信息,那他下一句话就会问你们最大的画面是什么画面。
02:00
啊,你完全可以说运用行为,然后在这一用行为里面,他还会问,那你面有多少个支分。啊,之前带大家看过一老学员呢,那里面至少得有将近六七十个吧,啊,那是少的啊,多的公司呢,能达到这个100多个字的啊,没有任何问题啊行,那我们来看一看如何把这三张宽表啊,三张表聚合到一张空表面去啊那这里面用大的技术呢,就是这个位置time对吧?啊vtime,然后加上这个U的连个搭配,那好,我们仔细来看一下,首先呢,这里面前三个字段。用到的是订单表,那我这块处理的就是订单表啊,看那订单表当中,哎,我查了一个订单表,那一个一个单解决,一转ID解决掉,那这里面的下单次数就用放形解决,那下单金额用SS解决掉,然后呢,这个限定一下时间范围,那是二月时号,然后呢,根据这个用户ID进行一个补换啊分钟。
03:05
OK,那你说这一个看,就把订单相关的字段我就说完了。那下一个time来处理的就是支付啊,这么两个点啊,这么两个字,一个是支付次数,支付次数在这。还有一个支付金额在这啊,那先看看挂上一个UID啊,运营关联,这就上值的好,那还有一个是这个评论表,评论表就更简单了,那就是一个评论次数,评论次数。用是ID给的次数,创新一下就得到了,那得到这三张表之后怎么用呢?那就是哎,你先要往哪里面去插啊,写上,然后看一下这地方它是分区,所以说这地方是一个分区表,然后呢,要查这些字段。那我就根据前三个临时表去做,那这里面有第一个临时表,第二个临时表,第三个临时。
04:05
但是他们在聚合的过程当中啊,非常巧妙。他们啊。有值的我就直接取它的对应的值,没值的。补零啊,没值的,补零就这一个方式,那这里面还有一个注意点,第一个查询这一块,那你要是光补零后面不加一个别名,那也不行啊,一定要给他记得得起个别名古灵的同时。啊,这是一个注意的地方啊,然后呢,这就相当于看这张表处理完之后,相当于假如说啊,这是订单ID,比如说001,然后呢,订单个数十个。嗯,然后这个是哦多少忘了金额十块啊之后零零。零是这样一个结果吧,那你下面这个字段啊,你说这样的,在一二的时候,比如说还是001,那么零零这下面这个支付,比如说20。
05:05
20,然后零,那下面再来一个评论表,评论表比如说还是0010000,然后十。那你得到这么样一个宽表的时候,得到一个这么几个结果,你需要对它们进行聚合吧,啊需要聚合,那就需要用到。萨姆求佛啊,有的同学啊,这一块都不理解,说老师我这一块,我这个奥。它本身已经是你看。杀不过的吧,或者胖是过的了吧。那我为什么真正还要上呢?就是因为它是U对不对啊,我要把它进行各种累加聚合啊聚合啊这块要注意,然后呢,聚合那这些聚合这些需要聚合,那上边还有一个new ID控制,那这块必须得对它进行一个分布板啊就OK了啊好,那下面呢,我们来具体的去写一个这些东课表啊,感受一下wait time和unitor的一个魅力呢。
06:11
来,拿过来。那放在这儿,那接下来呢,我们要把这三张表的信息拿回来,分别是订单表,支付表,评分表。在写这些的时候啊,一定要把这个字段都拿过来,这样你写起来就会容易多了啊,订单进程订单表拿过来。你呢,拿到那个分区就够了。好,订单拿出来之后,下一个是。支付。支付表。支付表完事之后是一个评论表,评论表是不是在第二个档上啊,第二个用行为之前的。通过这个案例啊,你能感受到,其实呢,在企业开发中啊,不管你是用户行为过来的数据,还是这个数仓,比如业务数据过来的数据。
07:06
他们最终。为领导做决策。都是需要参考的啊,并不代表说,哎,你从这来的我就不用了啊,怎么怎么样,不是这样的哈,呃,这个。我要拿的是那个评论表是吧,评论表多少评论表是这对吧?啊DWD上评论表,然后呢。拿到分期啊。这比较长。好,那这样的这三张表我们就有了,那下边呢,我们就根据这三张表向这个用户行为啊,这张表里面插入数据啊,那我们来写一下。那首先先是time time,第一个呢,就是这个order or order,然后at。
08:05
好,那这里面它查询的select from就查它来查他。那在这个表里面,我们解决掉前三个。解决掉前三个字段对吧,啊,前三字段,那第一个字段就是这个UIDUID。那从这里面拿的UID就是他对吧,就是。好之后呢,我们要在这里面拿一下这个下单的次数,那下单的次数哪个是。得对它进行放心,对放心。啊行,那得到的就是它。那之后再来下单,让我拿一下那个下单金额,那下单金额这里面哪个是。这个吧,嗯,好,然后来那上。
09:04
就他。拿到的就是这个订单这个啊,那下面呢,你要限定一下这个日期啊日期,那日期的话,它的日期是这DT吧啊DT。那是。DT的等于。2019杠零二杠102型号好,然后这条进行扣八进啊。格BY啊格BY右ID前面都是这个均用函数啊ID。OK,那这样呢,这个time order搞定,那我下面再来。Type下一张表,下一张表呢,就是这个payment。就说。好。嗯。
10:01
OK,那他之后,那我们再来查from这张支付表。OK,那在这个支付表里面,我们要拿到的是支付次数,支付金额,那你要根据这个UID。好,那第一个支付次数,那也就是对他这个表进行抗性抗性。啊。那康心什么射手?再来,然后呢,支付金额,支付金额这里面的啊,懂吗。三。好,然后支付金额拿出来。OK,那么这个表继续玩什么?那外条件这个表里面的字段udp吧,有分距啊。DT等于。
11:02
2019杠零二杠102。OK,改上房吧。可我by ID进行去求好,那第二张表完事之后,下边我们来看第三张表type放在的。听着点。那。那继续拿,那这次呢,查的就是下面这个。他这边。好,那发分表里面,其实我们想要的就是一个评论质数,当然了你要关联一下它的流转ID,那UID再来,那别论这数候,就是看形容一下。得到啊。OK,然后外条件,外条件看一下这张表有个DT对吧,有个DT。
12:03
啊,DT等于。2019杠零二杠1023号。然后来就是ID举手。好,那就是前面这个三张临时表的准备工作你就做完了,你真正在企业开发的时候,你可能一直在准备这些表啊,你是从每一个表里面只取一到两个字段啊,这样大家看到的这个函数会很多啊,其实呢,并不难哈,好,那下面我们来验算的。嗯,既然是分区表,那就是要往这里面插,你看它这块有没有分区,有分区就right,没有就into right这个向在里面唱。啊。PRTF。DT等于。2019杠零二杠102月四号好,那下面查询。
13:05
From。这下边是三张临时表的一个标啊,那上面呢,是具体的字段,那么先来标。Slide。From from第一章是表time。那从这里面,哎,先取第一个字段ID,之后第二个段order。PU下单趁手。第三个这段other。OK,那这张表这三个字段取完之后,剩下的还能取出来数据吗?不能,那就补零啊,补零别忘了补别名,一定要把这边名补上啊,否则的话就忘找不到这个名称啊,或者这个制造。再来一个。
14:04
一车。零啊不灵字段,那这样上面这三个字段是有的,下面这三个字段呢,是没有的啊不零就OK了,好,那这个查完之后那继续用。拼接拼接的话,这时候我就简单了啊,直接把它复制过来。复制过来改了名字,那这个呢,是ta。能变的,那上面这个第一个来,第一个不变啊,第二个五零,第三个五零啊,第四个干掉啊,第五个干掉第六个零是吧,这样的简单好,那之后我们再来下一个。继续复制。好,那这个呢,变成T,然后上面不变,这个干掉,这个干掉,诶不对,这俩得留着,然后这还得五零啊这呢五零这儿干掉你知道吗?对OK啊,真正的要是显示系数宽的哈,看是一条直线拉过去一位一位,对啊,这样是最好的啊好,那这个呢就叫。
15:29
Op。OC啊,OBC啊,这三个表的一个封面,然后有了它之后,那上面这是它啊,我们来填一下就是ID,然后是OC点。Order。那上面说过,你这些合并在一起,它对应的是一行一行所有的结果并没有进行聚合,那你这块就需要对它对。
16:05
上来上。点,然后是order什么。再来上。ABBC点下一个是。好。再来。OBC点。电忘。再来上。高C第二,他们评价。你也行。好,那这样呢,就都连加一起了,然后别忘了要进行格啊。左少半UID啊,这个ID好,那这样呢就差不多了啊,我们可以试一下是吧?啊看看有没有什么问题,没问题,有问题我们再调,那这样呢,先建立一个用户行为宽表。
17:16
好,有了表之后呢,我们向里面去插入数据位置,Time联合。看能不能一遍写成啊。这。看不出啊,有吸引没问题啊,很难得,那这个呢,我们趁着他跑的时候啊,简单回顾一下,其实呢,要写这种行为宽表啊,你看首先要分析它这里面的这个字段到时来源于哪几张表啊,初步一分析来于三张表,那好,那接下来你要做的事情就是把这三张表都给我准备好,放在这儿。啊,然后开始写,那记住那并不是说啊,这些字段你都要去看这些表,哪个字段来源于哪张表,你就通过这个tag的方式把它先处理掉啊,一张表处理一个字段或者两个字段,他们都处理完之后,接下来开始写这个主义业务,那写主页务的时候,把这个多个临时表把它的页面啊联合在一起,然后这个slide的过程当中,其实就是对这个unit尼的结果进行一个聚合。
18:27
啊,聚分就完了啊,就这一个过程啊,看着比较高。行,那这边呢,跑完了,跑完之后呢,我们查一下结果来是吧。听到没?有很多数据对吧,啊,一共1000多个啊数据,那这样有这个数据就OK了,那我下来继续啊没完,那刚才呢是把这个。
19:03
呃,只是把2月10号的数据做完了,那真正在企业开发中还需要脚本啊,还需要脚本啊,那现在呢,我们把这个脚本呢,直接就拿过来了啊,脚本和底步。五步对吧,第一步井号叹号,第第二步变量定义,定义变量,第三步时间,第4CIRCLE啊circle里面要做两件事。遇到表就在前面加上遇到日期把它换成对,第五执行,对,就这样啊。那点清晰,然后是DWS。BDOK,那完事之后我们DWS。DB。2019杠零二杠幺幺,这找一下这个数据。
20:02
之后呢,这边在查询的时候加一段时间。对吧。来吧。这样呢,就是一个完整的一个开发过程,真正在企业开发的时候,你就叫去开发,那么其实呢,你还缺一波,缺一波什么呢。大家有没有想过,我这个写完了它对不对?是一个问题吧,嗯,那这时候呢,要有一个标准,严格的测试啊,测试要照一些数据,比如说我就照1000条,那这1000条,而且这个数据值是什么样的,你是心里要有数的啊,甚至说1000条可能太多,我说到100条适应一下,那这里面算出的值也OK,那样这才是真正的一个开发过程,你在企业的时候一定要撤的啊,你别这边写完时后了,咔,给给家算经理了。
21:03
下面你一看也不对,来来回回几次你就完蛋了。好,那这来说2SD号的数据引导过来了哈,OK,那这整个就是DW层用户行为宽片非常非常重要哈。
我来说两句