00:00
OK啊,那我们来继续往后说啊呃,接下来啊,我们我们就把这个分时明细啊,给它做一个查询,把这个死的数据呢,给它这个替换掉啊行,那这个我们也是写一个方法啊嗯。写到这儿啊。呃,这个分式明细的话,我们我们给人家返回的应该是这个结构是吧。对不对,所以我给大家返回一个map啊,来写一个,嗯,好了,然后呢,这个是search DA HR对吧,就是分时的一个明细啊OK,呃,那这个的话呢,同样的啊,你要告诉我你查的是哪一个索引啊,说要把这个日期传过来,那么传过来以后呢,接下来我们就可以去写了啊呃,这个还是你在写之前的话呢。先去把这个DSL写出来啊,我们写一下这个DSL吧,这个查询分式明细其实很简单啊,我们就是什么。怎么写啊,同学们分式明细。不就是按照你的小时,然后呢去做一个。
01:02
分组,然后再求一个统计嘛,对吧,说你看啊,我查这个整理数据,我们在每条数据里面,我们之前处理的时候呢,是有一个叫做呃,叫做HR这个字段,这就是我们那个小时那个字段。对吧,所以你看我可以这么写啊,我可以这么去写,呃,那我们要做分组的话就是HJS啊,然后呢,呃,这里面我们写的就是group by by谁呢?BY这个HR就可以了,好,那这类型的话呢,就是to呗,因为我们要做这个分组嘛,分组就是一个直转判断啊,这里面写的是你的H,好,那你分多少个组呢?那你一天24个小时,那我就分24个组就够了呗。对吧,就非常简单啊,然后他求统,你求统计,它就是一个抗,抗是白送的啊,所以你直接查。来这就能查到了啊,结果在这后面。对吧,这就是那个结果。能看到吧,这是我那个结果啊,但其实的话呢,呃,它这种查询的话呢,它还会给你返回明细啊,但是我们现在是不要明细的啊,因此我可以什么再加上一个size啊,或者写到下面写下面吧。
02:06
好,写到这个下面啊。在啊。零个我不要明细对吧。你查一下,你看现在的话就是什么,只有一个什么聚合以后的结果。对不对,好,那这就是我们这个写好的这个DSL啊。截个图拿过来。好,拿过来以后,下面我们就转换成这个代码了啊,首先的话还是一样的,我们先把这个索引给它处理出来啊index name,嗯,等于啊index name的加上这个TD,好,那有了索引以后呢,我们下面就是ES client.search search的时候呢,还是一样的啊,这里面需要一个用上一个search request好接收回来啊。行,那我直接把这个索引名字呢,给他传过去了啊,好,然后呢,呃,我就可以把这个search request呢放到这,放到这以后呢,我们后面是一个request option default,好然后有异常,异常的话还是给他做处理啊。
03:05
呃,那这个异常的处理,我就跟他处理成一样的了啊。对吧,就同样的处理方式就可以了啊行呃,这里面我还需要一个search source builder啊,这都写过很多次的代码了啊,我就直接去写了,就不再给你做过多的解释啊。好,然后呢,我们在这个search request里面写一个S,然后把这个给他传过去,这就可以了。对吧,接下来就写它具体的东西了啊,首先我们需要有一个such builder size还是给个零啊,就是我不要明细啊,这个是不要明细。对吧,我是不要明细的啊好了,呃,那么然后呢,嗯。然后怎么写?聚合呗,对吧,聚合的话是这样的啊,Search s build讲什么呀,叫做。
04:01
呃,Aggregation,好,这里面我们需要传上一个叫做aggregation build对吧,那这个build的话,我们这么写的啊,叫aggreg build,你看里面用什么呀,我们这很明显用的是一个什么term对不对。对吧,啊,然后呢,呃,这里面写什么呀,写的就是你的名字,名字我们就叫做group by HR。对吧,HR,然后呢,后面是写的一个,呃,Field,那fair的话写的就是你的这个HR就可以了。HR。好,然后呢,后面是一个size size的话,比如说24啊,这就把它写好,好写好以后呢,把这个标准拿过来,拿过来以后呢,我们就可以把这个标准的给它放进来了。对吧,这就把它写好了。啊。然后呢,因为我们是求的count,求countt的话,我们就不需要自己写聚合,它会送给你对吧,那这个查好以后的话,你看一下啊,回到这儿把这个结果给他介绍回来,这是我的search source search response,好,那这个结果的话,我们拿过来,这就是我们那个结果啊,同学们。
05:03
结果,嗯,应该是在这个。呃,就这个单独的结果啊,把它把它拿出来就可以了啊。好放到这,然后呢,我们去写一下啊,好咱么怎么这个怎么写呢,就是search response,然后直接什么get这个obggregations,对吧,之前我们写过的啊aggregations。行,然后呢,从这个obligation里面,我们再去get get的谁呢?把你的名字写上啊,上面写的这个名字吧,然后把这名字写到这好去获取它,呃,这个返回的是一个avigation啊,但是我们说过这个东西不太好用。因为什么?因为你从它里面去get这个bucket是get不出来的啊,所以说我们需要把它处理成一个比较,呃,想比较什么更加细的一个对象啊,这个是什么类型来着,我们之前写过啊,它叫做呃,叫做past。对吧,Past。是不是啊,这是我们之前写过的啊,叫past OK,这个时候我们就要怎么叫这个past terms啊好,这样的话我就可以怎么从它里面去get bucket,你看一下这个结果不是在这个bucket里面吗?
06:09
对不对,好拿出来啊,好拿出来以后呢,我们就直接去迭代了啊,8K表for迭代,那迭代的时候呢。我们从它里面获取了啊,bucket.get一个key哦K就是我们的那个HR对吧,讲这个就是我们的小时啊。好,你是哪个小时的数据,然后呢,在bucket讲什么呀,Get一个,嗯,我看看啊,它叫做do value对吧,那就什么直接点get这个do value。Do,诶刀刀刀的是吧,Do OK,来好,这是一个绕了型的啊,这是我们的叫做嗯,就是HR total啊HR的一个total就是你的每个小时有多少好,那你查到以后呢,之后我们要把这个结果呢,给它返回回去啊,我们要返回一个这个结果,那我就把它创建出来啊,用上一个哈希map好字符串浪类型。
07:02
接收回来,这是我的,嗯,叫dauhr好吧,行,然后呢,接下来你看啊,就这么去做,就是DAUHR这样put,把这个HR放进去,把这个呃,Dau,呃,Total,诶叫HR total是吧,好,放进去这就可以了。对吧,那你把这个整理处理完成以后呢,我们return一下,这个叫做呃,Dar。是吧,就这个东西给他返还回去就可以了。OK吧,好,那如果说呃,你是有异常的,有异常的话,我也是一样的啊瑞成这个DHR就可以了,对吧,因为它里面就没东西嘛,三如果你抛异常以后,它里面是没东西的。对不对,没东西,那我就直接给你返回一个空的就完事了啊OK,行,那这写好了啊,写好以后你看接下来我就可以什么把它去替换一下了啊,这句话你就不这么写了啊,不这么写了,怎么写呢。直接什么色?Dar把这个TD传过去,然后呢,这个是我们的叫做dau,呃,TD。
08:02
对吧,今日的好,那我就放进去了,那你查询这个昨日,昨日怎么查呢?昨日其实是一样子的啊,只不过你要什么把这个昨日给它算出来啊,你看啊,就是这个search一下什么DHR,你把这个TD你减上个一不就好了吗?算成一个灼日的,比如说算成一个YD,对吧,传过去,然后这就是我们的DAUDAUYD。这不就好了吗?对吧,你只要把这个TD给他什么算成一个日的就完事了啊OK,那这个我们来算一下啊,这个怎么算呢?呃,我们计算这个昨日啊,计算昨日好呃,很简单啊,我们使用这个local data就可以算啊local data然后呢,点去pass一下,你把这个TD传过来,好,这时候的这个叫做dau,嗯,叫什么叫呃。嗯。叫TDLD吧,对吧,然后这个TDLD里面应该有一个,呃,应该有一个叫做我看看啊嗯。有一个减一天啊,我记得是他有没有啊。
09:04
这个吧。对吧,这应该是减一天啊,减上一天,然后介绍回来啊,这是我们的DAUDAUYD。好吧,那你拿到这个DAYD以后呢,你就呃不能叫DAYD了啊,这个呃叫YD啊,叫YDLD好吧,这样然后你再把这个YDLD点。这个。啊,这就可以了。对吧,这就是昨日的啊来,哎哟,这个代码我测一下吧,啊,我看一下这个确保是能够正常算出来的啊别这个到时候有问题啊,啊那这个TD的话我就写一个啊,TD是等于这个,比如说。啊,随便写一个,比如说2022杠零三杠三零对吧。好,然后呢,把这个呃,YDLD这to string打一下啊。
10:03
好,看一下可以的吧,行,那这个如果没问题的话,那我们上面这个直接去用是没啥问题的啊行,那你看一下,这不就是今日的,然后呢,逐日的都算出来了吧,算出来以后你看放进去放进去OK,最后把整个结果返回回去,那就写好好来写好以后我们来去做测试啊,把这个重新启动一下啊,重启一下。好了啊,这个重启完成以后呢,接下来我们就去测一下这个接口了啊来这个都不要了啊,测一下接口你看了哈,我就发送一个零三杠三零啊走。好,大家看一下啊这个。昨日的是有的啊,但今日的没有。对吧,今日的没有啊,你看昨日的不就是像我刚刚查的啊,你看这个九点钟的130点钟的45,你看有吧,今日的没有,今日的没有,那我们跑一下数据不就有了吗?对吧?来把数据跑一下啊呃,那我要跑数据的,跑数据的话,我们回到这里面啊,这是跑我们的这个日活数据是吧,回到我们的这个。
11:09
这个里面对吧,打开打开。好,打开打开。打开,然后呢,这是我们的base logg,然后呢,DWDAU,对吧?来把这个base log给它,让它跑,跑起来哦,Base logg跑起来软一下。这个不要了啊。好,这个也跑起来啊。稍等啊。行,呃,这个已经起来了啊,然后呢,这个呢,这个也起来了,对不对,这个等他提交一下啊,读取到提交提交。好,这没啥问题了啊,那接下来我们跑数据啊呃,跑数据回到这里面,我们就直接什么Lg.SH跑一下2022杠零三杠三零对吧,跑一下今天的数据啊找一下。
12:14
好,等他跑着吧,呃,我们就开这个地方就行了啊,看他有没有动静啊。有吧?嗯。好,这就跑完了啊呃,跑完以后你可以先查一下啊,就你自己去查一下好吧,来我们就把这个复制一下,呃,我们今天呢,应该就是呃杠三零了对吧?来我们去查一下。那我们只有一个11点的啊,总共是123条数据,好,那这个有了以后的话,你看啊,你再回到这里面去查。
13:05
对吧,这个11点的123的数据,这不就有了吗?然后今天呢,不就是123吗。能看到吧,那这个数据我们就把它处理好了啊,就因为我们生成的数据都是一个点的啊,都是你比如说你11点多跑,那就是都是11点的数据,所以说这里面查出的东西比较少哈,如果说你每隔一个小时你跑一次,每隔一个小时跑一次,每隔一个小时跑一次,对吧,这样的话你的数据会多一点啊OK,行,那这个能看到效效果就可以了啊行呃,那我们把这个做好以后的话,我们这个接口呢,整个就测通了啊,然后这个接果呢,也能够正常查出来,好,那接下来的话呢,我们就可以考虑对接到你的这个页面中啊,去看那个效果了啊行,那我们接口的话就呃,开发完了啊,停一下。
我来说两句