00:00
第一题呢,是我们的一个UV计算啊,是咱们的一个UV计算啊好,那在这个当中呢,我们来看一下啊,首先我们需求UV呢,Unique visit啊就是独立访客的意思,那我们一般呢,是求日活。啊,求这个日活对吧,每日活运货,那很明显的一个点就是说我们只要今天。这个数据对吧,只要今天这个数据好,那我们分一下思路啊,第一个识别客户,他是因为我们是通过这个页面日志来做的啊,我们从页面日志当中来取这个内容,好,既然我们要今天的一个独立访客,那在日志当中啊,我们给他看一下。呃,我打开给大家看一下啊。来找到我们的。莫NK,然后呢,RT这个。
01:02
然后log斯APP的logo艾对吧,好,那我们普通的一个页面日志,我看啊,这是启动日志不行,哎,这个是一个页面日志,好,那我们看啊,我们既然要找这种独立的访客看这个地方。我们要今天才进到我们系统的,那看这一条数据它是一个什么。他有上一跳。啊,它有上一跳,那如果说我们要的是这种什么呢?就是今天第一次访问的这个数据,那这种数据要不要过滤掉。要不要把这种数据过滤掉?要过滤掉吧,啊,要过滤掉啊,那这里边有一个东西,我也需要给大家解释一下,那有同学可能会问了啊,可能会问了,问什么东西呢,是这样哎,比方说我在这个凌晨23:59:59的时候。
02:04
我访问了一下,我刚进入这个页面,我这条日志呢,Last配置ID为now对吧,没有last配ID好,那我在这个第二天00:00:01的时候,访问了第二个页面,它的上一跳是不是它。它的上一条是不是刚才这个页面那有同学说了,哎,我这个应该算今天的第一次访问啊,注意在正常的需求当中,这个不算。这个不算啊。对吧,我们要的是今天登录的啊,不要昨天登录的,你只是说昨天登录的没退出而已,我不要这种数据,能听明白吧。那如果说这这个数据算第二天的第一次登录,那我们就不能按它过滤了,对不对,就这个过滤条件就没用了,能不能理解。
03:01
能不能理解?可以的,对吧?啊,这个是不难的啊,这个不难的啊,行,那所以呢,第一个条件我们就要找上一跳为long的对不对,对吧,这是第一个条件,这就是我们刚才看到文档当中第一个啊识别它是访客打开的第一个页面,第一个页面对吧,就上一条文档的表示这个访客开始进入我们应用,这是其中的一个条件,那另外光有这个条件就够了吗?还不行吗?我们要做日活,也就是每天要做数据的去重。我们是不是要每天做数据的去重,那也就是说我找到这条数据之后,我确认它是第一条,我就把它写出去,如果不是第一条,我是不是过滤掉。对不对,好,那这个时候我们应该怎么做呢。就是这个在A篇范围内进行去重。三个二啊,三减一有点过分了啊,现在。
04:05
你等会儿,你等会儿让我看懂弹幕的时候还得要开根号是吗?还得算微微分方程啊,搞一个微积分方程来了啊。要做一天内驱虫,那我们怎么样才能做到这个一天内的驱虫呢?我怎么样才能做到一天内的驱虫呢?想一想用flink什么知识点?按天做驱虫。啊。孙总说了,状态变成。状态,哎。啊,看来大家都是。实践实践实践实践状态。键值状态啊,那就更具体一点了,监控状态对吧。
05:04
加上日期保存状态,你看越来越具体了啊,答的越来越好了,是不是对吧?啊把大家合一合就OK了,好,那这个比较简单啊,我们这样来。就是说整个逻辑我们梳理一下,那确实要用到K的state对不对,监控状态是一个mid。对应一个状态。对不对,好,那这样啊,我们那我们肯定要用这个k state对吧?啊kid state啊。好,那一个我们要给一个mid一个什么呢?状态,那关键的问题,状态里边存什么呢。状态里边存什么东西呢?我们这个状态存什么。
06:10
存TS。纯TS吗?存一个不太好吧,对,存日期精确到日啊,就是年月日吧,今天要存一个日期是不是更好一点啊。你存TS,最后你还得拿出来做计算。对吧,我存日期年月日,我直接判断多好呀,对吧?啊注意存日期啊年月日啊,存一个年月日好,那接下来具体代码逻辑我们也稍微的去梳理一下。对吧,怎么梳理呢?比方说我们来了一条mid的数据,先是不是判断last ID。对吧,先判断那斯倍D它呢,过了他没闹。才继续吧,它不为呢,这条数据我就不要了,它为呢,我才继续,怎么继续呢?然后取出这个什么状态的值,如果状态也为nu呢。
07:10
状态为闹呢?这条数据怎么样保留对不对?好,那如果状态它不等于闹呢?它不等于那呢,它有值了怎么办?这条数据直接扔了吗?直接扔了吗?过滤。判断是不是同一天,对了啊对了。啊,这边呢,如果它不等于呢,注意注意。要做一个事情对吧。看时间是否相等。相等的话,如果说我当前这条数据的时间跟你状态里边的时间相同,说明今天是不是已经这个mid登录过了,那这条数据怎么样不要了。
08:14
对吧,就不要了,好,那如果不等呢,诶,有可能我是那个八月什么十号登录的,我今天又登录了一次,哎,那状态呢,再。在里边对吧,我8月11号来的时候,我8月11号是第一条,但是装的有对吧,我一比较,哎不一样不等,那这条数据要不要。也要保留吧,所以不是说直接过滤掉啊,不是直接过滤掉,而是要再看一下这个状态里边时间是否相同。对吧,当然这一步跟这一步都要更新状态啊,都要把状态更新一下没问题吧?啊,都要更新一下我们的一个状态。OK吗?这个逻辑能不能OK,能不能hold住。
09:05
没问题吧,这个应该是一个比较简单的关于状态编程的一个使用了,对吧?啊,可能比之前学习的时候呢,还要简单一点啊,但是这个需求放在这儿呢,因为后面我们还要给大家扩展一个东西啊,要扩展一个东西啊好,那这是我们对于第一个就是访客UV这个需求做的一个需求分析啊,接下来我们就写代码啊。
我来说两句