00:01
呃。那么接下来我们要将三个硫进行一个。UN。啊,我们要将三个流进行一个unit对吧,那这个呢很简单啊,三个流进行unit很简单啊,那就traffic,然后呢,我们就从UV吧,我们写第一个流对吧点。Unit。啊点UN,呃,UN第二个流traffic。第二个我们写的是键,第三个对吧,Traffic配置吧,好这三个呢,我们得到了一个。啊,咱们也得到一个合并后的流啊,然后接下来提取事件时间,生成wordmark。简单啊简单,因为TS都已经在这了,对吧,好,S a sign time step and whats。啊,那what?我们给个。两秒安值吧,对吧,During啊,毕竟我们开窗了,Of seconds,给一个两秒,给个两秒啊,好,这边呢。
01:06
Traffic。并。对吧,点有一个civilization的一个step啊,那这边呢,是。点。Get。CH。啊,TS。好,那这个呢,咱们就取个名字啊,叫traffic配置view with。我mark。DS可以吧,咱们叫with DS啊,它提取了时间,好,那将来分组开窗聚合对吧?那嗯,前面两步很好写,分组开窗我们一起写一下啊,分组呢,一定要用替代啊,没有一个。K traffic哥。配B对吧,这是输入数据,嗯,那后面这个object呢,是我们的。
02:02
K的类型。对吧,是咱们这个K的类型啊呃,那我们想一下我们用谁做K呢,对吧。我们要用谁做K啊?啊,我们之前分析过,我们应该用谁作为K啊。维度加窗口时间啊。云总。不对吧。我们要用维度加窗口时间做K啊。Mid好漂亮啊。
03:03
我感觉我们做的不是一个需求。啊,这这这哪来的mid啊,怎么mid都有了。这这里边儿还能挑出来mid啊。啊。这。这听课这也太差了吧,这个效率。这怎么能说出来mid呢,对吧?啊,因为都改了啊,本来说的是这个维度加窗口时间。对吧,现在改维度了,就是维度啊,对吧,就是我们的力度对吧,那四个四个维度组合吧。对吧,窗口时间肯定不对,因为我们先分组再开窗,你按窗口时间分组,那我不用开窗了。那我还开什么窗啊,对吧,肯定是维度啊,我们就四个维度吧,就是四个维度啊,那四个维度呢,我们可以写一个思润,把这四个维度拼起来。对吧,也可以直接来一个什么叫他。
04:04
Top four对吧。啊,直接来一个top four啊。好,又一个。Come。啊,直接来value点这A,但这个四个顺序无所谓啊。一六。还有一个VC吧。还有个VC对吧,哎,咱们是这四个啊,当然这个顺序无所谓啊,你只要按照这四个就就行了,好,那这样的话呢,我们就得到了一个。Kid stream对吧?接下来呢,继续点window开窗啊,还是一样的叫to window.set of,然后呢,这里边写time。点SECOND10秒的窗口一样的,对吧,好,这样的话呢,我们就得到了一个window的。String得到了一个窗口的流,那接下来呢,我们要写这个聚合对吧?啊,大不着急来,我把这个先截掉啊。
05:03
那我们刚才呢,是把分组与开窗写了对吧,接下来呢,咱们要写这个。聚合。啊,那涉及到我们应该用什么去和函数呢?我们的目标是什么?我们的目标。啊,当然我们的目标肯定不是没有蛀牙哈,对吧,我估计我在喊我们的目标是啊,底下有同学肯定在想没有蛀牙对吧,肯定不是这个啊好,那咱们点开咱们的目标是什么,现在呢。这些东西是不是一。什么一一对吧,这个是一个值,然后这个呢是一,什么是零对吧,我们要把这些值给它算起来吧。对吧,就是把这个值呢,给它聚合起来。好好,那你告诉我,我应该用什么窗口计算函数呢?
06:05
我该用什么窗口计算函数呢?啊,或者说。就直接就process了。就那么喜欢process嘛,就我问函数,你肯定我不希望看到process这个答案,对不对?啊,AG的方式。啊。Process。Reduce。那我这样问大家吧,就是窗口的聚合函数有几类?
07:04
不是有几种啊,有几类大家告诉我。分的种类有几类?对吧。有几类啊,窗口聚合函数有几类。好两类啊,方总说两类,哪两类?哪两类啊?啊,展开说一说,这两类分别是什么?输入和输出类型是否相同?啊。这什么分类?那翔总你说说看,你理解的两类是什么?
08:06
啊,翔总你说一下。增量和全量,对啊,应该分类是增量聚合还是全窗口聚合啊。对吧。啊,那问大家这两类有什么区别呢?增量聚合跟全窗口聚合,它们俩有什么区别呢?啊。这两种窗口有什么区别?大家所理解的对吧?区别在于哪一类增量聚合,一类是全量窗口聚合。那因为涉及到我们接下来要用什么,因为你要窗口聚合了,对吧。你不能上来都用process,这个不对。
09:01
对吧,你不能上来就用process啊,那你肯定得想一想,那process它不一定好啊。是否在K败后?啊。方总。方总,你又错了。啊,你又错了。呃。我估计有好多同学呢,听到全量窗口函数啊。跟方总一样的啊,这个我就说一下啊,开窗开窗操作,嗯,方总这个答的。就是太不沾边了,对吧,把有的知识点混了啊开窗操作呢,首先分为两类。啊,分为两类,一类呢是operator。Window这个开窗用的是什么呢?叫温二啊。
10:02
注意,它叫window on。啊,还有一类呢。加。T的温度。啊,这一类呢,使用window进行开窗啊,它只有一类窗口,所有数据发送到一个窗口,而在监控窗口就是K之后开开window对吧,Window呢分为这几种。啊,窗口的种类分为这几种。啊,分为哪几种呢?时间。和计数。对吧,而时间当中有。滚动。滑动。绘画而技术窗口分为滚动和滑动,对吧?注意这是窗口的分类,我们现在聊的什么是窗口?就是你已经开好窗了,是窗口计算函数啊,窗口或者说叫聚合函数的点注意啊,方总你刚才答的,你答到这个了吧。
11:14
说是否在K拜后,那这还聊吗?我这我现在还问K败后干嘛呢,我这都K了,我还问有几类那那有什么好聊的呀。对吧,你要注意啊,你在答这个,你在答窗口类型,我不是说窗口类型,我说的是窗口聚合函数类型,对吧?分为两类,一类是增量聚合函数。啊,一类是全量聚合函数。一类是全量聚合函数是这个。OK吗?这个啊,我们说这个啊,来看一下有同学提到了,呃,想总说全量全窗口,全量窗口啊。
12:03
全量转,我呢可以计算这个。平均值或者百分比吧,不是百分百啊,应该百分比是不是对吧?好,那凯总也说了,说增量聚合呢,他是来一条计算一条,来一条计算一条,那全量窗口呢,它怎么样呢。它是会攒到一个迭代器里边,然后呢,你要结果了,我统一触发计算。是吧,应该是这样的一种现象。啊,而我们。增量来一条计算一条,呃,那有什么区别呢?分别有什么优缺点呢?那来一条计算一条。这个优点是什么?效率?高。对吧,然后呢。存储。数据量小对吧,啊,它呢是。
13:05
攒到。一个集合中对吧,统一最后。统一。计算啊,它是这样子的,它的好处在于可以求平均数。可以求百分比啊,当然光平均数的话,其实增量也能求。对吧,其实嗯,最好啊,就是可以求百分比对吧,前百分比的数据啊。因为平均数啊,增量能不能求啊,增量也能求啊,我用agg给的方式就好了,A给对吧,来一条我计算一条,那也就是说平均数来一条计算一条怎么对呢?对吧?但我来一条计算一条,我只是把数据累加,我同时记录一个count,最后我再把那个累加的数除以这个count就行了,对吧?用AG的是可以求平均数的啊,所以呢,格奥的是可以求前百分比。啊,那还有没有呢。
14:07
还有没有呢?啊,还有没有其他的优点呢。当然缺点就不聊了,缺点他们俩互为缺点嘛,对吧,那你的优点是啥?它的缺点不就是这个嘛,对吧?那你的优点是啥?它的缺点是算不了这个求前百分比的数据,这种就算不了。那告诉我还有没有呢?还有一个点非常重要啊,很重要对吧,还有什么呢,可以获取窗口。信息。它可以获取窗口信息,这个很关键,来我举个例子啊,我在这边给大家稍微的写一写,对吧,来看增量聚合。增量聚合,那就拿着window点啊,我就用一个来说明啊。
15:05
另一个美六双。你看它这里边呢,Y61Y6222聚合直接返回。对吧,来一条聚合一条好,那还有全量聚玩是window点对吧,又有一个不要上来就用那个什么啊,你去看,其实我都很少用process对吧,好,那这边呢。是输出数据,输入数据啊,比如说输出的还是他自己啊。Window。这边呢,这个是一个K啊。来看啊,首先呢,它这个数据呢,在一个迭代器里边看见没。对吧,Input它这个迭代器输入数据呢,不是一条,你看这个呢,是Y61Y62来一条计算一条,一直往Y61上累加,对吧,而这个呢,它是迭代器放在一个机合里边统一最后处理对吧?然后更重要的这里面有个什么。能够获取窗口信息,看到没?
16:04
对吧,你能拿到窗口这里面呢,只有这两个值,你没有什么窗口信息可拿,对吧?好,那再回想我们的需求,我们应该用什么。告诉我,我们应该用增量还是用前量?用全量。啊,这会儿应该明白了,为什么用全量了,对吧,因为咱们还有一个。窗口时间要去补充。对不对,我们还有一个窗口时间要去补充,所以呢,感觉上只有增量能完成我们的目标,它有窗口信息那。其实增量窗口呢,呃,如果单从累加我们五个度量值,是不是增量会更好一点。
17:04
对吧,如果单聊。增加这五个度量值累加是不是应该增量更好一点啊?对吧,但是无奈咱们要干什么呢?咱们不光要累加这个值,还要。把窗口信息补充上,那你这个增量聚合里边,它没有窗口信息呀。对吧,他没有窗口信息,那怎么办呢?我们看上去只能用。全量聚合吧,那我们是不是有一个想法?这时候大家有没有一个想法?啊。有没有想法?这个时候突然萌生一个想法,要是怎么怎么样就好了。来,把你的想法告诉我,要是怎么怎么样就好了。
18:05
你没有想法吗?对于这块啊。要是增量也能获取窗口信息就好了,不,不能这样想,我告诉你不能了,对吧?他不能了。啊,他已经不能了,你就不要这样想了,你这样想就没意思了啊。要是增量也能获取窗口信息就好了,对你到到这话也没毛病,对吧,但这个呢,你不切实际了,如果能的话,那我就不会把这个写成他这个优点了,对吧,我就不会把它写成他这个优点了,他俩都能,他凭什么是优点啊,对吧。啊,我们直接说吧。要是你会就好了啊,并不是啊,来看啊。
19:00
注意注意注意注意啊,各小组请注意,现在呢,就是给你们扩展一个新的API啊,一个新的API你之前没有写过的啊,你没有写过的。呃,请看啊。要是把这两个结合一下就好了,对吧?啊,要结合在一块就好了。呃,弗Li呢,他也懂啊,他就把这两个呢结合到一块儿了。你看啊。这是不是一个温度方向?这是一个方程对吧,诶在这里边直接。温度function。有又有reduce function,又有window function,看见没?
20:00
对吧,两个他都有。啊,两个他都有。OK吧,好,那这个是怎么计算的呢?它是这样子的啊,它是来一条数据呢,就用radio的方式处理一下。好,那那这样的话,那显得我选那个窗口函数有什么用呢?啊,你别着急对吧,那我们最后假如说窗口数据收集完了,我准备关闭了输出结果了,是不是方会把结果处理成一条啊对吧,然后把这一条呢,在输出结果之前,在这个窗口输出之前经过window function再加工一下。啊,就过一遍对吧,再过一下。啊,你把你该补的信息补上,那也就是说用了这个函数的话,未来我的温度方式啊,我的温度方式这个迭代器里边几条数据大家告诉我。啊,我这边。两个结合起来用。
21:04
几条数据?他几条对,他就只有一条。啊,它就只有一条,因为他是这样来一条处理一条,来一条处理一条,处理好以后,接下来我窗口已经准备关闭了,对吧,到了关闭时间我呢,准备要说出结果了,你把刚才聚合的这一条对吧,再给到温方做一个加工。给到温度,Function再做一次加工。是这样的一个效果。对吧,这个非常nice,完美契合我们的需求,因为我们要计算。计算的是什么?我们要计算就是来一条累加一条那个度量值,只不过说我们最终要补充一下这个。窗口信息对吧,刚好弗林提供了这么一个。
22:04
方式,重载的方法给我们去用。对吧?啊先呢用维持方程去做累加,最后呢,再经过我们的温度方式做一次处理,两个结合了,两个优点结合到一块了,OK了,哎,这个就很强大了,对吧?好,那我们呢,到时来写一下啊,最终呢,我们返回Y61啊,然后这边我们写一下啊呃,Y61点。咱们有那个。嗯,SV吧,随便啊,就按这个来SV,然后Y1.getsv加Y2的。Get SV这块不难,只不过这容易写错啊,因为都是浪值,你随便写他也不会报错啊,嗯,Set UV吧。UV啊Y留一点。改UV加Y2的改UV啊。
23:04
改UV啊,那U键。点。盖邮件加VALUE2点盖U近。好,那PV。好,那最后一个during some对吧。好,那这个搞定,哎,把它拼接起来以后呢,把Y61给它传出去对吧?哎,把这个值设置到Y61上面啊,设置到Y61上面,好那家这一块我们要补充这个信息对吧?那首先获取数据,然后呢补充信息,第三步输出数据对吧,分三步走啊呃,获取数据从迭代器里边获取吧,那迭代器里边只有一条数据,我也不用编历了点。
24:14
直接点next对吧,它一定有这条数据啊好,那补充信息补充信息啊,那就next.set ST。Set ST啊,然后呢,我们从这个window当中,但是呢是一个年月十分秒,我们date for酒店点to年月日十分秒,然后呢,window.get start啊,因为这个值啊,它返回值呢,是个long值啊。它是大的啊,Window的窗口信息嘛啊,那那边的那点set叫e dt啊,还是一样的date for me点。要看。最后呢,输出这个数据啊,输入数据哦,点connect,把这个呢,那个给它输出就好了,对吧,我们的这个窗口信息就补充上了啊,更重要的还有一个点啊,我们有一个东西也可以改一下啊呃,修改TS。
25:09
因为接下来我们准备输出这个数据了,那么此时T呢,就没有这个什么wordmark的一个作用提取过了,对吧?所以呢,我们此时TS作为一个版本去用的,那怎么做呢?我们可以做一个修改,当然你不修改也可以啊,这个无所谓对吧?呃,那如果修改的话呢,你就修改为当天时间。啊,你就修改为当天时间OK吧,啊这个东西呢,可以修改一下,但是不是说那个就说你这儿设置了,我前面是不是就可以不要了。不行啊,前面这个TS呢,是给我们提供那个。What mark去用的这样对吧,你不能没有what mark呀,对吧,好到这块为止呢,咱们的聚合就搞定了,看单位得到一个。DS对吧,终于到我们那个结果数据了啊,这个就搞定啊。咱呢,先在这边做一个。
26:03
打印对吧,好,那要点think叫my click号点get function啊这里面呢。Two。对吧,表明。表明在这儿啊,把它拿过来。字段呢,跟我们的表是一样的,所以呢,我也就不用写了,那我们直接写麦斯刚我们说了12个字段还记得吧。四个啊。三组对吧,一组四个,这样比直接敲12个较好,直接敲12个呢,容易出错对吧,这样的话不容易出错啊。
27:04
好,这是最后呢,将数据打印并写到。对吧,这块呢,代码就完成了。
我来说两句