00:00
好,那接下来呢,咱们继续啊,嗯,上午呢,截止到上午咱们是把DWD和一直到DM层全部都搞定了,对吧,都搞定了,那下来我们看DWM层,在我讲完DWD层之后呢,带着大家做了一个回顾。啊,做了一个回顾对吧?呃,那为什么呢,我们来看一下,其实在跟离线输仓也一样,也一样,大家要注意一下,无论是离线数仓还是这个实时输仓,那你要清楚一件事情,什么事呢?像我们的ods层以及。DWDDM层。然后呢到离线,离线数仓呢是DWS对吧,而实时数仓呢是DWM,然后呢DWS。啊,那离线输仓呢,是DWS和那个什么DWT对吧,然后呢,大家都有这个ADS,这个没问题吧,分层啊这个S写的感觉有点骚啊好。
01:05
那你要注意一下,为什么我在讲完DWB之后呢,要带大家去回顾一下呢,是因为这样这两层,这两层无论在离线输仓还是在实时出仓,其实它跟业务的相关性怎么样。跟最终我们要计算这个业务啊,所谓的业务呢,就是需求对吧,跟我们最终所要计算的这个业务或者需求关系大吗?大家想一下。关系大不大呀?小啊对,其实呢,它关系不大。关系根本不大对吧?啊,那因为他呢是跟业务需求,你无论要做什么需求,求什么指标,那我的ods永远都是保持数据原样不变。
02:13
对吧,你看这个弹幕向着奇奇怪怪的方向发展了啊,开始说不大不大,有个来个小,然后又来个千啊,是不是有点过分了。那如果说没听过课的,你要这个时候萌萌进来了啊,或者说萌萌进来了,看看你们发的弹幕。看看你们看看你们发的弹幕,就是想着这都一帮什么人啊,对吧,奇奇怪怪的是吧,啊呃,那这边呢,我们要聊的是它跟需求和这个业务呢,相关性不大对吧,无论怎么样都要去做,这要注意一下离线也是啊,你想想看,离线也这样,而从。我们DWM啊,当然我们现在DWM。
03:00
DWM呢,现在还没讲。啊,要讲对吧,呃,那我们要知道DWM呢是DWD。到D到蓝色中间共同的部分抽取出来的。对吧,以及DWS和DWT一样的,对吧,它呢是为最终的ADS层服务的啊,为了更方便最终取出这些指标来定的,所以他们之间呢,跟业务相关性非常高,对吧,而ADS那就不了跟什么业务相关性的,它就是需求。ADS就等于是需求对吧,所以你要把数仓啊分成这这这样来看啊,前面ods dwd它呢,跟业务相关性不高,那从DWM咱们实时收仓对吧?呃,然后到我们的离线数仓。离线出仓。对吧,那我们要知道它呢,关系非常大。
04:03
对吧,无论是什么样子的都非常大的,这个要知道一下啊,所以你要分开来看啊,好,那接下来呢,我们就具体的来看这个内容。啊呃,它呢,拆成了独立的卡不卡的一个主题,对吧?然后呢,我们要考虑计算什么指标了,因为跟这个指标的相关性非常高,对吧?好,那接下来我们需求整理,呃,那需求整理呢,注意我是把这个DWS和DWM一块来看的,首先我们这边一直了解到DWM是。DWD到DWS中间的什么?复用的部分。我们给它抽取出来了,对不对,没问题吧,大家还有这个印象吗。
05:05
有的是不是好,那你想啊,关于DWM层建表,建哪些表,怎么去建表,这些东西我们是不是要看一下DWS。由DWS来决定我们这个数据,这个表应该怎么建,这个有没有问题?没问题吧啊,所以你看啊,我在这一块带着大家分析DWM层的时候呢,我是把DWS也拿过来了啊,因为只有这样的话,我们才能更清楚一些啊李总你这个一有点奇怪啊,你看大家都在搞怪,本来发的是一有人就开始发竖杠,发的竖杠就开始发斜杠了。那还长歪了呢啊。
06:01
对吧,好,那我们看啊,首先我们这是这个这样看啊。因为我们之前了解过,在离线数当当中DWS层对吧,DWS层呢。是来自于纬度。来自于维度是不是?对吧,所以你看啊,访客主题,商品主题,地区主题,以及在离线上当当中我们没做的这个关键词主题,我们也加了一个,对吧,这都是维度吧。DS是不是来自于维度,这个大家还记得吧,在那个维度建模当中啊,来自于这个维度对吧?好,那我们看啊,这个呢是ADS层的需求。注意这样看啊,这样横向这样看。这个呢是DWS。DWS,而这样看需求指标,这个是ADS。没问题吧,因为我们的这个DWS就是为了出最终的指标。
07:06
到这一步有没有问题?这一块OK吧,好。那我们看啊,好,还有一个问题我要问大家。呃,那这边呢,我们直接到DWS了啊,这边突然想问一个问题,我们离线输当有个DWT,为什么。实时出差没有这个。如果有这个的话,我们要一块来分析啊,为什么我们实时数仓没有DWT。
08:13
卡夫卡没数据。因为实时对了啊,对了对了对了,放离线就做了,因为D到T呢是。历史的。剧集。对吧,它是一个累积结果啊,它是一个累积结果,所以实时数当当中不需要这样的一个数据,不需要对吧,你可以去离线数当去去拿就行了,对吧,这个要注意一下啊好,那回到我们刚才所说的这个横向碳,它是属于DWS。纵向这样看,它是属于ADS,那这个呢,来自于我们维度建模当中,你去了解到的事情,对吧?好,那我们看啊这个地方,比方说我们举个例子,有一个什么呢?UV。
09:11
有一个这个UV数据对吧?呃,那UV数据,那我们想UV数据需要怎么去做呀,怎么求UV,什么叫UV啊。UV一般是指dau啊。日活。对吧,那这个很明显要拿着我们数据做一个什么去重啊,就要按照天对mid做去重,对不对。我们是不是要按天对mid做去重啊,就是我们每天只要一个的第一条数据对吧。我只要第一条这个事情呢,大家在Spark streaming也做过啊,但是拿的是red去做的,但是如果弗林格当中呢,我们有状态,我们就可以用状态来做。
10:00
好,那这个呢,明显的是要对DWD层的数据做一个加工。对吧,好,那除了访客当中咱们要求UV,那比方说地区要不要求UV,这个维度可不可以求UV啊。还有可能有其他的维度,是不是也可以求UV,那是不是,如果说我们不做DWM能不能完成这个需求可以对吧?那每一个主题宽表都自己对这个数据做一个什么。做一个驱虫呗。是不是每一次见宽表之后,我们自己做这个数据的什么去重?对吧,这就我们之前说的,那你访客地区或者还有其他的主题要都要用到UV的时候,那这个UV的驱虫是不是做了三次。是不是?能不能理解这个事儿?
11:03
OK吗?对吧,也就是说我们要对这个数据要进行一个加工。啊,要进行大家的弹幕,越来越奇怪了啊。好,我们要对这个数据呢,要做一个加工,所以我们现在就说了DWM层实际上是DWD到DWS的中间,把它抽取出来的一部分,对吧,抽取出来的是谁呢?公用的一部分啊,我们把公用的一部分抽取出来,但是问题刚才我们研究的就是说,那我们如何去找这个公用的这一部分数据。对吧,啊,那刚才给大家演示了,也就是说先呢,你不用管这个DWM啊,你不用不用关心这个,你先不用关心这个,最后一列呢,你先先放在这儿对吧,然后接下来你就把这个DWS要做的事情,把它列出来,算哪些指标对吧?每一个主题宽表算哪些指标,把它列出来,列出来以后在这里边找重复项。
12:09
啊,找重复项,或者说你要看一看这个指标,要不要对数据进行加工。要不要对数据进行加工,对吧?啊,要不要对数据进行加工,如果要加工,那你就形成DWM层,那如果说都是这样子的什么你列出来都是这种直接可求,直接可求,直接可求对吧,直接可求啊类似于这样的东西。类似于这样子的对吧,那我们都是直接来自于DWD就好了,而在你计算分析计算的时候,如果他对于DWD的这个主题里边数据事实数据要经过加工对吧,你看这个订单宽表,支付宽表都要经过加工的啊,要做聚容要建宽表对吧,那这个都属于要加工的,那像这些东西呢,我们都把它称为叫DWM。
13:05
啊,都是这个DWM层。OK吗?能理,现在能理解了整个DWM层的一个来源了啊,假如说如果在公司当中要你去做这个事儿,你也会这样去处理啊,也要这样去处理。知道吧。啊,飞虎你在干嘛?你这个发的就是你们的弹幕,真的越来越离谱了。奇奇怪怪的啊,什么括号都来了。括号都来了,脾气来了,开始啊。开始皮起来了啊,皮的同学呢,统一拖出去枪毙十分钟好吧?离线可以加呀,可以加,就是你去看那个架构啊,你就看有的架构的时候,他也用这个DW。
14:00
M层有的,离线也有啊也有。啊好,那最终呢,我们就敲定了,我们在这个DWM层当中呢,做这么几件事情,第一个UV去重的UV,第二个叫跳出,我们最终要算跳出率,那跳出率呢,肯定是跳出的次数除以总次数吧,才能得到一个什么率,对吧?啊,才能得到一个氯啊,所以呢,我们要对这个数据做加工,找到跳出明细啊它呢要加工DW2层,然后下来下单。宽表支付宽表对吧,那所以在当前的文档当中,我们现在再跟大家说啊,我们有四张表要做。UV跳出明细订单款表,支付款表就来自于我们这张图里边的对吧,而且赫然一个大字两个大字啊。练习大家就懂什么意思了啊,这个需求是要给自己去做的,就是我们把三个讲完,这个自己做。
15:06
啊,最后一个需求是自己写的,也要尝试自己写一写,而且你写的时候一定注意这里边代码给了,但是呢,你不要直接就去看代码,一定要自己先想一想啊,先想一想怎么去写,OK吧,好,这是我们DWM层它整个的一个。梳理对吧,我们要做什么事啊,先搞清楚。啊,也就是说最终呢,我们要四张表,而且呢,其实这两张表呢,来自于行为数据。这两张表呢,来自于业务数据啊,当然这里面最难的是他。订单款表最复杂的也是它,这个就是我们所说的八张表做照应的一个操作。啊,这是八张表做招引的一个操作,就这张我提前给大家预告一下,这个需求呢,我们也要写一天的时间,就这一个需求,我们要一天甚至多一点的时间才能完成,这是我们整个项目当中第二个重难点在这,前面两个都比较简单一点啊,前面两个都不那么难啊,这个订单款表,第三张表这个是最难的。
16:14
啊,最难的,当然它是最简单的,所以把最简单的。留给大家自己了,订单永远最难的,你说对了啊,在这种电商公司当中,订单肯定这个需求,有关订单的需求永远最难的啊。
我来说两句