00:00
我们开始学习这个弗的一个实时数仓啊,那整个的东西呢,我们来看一下啊,在我们的资料当中,已经昨天给大家发下去了啊。那我们总共呢,有这四个文件夹,跟之前还是一样的,第一个笔记要资料,资料呢,到时候我们用到的时候再跟大家去说,第三个代码,代码里边呢,一般不放啊,就算我们是线下授课的时候,我也会把这个代码放到。Get get上面啊,当然不用getu了,我们用get e,因为getu的话,它是外网,就是有时候速度会比较慢,那视频放在这里边,那视频呢是分上午跟下午各一次,我上传到QQ群里边之之后呢,晚上结束了,我也会把这个视频放到我们的网盘一份,网盘的地址也给大家了,到时候我再重新给大家共享一个,因为那个我记得好像共享的是30天的,我给大家重新再共享一个永久的啊,然后每天呢,是这样子啊,上午结束之后,我会把视频放到QQ群,下午正常放到QQ群,因为有的同学没有这个网盘的会员,下载比较慢,从QQ群呢会快一点,微信呢传不了这个大文件啊,是这样子的,好,那在整个课程当中,我们主要分为。
01:22
这些个文档啊,那么七个对吧,那人就说不对,八个,但这个文档我只是拎出来而已,实际上在我们采集层当中,这块也是有的啊,它包含于这个里边,那第一个呢,采集其实也就是说我们的ods层。是我们的ods层要注意一下啊,然后接下来第二个叫DWD,实际上呢,在离线数当当中,大家也知道DWD呢,在这一层当中分为了两块内容,一个是DWD,还有一个叫DM层,对吧,分为主要是针对于这个业务数据而言的啊,那如果说行为数据很简单,我们就都是DWD层,把它数据分开就好了,那对于业务数据而言。
02:09
咱们DWD里边放的是事实数据,而dim放的是维度数据,但是大家仔细想一下发现其实在离线书仓当中,我们。分与不分的有没有大的必要性啊,大家想一下。对吧,给一点时间可以思考一下,在离线数当当中,咱们DWD跟DM分与不分,其实标性不高。对吧,啊,那是因为我们都是放到have里边的啊,那在这个当中呢,我们也一样的,也叫DW层,主要是数据的一个明细层。好,接下来有一个点就不太一样了,哪个点呢,就是关于我们看到这个叫DWM。在离线数仓当中,实际上我们并没有这个DWM层。
03:03
对吧,那这个DW2层干什么事呢?稍微做一点解释,大家要清楚了,但是具体的我们现在不聊,到这个文档当中,我们再去说,我们主要说这一层它是怎么来的啊,为什么会有这一层,首先我们正常的在离线数当当中,大家呢是从这个DWD。到DWS。对吧,是没有问题的,好,但是这个当中呢,会存在一个这样的事情,什么事呢,我给大家说一下啊,那大家想啊,DWS层咱们是一个宽表对不对。哎,它是一个宽表,OK,呃,那么这个时候呢,就说明它的数据交叉啊,是这样子的,因为DWD呢是明细层,比方说这边。有很多DWD或者DM的表,然后接下来呢,到我们DWS层有这个宽表。
04:00
啊,既然是宽表,说明我一张表数据来源于多张表。啊,他可能要用到这几张表来完成它的一个构建。好,那这张宽表是不是同样的也有可能会用到这个表啊,比方说我举个例子,哎,这两张表呢,是够用的。好,那这张宽表呢,比方说用到这五张表,这是完全有可能的,大家想一下是不是。对吧,那那么在这个过程当中,这两张表是不是被共用了。啊,就是可能好几个DWS的表呢,都需要用到这个点。那么这个时候会有一个什么样的现象呢?有没有可能这个数据是这样子的,哎,这个呢,读过来数据要做一次加工好,那这个表从这条线引出来也要做一个加工。啊,它不是直接通过join或者什么样的方式放到我们宽表当中,我们可能要对DWB层的表上做一个加工。
05:09
那如果大家想啊,这两个加工的方式,也就是说对这张表的处理方式,如果它俩相同。会怎么样,大家可以思考一下,可以想一想对不对啊,那如果我们你也知道,如果这两个动作是完全一样的,那我们就相当于做了重复性的工作了啊,所以这个也就是我们中间DWM层的一个来源。嗯,这是我们DWM层的一个来源。好吧,这要清楚啊,也就是说它是首先M呢是me的叫中间层,介于明细数据和服务数据中间的叫中间层,它是提取了我们对于DWD层某些表共同的加工操作。
06:06
啊,这一块我相信大家应该比较清楚对不对啊好,这是DWM层,那接下来DWS层比较简单了,按照维度建模当中,我们呢是维度数据形成了DWS层的宽表,为了方便后续查询的啊好,那这是我们的DWS啊,那最后呢,看到在这个当中有一个框架叫click house,也就是说它是用来存储我们最后的DWS层的数据。啊,那前面什么DWDDWM还有ods存在哪到后面呢,我们再去聊这个事,对吧,大家呢也可以,我相当于留一个悬念,大家呢也可以去思考一下,哎,如果在企业当中,我们要搭建那种实时数仓。那么我这个OD s DW d d wm等等这些数据应该存到哪呢?对吧,才能保证我们这个实时这个点呢?啊可以思考一下啊,可以思考一下,这个时候呢,也可以打在弹幕里边啊,等会儿呢,我可以去看一下好吧,呃,那第六个文档呢,讲的数据的可视化,也就是说最终呢,我们当前这个需求啊,我给大家看一下。
07:20
最后。我们当前这个项目做完之后呢,我们看到的就是这样的一张图,这其实就是我们我从项目当中最后做完的图截下来的一个。我从项目做完截下来一个图。啊,就是这是我们最后要形成这样的一个效果啊,大家要清楚。这是可视化,当然了,是我们第六个文档当中我们要去解决的问题。啊,这个就比较简单了啊,说句话主要写一些接口之后呢,是关于Li,它整个的一个优化。啊,关于弗林格优化,那这边呢,还有一个弗林CDC,弗林CDC呢,其实在周三的时候,周三咱们不是正好休息嘛,大家自习对吧,休息周三下午呢,我花了下一下午的时间,专门录制了一个视频。
08:10
啊,专门录制了一个视频,应该下周会发到这个公众号里边啊,最近可能录制视频比较多,我一边上课,可能晚上还得自己去录一个视频啊好,那这个弗林CDC大家可以看我我们课堂上也会讲啊,但是我录的那个呢,是2.0的。2.0的,注意2.0呢,只有在这个01:13。版本的fli才可以用,要不然呢,他会多多少少有一些bug,就算你能用起来有些bug,所以我那个专门的视频是基于这个来说的,而且更重要的是说了一下2.0当中的一些,它更新的一些点啊,更新的一些内容是这意思啊,好,这个是我们当前整个实时数仓当中要学习的东西啊,那这个大家晚自习啊,由于是线上课,晚自习呢,就不像坐在一块,可能你一个人在家里,当然有室友的还好一点,一定要敲代码,最好呢,这个代码啊要敲三遍点。
09:10
啊,要敲三遍啊,那三遍怎么敲,我得告诉你第一遍啊,当然有的同学我说的是绝大部分同学啊,就是说对于大部分同学而言,三遍理论,那有的同学可能我两遍就够了,一遍就够了,当然我也会说三遍怎么敲,我需要跟大家说一下第一遍。第一遍啊,先自己整理思路,注意一定要先整理思路,不要上来直接对着我给的代码去敲啊,有的同学呢,Get上一拉下来直接呢照抄没有意义,一定要先想一想我上课是怎么讲这个代码的,然后呢,整理思路。这个时候可以。对着代码敲。啊。这个时候第一遍主要是对着代码敲,对吧,有的人不熟嘛,代码敲的少,之前呢,很少敲代码啊,如果说操作Linux没有问题,但是一到说敲代码,感觉这个东西跟你不熟对吧,你不认识他,他不认识你,这个不行,好这是第一遍第二遍。
10:13
啊,第二遍我们写的代码当中,那尽量的会把注释呢写多一些,第二遍呢,你要干什么呢,保留注释。就是把代码删了,把你之前写的代码删了,把注释留着。啊,这样吧,我把它写下来啊,在这个地方第一遍是整理,先整理思路。啊,然后呢,去对着。代码敲啊,你可以对着代码敲,没有问题啊,那第二遍我刚说了。要怎么做把注释保留,保留注释?啊,然后呢,第二遍就不看代码了,对着这个注释敲。啊,对着注释去敲代码,那第三遍就什么都不要。
11:02
自己敲,纯自己敲。啊,当然有同学说。我呢,可能学的比较好一点,对吧,你可以这样第一遍的时候。整理思路。然后呢,对着注释桥。整理思路之后,对着朱肉桥第二遍。什么都不要自己敲好,有的同学学的再好一点,可能我一遍就够了,对吧,那也是一样的整理思路,然后。自己敲,自己想一下自己属于哪一个档的,对吧,平时敲代码的感觉会告诉你,你应该怎么去敲这个代码。啊,晚上的时候一定要,因为大家其实第一这个项目啊。代码量比较大,还记得之前Spark swimming,军逸老师给大家上的Spark swimming那个代码,我不知道大家有没有敲完,可能有同学没敲完啊,对吧,可能有同学呢,敲了一点啊,那这个时候呢,一定要注意我们当前那个代码,你看啊,嗯,军英老师上课呢,好像是上了那个六天课还是七天课吧,除了中间的ES那个代码敲了六七天,咱们这个项目呢,也就十二天。
12:20
也就时间是两倍,时间是两倍,但是我要告诉你的是,代码量是四到五倍。代码量绝对是之前那个项目的四到五倍,所以说晚自习的时间一定要利用起来,效率要高,要不然的话做不完。要不做完好,那家来我们就聊一聊整理思路这个问题,整理思路呢,是这样子的啊,就尽量的画图,画逻辑图或者叫流程图,一定要画一画,对吧,大家呢,不都有这样的工具吗?有。这个笑脸这个工具对吧,大家手上都有,然后呢,你用这个去画图。好,自己整理,如果说你觉得这个太慢了,可以在纸上去换,然后对着去敲代码啊,是这个意思,好,这是我们说的,这是我们整体的一个课程介绍,以及接下来代码怎么去敲啊,分三种啊,分三种啊,绝大的同学呢,按第一个去走啊,当然我知道有的人说三遍太多了,敲不完。
13:19
一定要经历这个痛苦。刚开始是痛苦的,代码这个东西啊,就是代码量上去了就好了啊,真的是代码量上去就好了。
我来说两句