00:01
好,那我们接下来呢,就开始我们的这个第二层的这个处理啊,就是现在我们已经把。从你的ods啊,把这个数据呢,处理到这个DWD的啊,就做了一个采集和分流啊,那这个接下来我们做的就是。DWD啊,到这个DWS层啊,数据的一个处理啊,行,那我还是先把这个文档打开啊。OK,打开以后呢,我们还是先把它折起来啊,折起来以后呢,我们先看一下这个整体要讲的东西啊呃,那首先呢,我们先去给大家去介绍一下,就是DWD到这个DWS,我们主要要做什么事情。对吧,哎,主要要做什么事情啊,然后呢,接下来就是我们会围绕着具体要做的这个任务,然后呢,还是展开这个工作啊,主要也是两方面啊,我们要做一个做两个宽表。一个是这个日活宽表,一个是这个订单业务的宽表。啊,这是给大家举的两个例子啊,并不是说我们整个实施任务呢,就做这两个对吧,我们是举了这两个例子啊,我们希望大家能够从我们课堂上讲的这两个例子啊为基准,然后呢,能够自己去扩展出来别的啊,能够自己去完成别的。
01:10
对吧。行来,那我们先来去介绍一下这个DWD到这个DWS城数据处理的一个概要啊,呃,还是给了一个图啊,我们打开来看一看吧。好呃,现在啊,我们的DWD层的话呢,已经都处理好了。对吧,我们把这个数据呢,放到了这个卡不卡中啊,然后在这个卡不卡中里面,我们是怎么放的数据呢?首先啊,我们有两部分的数据啊,第一部分呢,就是我们的。叫什么呀,叫你这个日志的数据啊,我们是按照你的这个日志的什么分类,然后呢,放到了什么不同的这个topic里面的。对吧,好,然后呢,还有一部分数据呢,就是我们的这个事实数据啊,当然呢,我们也是按照你这个表呢,做了一个拆分啊,拆分到了什么不同的这个topic里面。理解吧,这是现在我们已经拥有了这个数据了啊好,那你有了这个数据以后呢,接下来我们就要去分析一下啊,这个数据我现在能不能够直接去使用。
02:08
就是比如说啊,我现在就想从你这个数据上面的去出结果了啊,出结果就出出什么,出各种分析了啊,出各种指标了。啊,我能不能去用。对吧,大家去想想这个事儿啊。嗯。就现在我想让你统计一下,统计什么呢?就是按照这个用户的什么性别啊,按照用户性别帮我去统计一下今日这个订单的一个什么总额,就是男的下了多少订单,然后女的下了多少订单。对吧,我想让你统计这个去统计这个需求。大家看看你好不好去统计。首先如果你要去统计这个订单的话,那你肯定是什么用到你的这个订单表对不对,那你要找到你的什么订单的这个topic,然后从他里面去拿数据。是吧,那你这个拿出来数据以后呢,你想去统计的是什么呀,统计的是订单的一个总额,而且呢,我要什么分分性别去统计,但是呢,其实我们这个订单数据里面的话呢,其实并没有什么,并没有这个数据,呃什么并没有说并没有这个什么用户的什么性格性别数据,就说白了,你没有这个维度数据。
03:14
那你还没法统计。对吧,那你觉得什么去想方设法去关联什么,关联我们的dim层,就是从你的维度层,然后呢,把你的这个用户的什么维度数据呢,给它拿出来。拿出来以后呢,诶,他们两个做一个什么关联。那关联好以后的话呢,我就会得到什么,得到一个诶相对什么比较完整的一个数据了,这个数据里面有你的订单信息是吧,有你的订单信息,然后呢,还会有什么呀,还会有你这个什么用户的什么维度信息啊,当然了你可以什么关联什么这个地区的什么信息,就是把这个地址的什么维度信息都给他什么关联进来。好,那我都把它这个关联好以后呢,诶,那我接下来我就要什么基于这个数据呢,去做这个分析了。对吧,比如说我现在想去统计,你怎么统计啊。你在整个这个环节中,你好不好去做统计。
04:00
对吧,你要去想这些事情,如果说你觉得诶我能接受,我可以什么,在我整个这个Spark stream处理过程中,把这个相应的结果给他统计出来,好,那我觉得你就会什么,直接从这一层去出你的结果就可以了。对吧,但其实啊,你这个仔细一分析的话,你发现你要从这一层出结果,那你要做的事情就太多了,而且你要重复性去做的事情太多了。你比如说啊,首先你从这一层出结果,那么要把所有的这个什么呀,关联操作我们都写到这一层,你关联完成以后呢,你要怎么去出结果。对吧,你要出结果,那你现在你出的是一个什么订单的一个什么总额,对吧,假如说呢,你这个结果出出来以后呢,我还想让你再去出一个什么,也是订单相关的一个什么需求,对吧?但是呢,不是求订单总额的,我求一个别的指标,那你同样的工作你还得再做一次,你要从它里面去拿数据,对吧?然后呢,从关联你的什么维度数据,然后呢,再把这个数据关联出来以后呢,我再去做,诶另外一个什么指标的统计。那假如说就类似于这个订单的这个什么指标,我们有N多个。
05:03
那你想想你怎么做呀?对不对。啊,所以说你就发现啊,我们直接从这一层出结果呢,其实是还不太合适的,因为它的数据呢还不太。详细就是还是不是什么特别的细的啊,他还是什么有点分散的,我们还是希望能够什么进一步把这个数据呢,处理的更加的什么呀,明细一点啊,更加明细一点。把它做成一个什么,这个宽表明细。那听到吧,就相当于我们要把你将来统计所有用到的这个东西呢,我都给你什么提前整合到一起,就提前关联到一起,我把关联好的结果呢,我先不着急去出你的什么指标,我先把它存储起来,我存储起来以后呢,将来我所有的指标呢,我都可以什么基于我提前存好了这个数据,然后呢去出这样的话呢,这个事情我就只需要做一次就行了,我不需要这么反复的去做。理解吧,啊,所以说你这么一分析啊,其实你就发现这个过程你直接出指标还是不太合理的啊,因此的话呢,我们就有了,诶下一层的处理就是DWD到你的DWS层的一个处理。
06:08
啊,来这个是我们的DM层对吧,后面是我们的DWS层。OK吧,行,那我们在这个整个处理过程中,我们要做什么事呢?啊,其实我们先要给大家去说一下这个DWS层我们要做什么事啊,这一层的话呢,我们目前对它的定位就是一个宽表啊,就是一个什么明细宽表层,这个啥叫宽表大家应该都知道啊,就是我有一个表,这个表里面的话字段特别特别多。对吧,字段特别的多,那不就很宽吗。对不对啊,当然你们也听过什么高表对不对啊,啥叫这个高表呢?高表就是我有一个表,这个表里面的话呢,数据量特别多,对吧,你就看一下这个表是很高的啊,所一些这个话语你要知道啊,快表成,那就相当于我要把你的数据呢,诶能够关联的,我提前什么都给它什么关联到一起,对吧,就将来我统计我所需要的东西,我都全部都是什么关联到一起,关联到一起以后呢,最后呢,我把它怎么存到一个表中。
07:02
这个表中拥有我将来所有想要用的东西,就是我在这做分析统计的时候,我想要用的字段,它都有。对吧,那你提前把这个数据处理好以后,我们就可以去做分析了。能明白吧,好,而且的话呢,我们如果说把这个数据处理好以后,我们再来做分析的时候呢,我们是可以借助于一些什么呀。功能非常强大的分析工具来去做的,对吧,比你这个什么Spark stream强大很多了,你这个Spark其实没有太大的一个分析能力,你只能什么自己一点点写啊,写什么写代码来去分析。是吧,或者什么写成写什么鞋子Spark so来去做分析。你这个事情其实做起来就很很麻烦。但如果说我们能够把这个数据呢,提前处理好,处理好以后呢,我们扔给这个一个就是拥有强大分析能力的o lap来去做,那就很合适了。听懂了吧,所以说啊,我们现在要做的事情就是从你的DWD层,然后呢,再去做进一步的处理,然后呢,处理到我们的DWS层,我们叫宽表层。
08:04
好,那么当然我们在做这个宽表层的时候,我们就得想明白我要做哪些宽表,因为你的宽表它一定是。跟随你的业务来的,或者什么跟随你的需求来的,你将来想要统计什么,那我就要给你准备什么数据。对吧,如果说你有些东西你根本就不会统计,你压根就不会统计,那我就没必要去给你准备这个数据。因为我把数据辛辛苦苦的从你的前面啊,一层一层的把它拿过来了,对吧,我经过了什么重重的处理,我把它拿过来了,然后给你存进来了,存进来以后你还不用。啊,先不说我这个中途我费了多少事儿,那我最后把数据存到你这个o lap中,你存储你也是有代价的,能明白吧,所以说呢,我们到了这个宽表层的时候呢,我们就不会什么非常笼统的说,哎,我要把什么数据处理过来,不是的,而是我们要什么结合上你将来所要做的分析,结合上你将来将来学校什么做了统计,然后呢,去出这个款表。
09:00
啊,就是以你的需求作为驱动了。能明白吧,啊,就跟你们之前那个,呃,就是你们之前DS和那个什么,呃,ADS应该都差不多啊,你们是有这个聚合的,这是轻度的聚合,然后这是一个什么一天的聚合,对不对,那你为什么要做做做聚合呀。这个聚合的操作是不是也是以你们的这个将来要分析的这个指标去作为驱动的呀,我想要去分析什么,那我分析的时候,我希望你的哪些表示能够聚合到一起的。对吧,你要这么去做,如果说你没有一个非常明确的一个什么这个分析的指标,其实你也不知道哪些数据要往一起搁,哪些数据要聚合到一起。明白吧,所以说到了这一层以后呢,我们就要严格的按照你将来所要做的事儿来去展开了。好,那我们,呃,将来就要做两个啊,一个是你的日活相关的统计,一个是你的订单相关的统计,所以说我们需要出两个宽表,一个是你的日活宽表,一个是你的订单款表。这里面放的就是跟我日活计所有相关的这个数据字段都把它放进去,这里面放的是将来我订单统计的时候,所有用到的什么数据字段给它放进去。
10:07
好,当然我们课堂上给大家去完成这两个,那我觉得你下去以后呢,你实际上是可以考虑,诶这个图怎么。这他连到一起来来就先不看它啊,就你下去以后呢,你实际上你可以考虑诶,我能不能自已再去写一个其他的宽表,对吧,比如说我自己给自己安排一个任务啊,我想做一个什么评论的对吧,什么加购的啊,收藏的。对吧,你可以自己去什么做一下,然后把这个宽表给它做出来,然后呢,你自己去做一些这个什么指标,然后去统计一下啊,我觉得都可以。好吧,我觉得都可以啊,行,呃,那我们想要去出这个宽表的话,那你的数据肯定是从你的DWD层来的,那这个数据怎么过来呢?我们依旧是采用这个Spark streaming。能听到吧,所以说我们要从你的Spark streaming中,然后呢,呃,把数据呢,从它里面然后出出来,然后给到我这个olp中,那么在这个出这个数据的过程中呢。
11:02
注意啊,你在出这个数据的过程中,因为你从你的每一个注意了啊,从你的每一个主题中拿出来数据,要么是你的日志数据,要么是你的事实数据,对吧,就相当于我这个流中,我流动的都是你的日志数据和你的事实数据。但是我们最后这个统计的时候呢,我是需要用到你的维度数据的,那你的维度数据呢,在你的RA中,所以说呢,你在整个过程中呢,我们就要去到你的RA中去关联一下你的维度。对吧,把这个该要的维度呢,都给它什么关联进来,关联进来以后呢,就相当于把我的一条什么呀,比如说假设我的页面访问数据,我关联上我的各种维度,对吧,各种维度一关联,你看这个形成一个什么宽表了,对不对,然后呢,再把它们写到我的,诶这个这个oledp里面。对吧,所以说我们关联上你的维度,然后呢,呃,这这两个箭头有点反了啊,到时候改一改啊。对吧。把这个数据呢,给他什么出出来。能看到吧,就大体的一个处理概要,就是数据要从你的DW层,然后呢,再次经过一个处理,然后呢,我们需要把关联的维度给它关联上,然后最后呢,写到你的OLED中啊,大体的这样的一个流程,但实际上的话呢,在这个整个过程中的话呢,我们不仅仅会涉及到你这个维度的关联,其实这里面还会有一些什么复杂的处理。
12:18
啊,比如简单提一下啊。这个假如说我们要去做这个日活了,对吧,那你再去做这个日活的时候。大家想想我们需要用到什么东西?做日活的时候。你拿什么来统计日活呢?我们是不是可以通通过你的页面访问就可以来统计你的日活了吧,对吧,我就看一下你今天有哪些人访问我的页面了,只要你有一个人访问了,那我就认为今天日活人数是有一个的,两个人访问日活人数是两个,三个人访问日活人数是三个。对吧,那我就只能通过你的页面访问日志来去统计,但是你再仔细分析一下,你的页面访问里面记录的是我的一个用户对你当前这个平台所有的一个访问记录,那如果说我一个人呢,对你今天这个平台的访问了十次,那你说你在统计日活的时候,你统计几次呢?
13:08
你是不是只需要统计一次就够了呀,同学们?那你要统计一次,但是我确确实实这里面我是有什么十十条什么十条数据的。对吧,那我怎么能够把你的十条数据给它处理成一条。是不是,那这个你想我们就会涉及到什么驱虫的一些操作。对吧,驱虫操作。好,那比如说再放到这我们的订单款表,那你的订单款表里面,我们最核心的订单款表应该就是我们跟订单相关的应该就是你的order info,你的订单表和你的order detail,就是订单详情表。那这两个表的话呢,我们都是从你的topic过来的,对吧,都是你的事实数据,就相当于你有两个流,一个是你的订单的流,一个是你的订单明细的流,那你这两个流过来以后,你最后要把它整合成一个宽表,那你就需要把这两个流去做一个什么关联操作。对吧,那流跟流的话,那我们就什么使用这个装引操作,所以说这个过程中我们会涉及到一个双流的一个什么装引,就是两个流啊,进行这个装引操作。
14:07
对不对啊,所以这里面其实还有很多事情要做啊,当然呢,我就没有在这个图里面给大家画出来啊,因为这个我们只是一个处理的一个什么概要,对吧,就大概让你知道一下我的数据是怎么流动的。啊,是怎么从上一层到下一层的啊,你把这个事情想明白,然后我们具体的工作啊,就你这个日活里面我们要做什么事情,你的订单宽表里面要做什么事,那我们就放到这个,诶具体的任务中再来去做分析了,你该去重去重对吧,你该关联关联,然后你该招应招应。反正最后我要的效果就是把宽表给我做出来,做出来以后我就可以基于这个宽表做各种各样的分析了。好吧,同学们,这是我们DWD到DS层它的一个处理概要。明白了吧,好。呃,下面有这个文字的描述啊,大家可以什么自己去看一看啊,我就不再多提了啊行。
我来说两句