00:01
来,那么来到这里呢,咱们现在啊,要对我们这个材料启动日志来进行一个去除操作,对吧?那么去除操作呢,那这里啊,那我们现在通过什么呢?其实是通过我们的RA对吧,通过咱们这个RA对吧?RA,然后接下来那么咱们现在呢,我有多种方案啊,我现在大家记绍咱们第一种方案的第一种方案,那么第一种方案大家想一想,去虫就是相当于我现在这里边很多数据,就这里面这个现在的这个stream这里法流,它是没有去重的这个数据,对吧?那我采集到之后有些东西我说不要我说我的过滤掉对吧,所以说呢,那你说去除其实也得过滤,那么如果过滤的话,我相信同学们这个算子是不是有现成的呀,叫什么来着过滤。是不是有一个叫filter的对吧?那来呗,过滤呗吧,那咱们现在怎么来过滤呢?对吧?那首先你现在拿到的是什么,你从咱们当前这个Dis stream里边拿到的东西是不是应该是一个JA对象啊,所以说呢,那你现在拿的是一个Jason object对吧,你拿的是一个Jason object对吧?那么咱们过滤之后最终对吧,咱们给它返回什么,是不是true或者for呀,对吧,它根据你现在对我返回true,我保留,如果for的话,我是不不保留了,所暂时啊,咱为了不报错,我先呢给它返回一个空,然后接下来对吧?那么我现在想做到去除操作的话,那肯定呢得去连接我们这个red对吧,如果连接red的话呢,那么咱们现在那是不是得获取我们这red连接的客户端呀,对吧?所以说第一件事,获取我们这get客户端,客户端那这个呢,应该是MY的U点,然接下来get。
01:48
的JD把点VR对吧,那么达现在呢,JD给拿到,拿到之后注意啊,这个东西获取完之后别忘了关对吧,就是因为你连接值,你毕竟连接有线对吧,如果你一直不停的要要要,然后你结果微关的话,那这个东西呢,它肯定会报错对吧?所以说别忘了去关闭我们连接啊,去关闭我们这个连接对吧,那这个呢,就是我们Je.close。
02:13
把这链接关掉,然后接下来,那么你现在呢,拿着这个东西之后,你是不是要从咱们这个RA中来判断一下呀,判断咱们当前对这个设备是否已经登录过,对吧?是否已经咱们登录过,那么怎么判断呢?那么肯定咱们现在呀,可以往专里放数据,要注意啊,咱们原说一服是否登录过,它是否存在是吧?但是我们现在呢,我刚才演示过了,对吧?你要想做的话,是不是你往里边加的时候,咱们是不是可以根据添加这个操作对吧?然后就可以判断一下它是不是登录过,因为你想如果登录过的话,我返回的是一个零,那我可以判断状态,如果没登录过,我是不是应该把当前这个数据给添加到red去呀,所以说肯定要做一次添加的,对吧?那么咱们现在呢,那么你要往里添加,你肯定操作red,操作red,那么你需要什么呢?那你得知道咱们当前呀,这个red它的类型对吧,咱们现在呢,分析了已经类型是什么类型啊,是我们的S,然后接下来。
03:14
那么咱们现在呢,这个K对吧?是什么?我们也分析过,这个应该就是Du对吧?然后接下来在咱们这里加上我的日期2020杠幺零杠二三,然后咱们这个VALUE6,它呢,就是我们这个m mid短,然后咱们这里还有一个pair的失效时间,这个失效时间呢是秒,那就是3600秒乘以一个24小时对吧?哎,这个东西呢,让它短一天啊,有效期一天就行,对吧?然后接下来,那么咱们现在呢,要操作,那首先呢,那你可以什么呀?你可以拼接一个K对吧?你可以拼接咱们这个从啊或者说RA啊中保存咱们那个的登录信息啊,它的一个key的拼接一个这样K,那么如果你要拼接着K的话,那你是不是得获取咱们这个日期呀,对吧?你得获取咱们日期对吧,所以说呢,在咱们这里,我要获取一些咱们东西,第一个获取什么。
04:14
啊啊,两个内容,一个是获取咱们这个登录日期啊,那这个怎么获取呢?咱们杰森啊这的对象里边,这里应该有同学们来看一看啊,在这里咱们这个日期呢,咱们是不是自己加的呀,你这里是不是有DT呀,咱可以获取到了对吧?所以说呢,那这里应该是get,咱们现在这个日期呢,就是string对吧,Get string,然后DT的吧,DT把它呢给获取到,拿到咱们这个日期,那么除了登录日期之外呢,那么这里我是不是应该获取咱们这设备ID啊对吧?来获取我们这个设备ID,这个呢,我也能用到,那么这个设备ID怎么来获取呢?还是通过j c object的点2GET,注意它在哪啊,你看咱们现在设备ID,它是直接在咱们最外层的接对象下面吗?好像不是,它在哪,是不是在咱们这里有common,然后common里边是不是有个叫mid的呀,这common本身是什么,本身是不是又是一个杰森,本身是不是就是杰森呀。所以说咱们。
05:14
获取我们这个m mid的时候,那应该这样,首先呢,J c object.get咱们j c object谁呢?先把咱们common是不是也获取到,然后接下来获取到之后,咱们现在是不是再去获取我们的get string对吧?来干什么呢?把咱们的mid对吧给获取到,然后点VR,然后这个呢是我们的个mid,然后有了这个之后呢,那这样的话,咱们可以拼接给K,那VRDAU,然后呢,咱们这K它等于什么呢?那应该等于我们现在前面这个是dau吧,然后接下来这个是我们现在零八号对吧?然后再加上谁呢?是不是加上咱们DT对吧?这个是不是代表咱们存放当天啊,就当前这个日期的它的一个登录信息的这样一个K吧,对吧,然后其实你拿了这个K了,那么咱们现在呢,想判断一下对吧,那我这个东西是不是已经把这个已经登录过,那么怎么做呢?咱们其实可以这样这个意思,然后这里边我是不是想把咱们S集里放数据呀,怎么放sand。
06:14
比咱们刚演示过嘛,对吧,这个K是谁?是不是就咱BAUK呀,然后接下来,那么咱们现在这里你出来传一个我们的一个值,这个值是谁,是不是就咱们的m mid啊这吧,那么当你往这里放数据的时候,同学们,那么咱们它有一个返回值,这个返回值代表什么呢?是不是代表咱们现在它是不是我们的第一次对吧?它现在呢,是个浪类型,代表的是不是我第一次,对吧?那么如果说我现在呢,在这里咱们啊,这个A的first等于等于E的话,如果等于E的话,那么这个东西是不是应该是第一次呀,对吧,就如果说等于一的话,说明以前啊,咱们没有登录过,说明这是第一次登录,说明是我们这第一次登录,那么第一次登录的话,这个数据咱们是不是应该保留一保留一下呀,对吧,那么咱们保留应该给他返回处,否则的话对吧,那么如果返回的不是一说明啊,啊前面说明今天啊,已经咱们这个登录过了。
07:14
啊,已经登录过了对吧?那么如果你登录过的话,那么咱们这块呢,应该给他返回一个false对吧,应该返回一个false对吧,然后接下来注意啊同学们,那么这块其实呢,你可以把这个操作呀,往上拿关闭链接的操作,对吧?怎么做呢?你直接查完之后,那这个时候呢,咱们其实呢,就可以把连接关掉了,因为你这个数据是不是已经有了呀,对吧?那么在关闭连接之前呢,咱们可以去设置我们的key它的一个失效时间,对吧,设置一下咱们的key它的失效时间,那么怎么设置呢?咱们这个JD,然后点我们现在这里是不是有一个叫pair对吧,这样方法,然后这个K呢是DAU5,咱们这K,然后这个学校时间呢,三啊这个三天啊600秒,然后乘以一个24对吧,但这种这个好像这么写好有点问题。
08:06
这题大家觉得会出现什么什么情况,其实这个睡交时间你可以不设啊,同学们,因为你不设的话,明天的话,它是不是又来了个明天这个K是不是就变化了,到比如说明天的话是不是变成2020,然后1024了,对这个东西你就是不设的话也没问题,对只不过这个东西你放在咱们专辑内存里边是不是也没啥用了。对吧,所以说我得设一下,但这么设的话,好像会有有有点问题,你们选择这么设,这么写会有什么问题吗?对吧,就是每一次我在采集周期里边,我是不是都要执取一次这个方法,对吧?假如说你现在啊,今天从咱们这个运行的时候,肯定从零点开始,对吧?零点的时候呢,你设24小时对吧,我刚诶这个日期24小时,等到一点的时候,我又设一下这个东西,这个K的过去时间是不是又相当于重置了呀,对吧,还好等你到了咱们这个等,比如说咱们现在啊这个是啊,这个零点开始,一天开始,然后等你到了半夜11点的时候,你又来了一下,是不是他还要等24个小时,然后再就是项目。
09:02
对吧,所以说咱们现在应该怎么办呢?是不是就应该第一次给这个K设置一下就行了呀,后边咱们再上再再再去的话,是不是咱就不设了。啊,那么咱们现在这这这东西怎么怎么怎么来做呢?设对吧,就我想判断一下,如果第一次啊,咱们就设,如果已经设过了,咱们就不要再去执行一下这个操做了。对吧,那咱们现在想一想当初啊,咱们要设置我们这个需觉时间对吧,Case先对吧,那么咱们怎么设置呢?有一个咱们的命令或一个方法叫pair,然后加K加上C,那么除了和这个方法咱们和咱试效时间有关系,好像有一个方法是可以查看一下还有多长时间失效法,那个叫叫什么,有印象吗?TTL是吧,然后接下来咱们现在呢,在这里对吧,把这个T拿过来,同学们拿过来之后呢,咱们现在这个这这这个我先设置的吧,我说没设置呢,我没设置是吧?那我没设置的话,大家看是多少是负一。
10:00
对吧,也就没设置是负一,那如果设置了,那是不是就应该是还有多长时间失效啊,对吧,那我现在我完全可以这样对吧,怎么做呢?如果说咱们当前呢,对吧,这个真的点TTL,然后咱们现在dat对吧,如果要是大于零的话。啊,如果大于零,那说明什么?是不是这个东西的,是不是的,这个设置过了,设置过的不设,但如果说小于零是不是咱们负一啊,负一的话,那你想一想,咱们是不是这都没设呢?那没设咱们是不是应该把这个给设一下,对吧?结果现在我判断一下,曾经是不是设置过咱们现在的失效时间啊,对吧,如果说已经设置过了,那这个时候呢,咱们其实呢,就没必要设置,怎么判断呢?就看一看咱们现在还有多长时间失效呗,对吧,如果说我现在是小于是负一的话,它小于零对吧,那说明没设过,没设过的话再设一下对吧,你设完之后以后再去的话,它肯定看多长时间失效对吧?它肯定是个正数的时间,对吧?那这块呢,它已经不再执行了,好,那这样的话,咱们现在呢,整个啊,这个完事了,那么完事之后呢,那么咱们去定一个变量来接收一下点VAR对吧,这个呢是我们这个filter的对吧,D stream对吧,这个呢是我的filter。
11:24
对吧,然后接下来,那么咱们现在呢,来做一个测试对吧?来做一个测试,这个no就不要了,点no就不要了,因为我已经返回出false对吧,然后做一个测试,这个测试我想怎么样能看到效果的同学们,这个测试我这样对吧,它点我们这个count对吧,点我们这个break.count点吧。在咱们这里边呢,我其实可以打印一个什么呀,去打印它的一个我这count,就咱们现在这count是什么,这count本身是不是应该是我们现在这个当前一共当前这采集周期里边一共多少数据啊对吧,然后现在咱们现在呢,在这里对吧,这这这个了不是哪些还是对吧,我现在呢,应该把这个东西我打印出来对吧,就相当于啊,咱们现在执行完我们这看之后对吧,然作业打印,我现在打印的不是我记录了,而是什么呢?而是有多少条记录啊,就记录数啊,不是具体的记录了,对吧?那我为什么这么做呢?大家想一想啊,假如说我现在呢,生成一个数据,然后呢,我就把当前的数据,它已经登录过的信息放到咱们red里边来啊,放到red边来对吧,那么一开始呢,Ready里边是空的,那你放的数据呢,肯定是比较多,但是后来我ready数据是不是越来越多呀,对吧?那么咱们现在呢,在我这里有一个配置,同学们大家可以看一看VI I'm application pro,然后进来有一个配置叫什么呢?叫设备最大值。这个咱们默。
12:53
个人的多大呢?50,也就是说我在模拟生数数据的时候,我一共呢,我就给你模拟了五个50个设备啊,一共就模拟了50个设备,那你想一想对吧,一开始呢,这五城设备肯定都没登录过,你的数据肯定问题比较多,到后来咱们现在是不是登录的设备越来越多呀,你产生的数据是不是越来越小啊,那你输出的count是不是就是对越来越小呀,对吧,那么咱们现在呢,来看一看啊,咱们现在这个效果,对,来看看这效果,呃,首先呢,我把这个运行起来。
13:26
用起来之后呢,那我来把咱们这里面的数据呢,给清一下large对吧?哦,然后这里现在咱们red里边呢,是没东西的对吧,Ready没东西对吧?然后接下来一开始零对吧,现在没有生成数据,然后接下来来到这里呢,我们去把这个操作呀,执行一下对吧,执行一下。来,那么它呢,开始对吧,咱们在采集,那么这个时候呢,咱们现在,哎,第一次一个采集周期记了26条数据,对吧,然后接下来11条37。应该越来越少啊,越少37,这是44倍,对,因为我现在这里边相当于什么,相当于我现在这个ready现在已经有了到48啊。
14:12
对吧,你看我现在一个采集周期,我他一条数据,因为因为什么,因为是不是相当于别的是不是都已经对登录过了呀,别的是不是都已经登录过了嘛,对吧,别的是不都已经登录过了,现在这两个是不50了呀,对吧?50的话,那咱现在把这填一听,同学们对吧?这个我听一下对吧,这个我听一下对吧,然后接下来这个呢,那我现在呢也听一下,那么来到哪呢?可以来到咱们re里边看一看对吧?来接下来来到咱们re里边来kiss我们的星,那目前咱们现在这里边是不是有一个Du,然后再加到咱们当前这个时间呀,然后接下来S我们这个NUMBER4,然后接下来咱们把这K啊给他看一看,对吧?来我现在呢看一看啊,当前这里面多少个数据对吧,一共是50个对吧,一共是50个,那这样的话就达到了一个我们的一个驱虫的一个目的啊,达到驱除的目的,同学们看一看整个这块的代码,这的思路能跟上吗?能理解吗?啊稍微休息一会啊,下课呢看一看,课间看一看啊。
我来说两句