00:00
好,那接下来呢,我们进入DWS层的一个学习。聚合草。对吧?啊呃,DWD呢,是数据明细还是一行一行的保留最原始的这个字段啊,当然你可以把你觉得不用的字段给它删掉,如果你把握不住,你就都保留我们的字段就好了,对吧?呃,那到了DWS呢,为了出最终的一个指标,我们很明显要把数据呢做一个聚合。呃,在离线书仓里边,咱们也是这样,还记得在离线数仓当中呢,咱们所做的。聚合时间是多少吗?按照多长时间做一次聚合,把多长时间的数据聚合到一起啊?啊,一七三十对了。
01:01
而且呢,是天吧,一天七天30天作为我们的一个统计周期。对吧,啊,统计周期,那其实还是在我们之前所聊的叫指标体系建设的基础上。对吧,啊,那我们是有原子指标。派生指标衍生指标,那在派生指标里边呢,就是对原子指标加了统计力度,统计周期,业务限定对吧,业务限定这个东西呢,其实嗯,加的比较少,因为你直接限定死了某一个。数据不太好,那我们都保留对吧,啊,不做业务限定,那未来呢,任何都能求吧,对吧,我只是限定力度,然后统计周期,而在离线出仓里边呢,咱们统计周期是一天。七天30天,那现在呢,咱们做的是实时。
02:01
咱们现在做的是实时,肯定不能按天来做了吧,你要按天。那我干脆用离线结果了,对吧,我还搞什么实时呢,对吧,所以就算我们要加这个统计周期。我们要去开窗做计算对吧,那也是秒级别的,顶多到秒级别的对吧,你公司当中呢,像这种事实,呃,分钟级别的也有可能有啊,也有可能有对吧,但肯定不会到天。啊,甚至如果你想做到阿里双11的大屏展示那个GMV那种效果一样。来一条就能展示,来一条就能展示,那么你连统计周期都不要了。对吧,那你直接对什么呢?对我们数据,按照我们的力度把数据规划好。假如说你要统计这个人数。对吧,那你把人数呢,写一个一出去,每一条数据来了是你要的数据呢,你就写个一不聚合对吧,直接写个一出去,最后呢,求的时候直接看到新也好,或者说sum这个值对吧,或者G,你要求GMMA,那直接呢,把我们这个数据明细那个金额放在这。
03:15
对吧,把金额放在这儿,你最后呢,展示指标的时候求sum。那每来一条数据,可能那个数据都会发生改变啊呃,你在工作当中,如果对于实时性要求并不高的场景当中。我们可以开一个几秒钟的窗口,对吧,三秒,五秒、十秒都可以,那开窗的好处跟缺点分别是什么?有没知道,就是相对于刚才我们说的,你把数据。整理好。每来一条写出去一次,每来一条写出去一次,跟我们先开一个小窗口,在窗口聚合了一下,再给它写出去,他俩对比而言,优缺点分别是什么?有的同学来告诉我,就是到了DWS对吧,我们呢,拿着数值表关联好维度表以后。
04:06
我开窗聚合跟不做聚合,它的优缺点分别是什么?有没有同学来说一说?啊。就是你理解的,假如说实时需求当中对吧。我们呢,开一个几秒钟的窗口,跟不开窗口。啊,那前面都是一样的,对吧,就是说呢,我们。要关读取这个实时表关联维度信息。对吧,关联好维度信息。接下来。我去开窗做一个小聚合,开个几秒钟窗口。
05:00
或者说呢,我不开窗对吧,直接把关联好的这个数据呢,给它写出去。这两种对比起来,各有什么优缺点啊?大家可以思考一下。啊,林总说了,开窗的时效性差。资源耗费少。啊,没毛病对吧,那为什么你看啊,开窗以后时效性肯定会变差,因为你开个三秒窗口或者五秒窗口,那你数据呢,对应的就是三秒钟。出来一个结果,或者五秒钟出来一个结果,写出去。那你那个数据变化呢,你只能最快最快也就三秒钟或者五秒钟变化一次。对吧,那如果不开窗,来一条就写出一条,来一条写出去一条。那我效率就是时效性肯定最好的,对吧?啊,但是第二个资源耗费少,这个内容怎么理解呢?因为我开窗了,比如说我一个窗口里面有十条数据,诶我按照某一个力度聚合,我把它聚合成了。
06:10
三条。本来是十条,我聚合窗口内部变成了三条,对吧,因为毕竟聚合了嘛,数据量会减少,那我写库的时候,我的数据是不是变少了。能明白吗?我在进行写库的时候,是不是咱们的数据会变少?对吧,咱们的数据会变少,所以呢,你数据量少了,你未来第一你写库操作这个更快。你连接数据库的次数。变少了。第二。你数据库里面未来存的数据量是不是也降低了?对吧,啊,但是这个其实。还好一定因为已经毕竟到DWS层了嘛,对吧,啊其实这个倒还好,跟重要的呢,是我们说的。
07:02
时效性啊,时效性。OK吧,啊,那我可以告诉大家,在我们当前这个需求里边,我们未来都是以开窗十秒。啊,我们开车十秒,那能跟大家想你就十秒。你的实时性不好,你还用弗Li对吧?我还不如用Spark呢,SPA swimming本来就VP处理,我吞吐量还比你大,更好一点啊,但不能这样聊,那我们这块为什么选择开窗十秒呢?给大家解释一下,因为我们最后呢用的可视化的一个展示工具,它叫sugar。而我们呢,用的是。最便宜的那个版本。啊,就是用的是他最便宜收费最低的那个版本。而那个版本呢,它可以动态的刷新,这个图表可以刷新啊,就是说你能看到这种动态的效果,这个图形,但是它最快的刷新频率。
08:07
最快的刷新频率大家其实就知道了,十秒。十秒每次。OK吧,所以你看啊,假如说我。那个图。他十秒钟更新一次。但你数据呢,是实时更新,或者说一秒钟或者两秒钟更新一次没有用。对吧,你数据每隔两秒钟写一次,但是我那个图我十秒钟刷新一次,是不是你中间五次写入结果最后体现在图上面只体现出来。一次啊。能明白吗?对吧,你最后呢,只能体现出来这么一次。OK吧,他这个意思,所以呢,我们当前这里边儿呢,用的都是十秒。啊,用的都是十秒,而且呢,也是根据这个。指标体系建设来的啊,最后呢,我们就分为DWS还是数据域对吧,然后统计力度就是维度组合呗,对吧,这里边维度组合,你比如说哎,那下面还有。
09:10
对吧,呃,用户与用户登录啊,用户注册这个倒还好,没有什么力度对吧,那我们找一个有力度的,比如说这个啊,你看这个交易用户PU力度。对吧,BO6那就是说维度呢,由用户加PU组成。Spu组成对吧,然后呢,业务过程,业务过程呢,有订单支付对吧,还是这些就是事实嘛,业务过程是不是还是我们所说的一个事实嘛,对吧,啊,那之后呢,加统计周期啊,咱们的这个统计周期是窗口,不像在我们的离线数仓里边是1d one day对吧?呃,然后呢,嗯,Seventy。类似于这样子的,对吧,啊,这是我们的指标的由来。啊好,呃,那接下来呢,我们整体介绍一下我们当前这个需求啊。
10:01
折叠起来,打开我们的DW。他我不是全部折叠吗,他应该。能够收起来才对啊。好,那我们不管啊,呃,我们这边呢,有11个需求,11个需求,但是你要放在生产环境当中会更多,对吧,咱们再去做这么11个啊,这里边呢,我们要跟大家说一下第一个需求。这个需求我们呢,用fli s去实现。啊,我们要用到flink circle。而下面这些需求。用data stream。啊,哎,他说诶是不是这个第一个只能用flink circle,下面的只能用data stream啊,我告诉你不是的,呃,这11个需求呢,你都用flink circle可以。你都用。也可以。
11:01
也可以啊,那为什么我们要搞一个弗Li克呢?对吧?啊,那有同学可能在想,我们DWD层已经一直在用弗Li s克了呀,对吧,为什么这边还要搞一个这个弗Li s克这样的一个需求呢?啊,是这样子的,你看虽然前面DWD层我们练习了很多的这个flink circle,但是呢,还有几个东西。关弗林思维里面几个关键点没有练习到。第一。我们在弗林格S里边提取事件时间有吗?没有吧,我们只用过处理时间。那个PT大家还记得吗?在弗林格格里边确实加过处理时间字段,没有问题,但是没有事件时间,这是第一个。那我们。在DWS第一个需求里边会用到。处理事件时间啊,第二。里边Li s里边它是不是照样也有这个开窗功能啊。
12:03
我们也没有用嘛,对吧,那DWS每一个需求都需要开一个十秒的窗口,那我们用DWS第一个需求来开窗。开窗。对吧,开窗做聚合啊,开窗聚合啊,这是第二个。第三点弗link s克里边它呢,有四种自定义函数对吧?UD udud tud TF,咱们四种啊,那在DWD层咱们一个都没用过。是不是咱们一个都没有用过。对吧,那不行,我们在。DWS第一个需求里边我们会用到。自定义函数。啊,咱们要用一个自定义函数,OK吧,所以呢,在前面DWD里边,我们虽然用了很多的弗link circle,但是还有一些弗林格S知识点没有贯穿到。所以呢,我们通过。
13:10
DWS第一个需求,把我们之前没有聊到的这些东西,对吧,把它。讲清楚来用一用,带着大家去用一用,这样的话,我们这个所有的知识点就完整了。OK吧,那后面呢,就正常的都用。Data STEM的方式了,对吧?啊去关联维表啊,这样的操作之后呢,去开窗分组开窗聚合对吧,用事件时间分组开窗聚合,最后呢,把它写到。克林耗里边啊,这就是我们DWS层整体要做的事情啊,但是每一个需求肯定都不一样,对吧,整体上呢,有很多需求其实都差不多啊,无非就是说你的。力度在变。啊,一下子用户维度对吧,啊,一下子用到商品PU trademark或者说呢,省份这些东西都可能会有的。
14:06
对吧,啊是这样子的,好,嗯,所以呢,你要了解清楚DWS层我们将要面对的是哪些东西,当然再跟大家提一下,我们最难的一个需求啊,最复杂的一个需求,从这个开始。就这个。啊。第九个OK了,大家稍微关注一下这个需求呢,我们花的时间会多一些啊,花的时间会多一些啊,其他的都还好了啊,只要认真听,一点一点的跟下来应该问题不大啊,好吧,这里边也有很多一些新东西啊,啊要讲给大家OK吧,好,这是我们第一道两层整体的一个介绍,当然具体的那个什么。指标体系建设就不多聊了,而且呢,指标体系建设在我们这块是有的,对吧。
15:00
这样啊。输仓整个构建里边对吧?啊,输仓明确指标这个统计原子,然后呢,这边是有一个Excel表格的对吧?这里边我们当时划分的啊,你可以看这个,当然我们在复习的时候打开给大家看过这个东西啊,所以呢,我们就不聊这个需求到底是怎么来的啊,我们到时候就直接去聊具体的这个。需求啊,聊具体的需求OK吧,这是DW想要做的事情。
我来说两句