00:02
好,那我们来分析一下吧,啊,这个应该怎么写啊,呃,假如说啊,同学们来,假如说我们用的是list。那我现在做的操作是这样子的啊,就先把这个K啊,先把这个K给它拼接好啊,那我就来一个K吧,找red的。这个dak啊好,呃,那这个K的话,嗯,这个K的话。后面是日期啊,你说这个日期我怎么得到呀。啊。这个日期我怎么拿到啊,同学们。大家听我说啊呃,如果说我们是在这个真实的这个环境中啊,那我这个地方的话,我就可以可以什么放心大胆的去拿你这个当前的系统日期。对吧,当前的这个系统日期就可以了。
01:02
能理解啊,这是没有任何问题的啊,因为我们就是在处理你当日的数据,因为你是实时嘛,那你一定处理你这个当日的数据的。啊,但在我们当前这个测试环境中的话呢,就不太行啊,因为我们。将来我们在这个生成数据的时候,我们有可能会生成。别的这个日期的数据,比如说我生成的是这个三月23的,对吧,但是呢,这个地方你写代码,如果写的是拿这个系统日期,你拿的是三月24的,那你这个判断就不太对。对吧,说这个这样吧,我们就,嗯麻烦一点,我们就从你这个数据里面把那个日期拿一下,好吧,从那个数据里面把日期拿一下啊呃,那我就这个拿一下这个日期啊,就是配置log这TS。对吧,把TS拿出来啊呃,这个TS拿出来以后,它是一个。它是一个时间,它是一个时间戳是吧,那我还得做一个转换啊,哎哟,这个好麻烦呀,这个要转的话,转的话,那我得关键是我循环的话,我每一次都得去做这个操作是吧。
02:08
嗯。也行吧,这没办法啊,没办法,我们就只能这样去写了啊来呃,那我就这么来去转吧,这个TS,那我就这样啊,用上一个data,我先搞成一个data啊。搞一个data啊呃,有跳的data,然后把这个TS给它扔进去啊,啊,这是一个data,然后呢,我就可以这么去做了啊嗯,叫local data。Local data点什么叫pass,然后呢,把这个。诶这样他不行,他他还不接收这个玩意儿是吧。哎呀,他还不接受这个东西,那我还只能是自己去转是吧?只能自己转了啊,那我这样吧。还得再定一个啊,就是用一下这个东西啊,Simple data啊,这你们应该都用过哈。
03:03
然后这里面写个杠MM-DD对吧,SDF啊行,然后这样的话,我就可以这么去写了啊。直接,呃,那我就不写,我我想想啊SDFSDF.format format的话,它要的是一个。要的是一个data对象对吧,那我把data给它刻进去啊,这是那个data s tr就是一个字符串啊,那我再把它放到这就可以了,是吧,到了data。好,这样就可以了啊,就是会麻烦一点啊,就会会麻烦麻烦一点。能理解吧,来,这是我们的,呃,我想想啊,这样啊。把它放在下面啊,这个是我们的这个就是获取啊,获取这个就是日期啊。啊日期啊,然后呢,呃,就是目前啊,因为我们要测试这个不同不同天的数据啊,啊,所以不能直接啊,不能直接获取这个系统时间啊,对吧,如果说你要是测试这个你你是这个真正的生产环境,那你一定是跑的是你这个当天的数据,那你就什么可以什么直接获取你的系统时间。
04:21
对吧?啊,所以这个就要强调一下啊,行,那这个有了以后,呃,这个有了以后,那接下来我们就可以什么去做这个判断操作了啊,你看一下,如果说你用的是list,那我就可以使用这个je对吧,应该叫什么?大家用的那个什么叫L,呃,找找有没有好用的哈,L好像只能是l range对不对,那就L吧,然后把你的key搁进去,比如说red的一个什么key,然后后面是一个。Start和stop,那我就零到负一是不是不是都取出来了呀,对吧,都取出来啊来这是我的叫m mid。然后了吧,好,那你取到这个m mid4以后,接下来就是判断了啊,如果说看到了啊,如果说我的m mid4点什么con对吧,如果说它是这个包含我的当前的这个m mid的能理解。
05:12
包含的话,那这个数据我就不要了,对不对,数据我就不要了,OK,那我就要这么去做啊,如果说你不包含分一下。对不对,那这样的话呢,我就要干嘛了呀,我是不是要这个摘看好了啊摘你要干嘛呢,就是把它,呃。把它这个加到我的什么呀。类似东对不对,那我就l push吧啊air push啊,然后呢,把这个DA。放到这儿,然后呢,再把你的这个当前的mid搁到这儿,同样。因为你加进去了,那我的这个数据我就要保留下来了,对不对,那我就要干嘛呢,就是在我的配置log。第二,我要干嘛呢?就是这个append,把你的当下的配置log给它保留下来。对吧。来吧,Hello,同学们。
06:00
就说白了啊,我们做了几步操作呢,先把它都取出来。就先把你所有的这个m midd都取出来,取出来以后呢,我判断一下你是否包含,如果说你不包含,好,那我就把它放到我的中。对吧,接下来呢,把这条数据给他保留下来,因为这个数据我就是要的数据。能理解,那最后的话呢,我们就可以把它返回回去啊,就是把这个叫做配置lo斯,第二他要的是一个迭代器啊,你把迭代器给他返还回去。能看到吧。啊,这如果说我用的是list,那我会写出这种代码来。OK,好,那同理啊,如果你用的是set,你会怎么写啊?是不是也是一样的呀,就是加点什么s members对吧,把这个daup放到这,然后呢,接收回来,这是我的。叫set的这个这样写吧,啊set的这个mid。能听懂,那同样下面也是判断啊,如果说你这个set的mid点什么content,然后呢,比如说什么mid啊,这个我们写个什么非啊好。
07:03
是不是一样的道理啊,那为什么加里斯叫SI的把谁呀?把这个key放进去,把mid放进去,对吧?同样的正好代码同样要去执行。OK吧,同学们。行,那这是我们最后写出来代码啊,就是你用这个list或者用这个site,你写出来这个代码。来这个代码,首先我问大家啊,你都能看得懂吧?能看懂吧,应该都。就是我判断一下啊,就是我先把这个所有的m mid都拿出来。对吧,都拿出来如果说。你有那我就去判断对吧,如果你没有啊,那我就什么加进去。OK吧,行这个代码啊,看起来其实很简单。对吧,那他们两个也区别也不是很大。
08:02
是不是啊,但是我告诉你。他们是有问题的。这个代码是有问题的。有什么问题呢?来,听我说啊。如果说你把这个代码放到你的这个,就是单线程的这个环境里面。对吧,就单点的这个环境里面,它没有任何问题。但是现在我们是这是这个环境吗?我们不是这个环境,你能听懂吗?我们现在是一个分布式的环境啊,分布式的环境。那你这个分布式的环境,我们就得考虑到这个并发。是吧,你来看啊,我们用的是叫for,呃,这叫这个map partitions。那么假设我们有四个圈,四个分区,好,那将来我有四个并行度。对吧,我有四个变形度,好,那你要去考虑这个代码了啊,来就看这个代码。我的四个并行度,我的四个什么呀,就是你可以理解为什么好吧。
09:05
他们每个人都要去执行这个代码,而且是各自执行各自的啊,他们之间是没有什么牵扯的。OK,那么大家想想有没有可能出现这种情况啊,假如说现在我有一个m mid是1001。目前呢,我的中并没有他。那玲姐。好,那这个时候。假如说他们这四个人同时现在都正在处理一条数据,这条数据的ID都是1001。能不能想明白都是1001啊。OK,那么他们都要去执行这个代码啊,比如说他们首先先执执行第一行,把它都拿回来,对吧,这个没啥问题,拿回来以后,接下来我要去什么去做这个判断了。啊,去做判断了。假如说第一个先做了这个判断,他一判断说包含吗。包不包含,不包含。
10:00
对吧,不包含OK,那么他就决定要把1001写到中了,同样要把这个数据给它保留下来了。对吧,注意啊,是他决定要这么去做了,但是这个代码呢,他还没有执行。能听懂还没有执行,然后呢,正好,诶另外一个这个并行度里面的,他也做了这个判断。这个时候你的包含吗?还不包含,因为你你这个操作还没做呢,那么他一判断,诶,我也不包含,好,那我也要决定,我要把数据写到。对吧,然后呢,数据最后的数据我要什么,就这个数据我要保留下来。那如果稍微极端一点,他们每个人都会做到同样的操作,就是他决定,我要把数据写到red,我要把结果保留下来,我要把数据写到,我要把结果保留下来。对吧,因为我们都有可能同时都进入到了这个判断。对吧。能听懂吧,同时都进到这个判断里面,但是呢,你们都还没有做这个事儿。
11:01
OK,那接下来我他先做了对吧,他先做了,他他把什么他他把数据呢,放到你的中了啊,放到你的red中了,那你的1001就已经放进去了,同样你的这条数据我就要写到你的什么配置log里面了,那你的配置log里面我就记住了一条数据了。对吧,记录是1001的这张数据啊,那么这哥们过来以后呢,因为他刚刚已经判断成功了呀。对吧,所以说我为什么把这个1001写到中,好,那我又写了一个1001。因为你用的是list嘛,那你list的话,你看一下它不就是吗?可以重复的吗。对吧,那他把这条数据呢,也写到我的最后的这个集合中了。对吧,以此类推啊,就是他们四个都把这个1001呢,诶写到什么呀,写到你的中,然后呢,最后呢,我的四条数据呢,都保留下来了。能明白吧。好,那么对于这个来讲,你记录了四个1001,我觉得问题不大。反正我将来判断的是一个包含,是肯特斯是吧,你一个也叫包含,你四个也叫包含,这无所谓。
12:02
但关键现在的问题在哪?问题在这儿。你最后把。相同mid的四条数据,或者什么多条数据,或者可能是三条,可能是两条,对吧,可能是四条,也有可能是一条。都进入到我的这个page log里面,那这个数据就表示我最后要要的,对吧,因为我要把它保留下来,你看我把它保留下来以后,就相相当于什么,相当于将来我要把把它写入到我的ES中了。就说了这个数据是我要的。但你就看吧,这个问题不就出来了吗?我们想着说我最后只要一条数据,就你的一个MMD,我只要一条数据就可以了,但是你出现了多条数据了。对吧。啊,这个你好好去想一想啊,这个是放到我们的分布式中啊,就可能会出出现的一个问题。你要是在这个单点环境里面没有问题,因为我只有一个人在去执行这个代码。但你在这个分布式中,那就是什么多个人再去执行这个代码,而且他们是各自拿着各自的代码去执行的,他们之间是没有什么冲突的。
13:03
直播,他们共享的是red。OK吧,这个问题一定要想一下啊行,那如果说你这个能够明白的话。你看下面这个代码。存不存在这个问题?来大家看一下啊,刚刚我给你们分析的问题,就是在list里面它存在这个问题的,OK,那我问你在set中它存在不存在,我刚刚分析的那个问题,就我这么写的话,认为存在的同学打一啊,不存在的你就打二,我看一下。看看大伙能不能想得清楚啊。不存在的。哼,为什么会认为不存在呢?啊。
14:06
居然都认为不存在,哎哟,那不就都完了啊,这这这这怎么能都不存在呢?这啊,李康认为存在的是吧,存在并发对吧?啊,这个是存在的啊,同学们来分析一下,因为你就看吧,这两个这这个代码写的这个逻辑有啥区别吗?没啥区别啊。唯独不一样就是我们的类型不一样,那我调用的什么,调用的这个什么这个API不一样呗。但你本质本质的这个区别在哪呢?没有区别,你看都是啊,先把什么,先把这个数据都拿到,拿到以后呢,我做一个判断啊,做个判断,然后如果说你没有我就加进去,然后把数据保留下来。就如果说你非要是他们这个不同的点的话,就相当于什么,相当于我的red中的,就算你放了四次这个1001,最后我也只保留一个,因为我是set,我是可以去虫的。对吧,但是呢,这个倒不是问题,因为我刚刚说过了,你就算你放了四个1001了,你对对于我的什么这个驱动,对于我的什么这个包含判断来讲影响不大。
15:02
对吧,关键的问题是导致了什么呀,导致了我最后的数据我保留下来了。就是相当于只要你进入到,只要你进入到这个判断里面了,只要进入到这个if里面了,我的数据就要决定留下来。而我们现在问题就是我的四个并行度呢,我们有可能同时都进入到这个if判断里面了啊,当然也有可能是两个,也有可能是三个。对吧,这是我们最最重的这个问题啊,所以这个这个代码它是一样的啊,本质上都是一路货色,能听懂吧,都存在这个问题的。好吧,来我解释一下啊,就是这个代码我就什么整体注释掉了啊,我们肯定不能这么去搞。真的就是这样啊,就是呃下面呃这个下面代码下面代码啊,在这个分布式呃这个环境中存在什么,存在这个并发问题啊,就是可能哎多个什么并行度啊,同时进入到if的判断中啊。
16:01
同时都进入到。进入到if中,明白吧,导致啊最终啊,最终什么这个保留下啊,多条这个同一个mid的数据。对吧,好了,那你把这个分析明白以后呢,诶这个时候大家又在想,那你刚刚说这个list和set,最终你要选择set,你这这都不行啊。注意你这种写法不行,那我给你换一种写法它就可以了,你看了啊,我要换一种写法,那这种写法我只能拿set来去做啊,我只能拿set来去做。好怎么写呢,我这么来去做看好了啊,我摘这次点,你看现在我干嘛呢,现在我是不是有了这个K了呀,我要去判断这个m midd存在不存在,对不对,我做这个操作摘这是讲SI的。我不判断,我直接就做SI的,我把这么我把什么,我把这个key放到这,我把那个midd放到这,他会给我返回一个结果,这个结果是个浪类型的。
17:08
这什么意思呢,大家注意啊,呃,这个这样吧,我到这里面给你演示一下,你就明白了啊,来,我把它连上啊。我先把服务器一下哈,Red-server,然后呢叫OG model,然后呢叫my red1018对吧,呃,诶错了错了错了错了点。com啊好,我把服务器起来提起来以后呢,我就什么连进去啊,刚这个我就不动了啊,我改个名字啊。行,你看了啊,呃,这样吧,就是我们来操作一下,你看看我SI的,我随便写个K啊,随便写个K,比如说这叫S1吧,好,我要往它里面放东西啊,比如说放V1V2V3啊,我先放个V1吧,看好了啊,这个K我是不存在的啊,就现在我相当于是一个新的K,然后往里面放了一个值回车。
18:01
看返回值啊,放的是一来SI的1V2。看到了吧,好,SI1V3。你能够发现,我们只要放着这个数据,它能够成功的放进去,他给你返回的就是个一,如果说一,我再放个V1。返回了零。说明什么呀,说明你放不进去的情况下,我给你返回的是个零。对吧。好,那如果说你知道了SI的,它是有这个功能的情况下,那你看一下我代码这个这样去写。然后呢,接下来我再按照你的这个结果去做判断,你看了啊,如果说你的,呃,这个比较比较浪吧,啊叫什么叫这个,呃是否是。新的吧。对吧,是否是新的啊,然后了吧,如果说你的A6是等于等于1L的,我问你放成功了吗。
19:07
放成功了没放成功了对吧,因为你看放成功以后返回的是一嘛,就说白了,我加往你的这个什么集合中加,如果我加成功了,我返回的是个一,如果我加失败了,我返回的是个零,那么什么叫加失败,加失败就表示它里面已经有了,你加不进去了,对吧?好,如果说你是一个一的情况下,OK干嘛呀。那我就可以放心大胆去做这个操作了啊,做什么操作呢,直接做他的就可以了。好,现在你看吧,我代码改成这个样子的,还会不会存在我们刚刚分析的那个问题。想一想啊,同学们。
20:03
不存在了吧?啊,这样就不存在了。能听懂吧。啊,这有同学可能都反应不过来,说你这诶这什么情况,这什么意思呀。我给你做个解释啊,这样。我们刚才的问题在哪呢?刚才的问题点就在于你是有一个if判断的。对吧,你是有个if判断的,而且呢,你的if判断里面呢,还有一步操作是往中去写的一个操作。就说白了,现在你是有两步操作,一个是读对吧,一个是写。啊,应该是嘛,一个是判断吧,好吧,一个是判断,一个是写。他们两个是两步操作。能记得吧,那么如果你在这个就是分布式的这个处理环境中。就可能出现我们N多个并行度同时都做了判断的操作。而且同时都满足了对吧,那你只要满足以后,我满足以后,接下来我就是无条件的去做这个写的操作。
21:05
所以说呢,他们都会进行一个写的操作。那这个时候你就出现问题了,因为你的写操作是决定要把数据给他留下来的。对吧,但是我这么写为什么就不会有问题了呢?因为。我们现在就没有什么判断操作了。就是我在写之前,我是没有什么判断操作的,我一上来我就直接去写。那就说白了,你的N多个并行度,你过来以后,你会直接去做这个写操作,那假如说极端一点,他们同时都拿了什么1001,这个m mid对吧,同时都拿了101,这个我要往我的ready去写了,假设我当前的ready都是没有1001的能听懂吧,那就说白了,他们四个都要去写,比如说这是一啊,这是二是三,这是四,他们四个人都要去写。那么他们就会把这个操作呢,都发送给我的radius。但是你要注意是单线程的。
22:02
那就说白了,你们四个发送了命令以后呢,你到了red中以后,你有可能是1234排着号的,有可能什么1324对吧,有可能什么4321,有可能什么4213对吧,就等等等等,反正你甭管是你多少个人,你到了层面以后呢,你只能是老老实实的排着队去走。明白了吧,假设啊,他们到了这个命令,我发到这个以后呢,他们的顺序是1234这个顺序。能理解吧,假设是这种顺序,好,那么接下来你在层面你就老老实实的来一做了一个写操作,那我问你写成功了吗。写成功了。对吧,那么一拿到的结果就是个一。写成功了吗?写成功给你返回一啊,剩下的234我我问你,你再去做这个SI的操作,因为我的一已经写成功了,就说白了,我的1001已经进入到你的了,你的234只能返回零,就他们都是0000。
23:00
明白吧,那我拿到你这个写的结果以后,我再判断结果。这还会有问题吗?就不会有问题了,对吧,因为你看他写成功了,他拿到是1OK,那么就把数据留下来了,那么他们拿到结果都是个零,那一判断这是不满足的,不满足那我就不拿数据了,这个数据我就不保留了。对吧,就相当于我们把把什么呀,把你层面的什么判断是否包含的操作跟什么呀,跟写入了操作。给他什么搞成了一步。之前你是两步啊,你看一下是不是先判断这是一步,然后呢再去写这是一步,这是两步炒作,而现在呢,他既做了判断,又做了写入。这是一部炒作。是帮你去做的。能听懂吧,说是相当于什么,相当于我们把什么,把这个就是判断包含和写入啊,这个实现了什么,实现了这个就是原子操作。
24:04
理解了吧,所以你这样写它就不会再有问题了啊,那就说白了啊SI的啊,如果说你提前就知道啊,它其实是有一个返回结果的,如果你加成功了,我给你返回一加失败了,我给你返回的是个零,对吧,如果你提前知道这个功能,那你上来以后,你根本就不需要做判断,你直接上来就去加吧。对吧,我按照你添加的结果再来做判断,你到底是加成功了还是加失败。明白了吧,啊,这么写就没啥问题了啊OK,所以说呢,你这么一分析的话,那最后我们上面这个结果就出来了吧。对不对,List你有这个功能吗?没有就用就完事了啊。好吧,所以说呢,他们两个从这个基本的功能角度来讲都差不多啊,都能够满足我当前的这个需求,但是呢,你要考虑到这个分布式的一个环境的话。那你用set是更合适的。啊,当然不说,那当然不是说那个,那我的类似就一定不行吗?我没说一定不行。
25:03
但是呢,你要写的话,你绝对没有这个方便。对吧,那你可以什么自己去加什么加这个线程来去什么加这个什么线程锁什么的来去控制它,对吧,这样也可以。能听懂了吧,这样也可以啊,OK,行,我们就不用设计那么多了,因为他人家有一个。摆到你眼前的一个原始操作,你为啥不用呢?对吧,啊,来这就完事了啊,同学们这就写完了啊,好,写完以后把这个结果介绍回来啊。这是我们的叫做呃。就是驱虫吧,啊,Red stream。OK,行,那为了能够看到这个效果哈,我们也是做一个输出打印啊。来做一个输入打印啊呃,我看有个问题啊,不同分区应该还会出现时间靠后的mid先加入的情况吧,对这个无所谓啊。
26:01
我们。不统计你是第一次访问还是第二次访问,我统计的就是你整天对吧,你整天你甭管是早上八点九点,十点还是12点,我最后只要记住你的一条数据就OK了呀。对吧,我记录是早上八点的还是12点的,这无所谓的。对吧,因为我们现在的需求中是没有这个要求的啊,没有这个要求的,我只要记住你的一条数据就完事了,至于你是第一次访问的还是第二次访问的,我不管,只要有一条数据能够标识你这个人就行了。对吧,说这个事情不影响啊。好来吧,那我们就把这个做一个测试啊,这个怎么测呢?嗯,我想想啊,那要测的话就是我看一下你这里有多少张数据,然后呢,我们过滤完以后有多少数据呗。对不对,那我们来去做啊,就是在我测试之前啊,打印一下啊,就是这个是这个叫做呃,第三方啊审查前对吧,然后呢,我们加上一个配置log的set。
27:06
好代码写到这以后,就又又会出现一个问题,为啥呢?因为这哥们是个迭代器啊,你点赛的时候就相当于什么对它进行了一次迭代了,你对他进行一次迭代以后,你下面再去做这个迭代,对不起,它里面没有数据了。能行的吧,他那边没有数据了啊,说你这样做不行啊,我们这么来去做吧。呃,累死一下啊。配置log list对吧,然后呢,我拿它来去做。配置log list,然后这个地方呢,我也改成这个配置log list对吧,这样就可以了,因为我把它转成一个list以后,我的list是可以什么无限次的迭代的。好吧,所以你看啊,我这个第三方审查前,就是我看一下你的长度,OK,然后接下来我对你的数据呢做处理,等我整体都处理完成以后,你看啊,我在这个返回之前吧,就在这啊来这个第三方审查后啊,我们加上这个叫做配置log斯啊的一个长度,就是我最后保留多少的数据。
28:11
能看到吧,最后保了多少数据啊行呃。审查前审查后,那我这个想看到这个效果的话,那我得来一个来一个行动对吧,要一下啊。对吧,喷一下啊。要不你这个不执行啊,他是一个转换的呀,他不执行对吧,我们来一个这个行动啊,行动起来啊行吧,来测一下吧,呃,那这个测的话,我们还得起我的环境啊,环境起一下。刚刚没起环境啊,把环境起一下啊。
29:00
好,嗯,这个是还还差什么呀。9K卡不卡,然后呢,呃。不差了是吧,一下。掀起上游啊。好,稍等啊,我们最后做一个测试啊。诶。完了,我这又又给点错了。好,上游已经起来了啊。
30:06
好,下游也起来了啊,起来以后,呃,现在我们还没还没有什么提交的这个过程啊,说他就只打印这个东西啊,然后呢,下面你看这个就出现这个效果了,对吧?来我们就做测试了啊呃,测试我们生成数据叫Lg.SH我们生成一下杠零三杠二四啊。好,这就开始跑数据了啊呃,跑数据以后我们就回到这里面来去看啊嗯。OK。看一下吧。对吧,这是我们的效果啊,这个这这个下不看这个刚刚我不小心给大家这个一把啊,看这个地方。对吧,来分析一下啊。呃,自我审查前,自我审查后,这个很明显降低了吧,降低以后你再来看啊,审查第三方审查前审查后。
31:00
这个是什么效果,因为我们是四个并行度啊,所以你的每个并行度里面都会打印的,那这个呀,我就不太好跟你说啊,哪哪两个是一对的啊,你看它这个前前前后后后对吧,不太好跟你去说了啊,但是呢,一定是前要大于等于后,你比如这个是21,这个15,这个12。对吧,那你21,呃,十五十二,那你这个12的后面不可能是14对不对。啊,所以你只要能够看到啊,这个钱是大概率情况下,比你这个审查后要大的,或者什么相等的,那这个应该问题就不大啊,再往往下往下看啊这个。这是两个应该还有还有两个在哪,是不是是不是在这呀,这打乱了是吧?来我们看这个啊,这个审查前一个审查后零个前前前后后后,你看这个后的数据是不是越来越少了呀。对吧,好后面就没了啊,像这个效果呀,你越往后测它这个效果越明显啊,我再给你测一次,为什么这么讲呢?因为你越往后跑,我们的radius中所记录的mid呢,就会越来越多。
32:05
对吧,当我记录到一个,比如说我总共有200个人啊,200个m midd,如果说我的中已经记录了200个以后,那你所有的数就是你后面你所有来的数据都会被过滤掉。对吧,所以说你越越往后侧,它这个效果是越明显的啊。我们看看吧。你看这个效果就很明显了吧,审查后你看这个数据是基本上就越来越少了呀。对吧,审查后你看是不是越来越少了呀。对不对。好来数据没了,数据没了以后,这个时候我们这样吧,我们看一下这个red中啊,那我们就呃叫s members啊,我们叫dau啊,然后呢,冒号后面是我们的日期啊,今天是2022杠零三杠二四对吧。你看现在是158个了。对不对,158个,那我再跑一次,你再来看这个效果啊,就是你多测几次啊,这个不喘息也可以啊。你测的次数越多啊,跑的数据越多,然后它这个审查的效果是越明显的啊,过滤效果越明显。
33:06
啊,你看这个是不是越来越明显了呀,审查后基本上快没了,对吧,基本上快没了啊,你看这个。是吧?啊,审查后啊。是不是好来这个时候我们看一下啊,它里面应该数据越来越多了啊,刚刚是158个对吧,现在是你看183了。对吧,啊,就是你的记录的麦的越多,然后你越往后这个效果是越明显的。能听到吧,那如果说我的ready中已经把所有的麦都记录下来了,那你再往后来的数据我一条都不要。好吧,这个我就不再给你去测了啊,大家这个知道怎么去看这个效果啊就OK了,那我们这个第三方这个驱虫它是有效果的啊,我就给大家去说到这儿啊,行停一下。
我来说两句