会话分组问题
这里的分组不是简单的分组,而是会话的分组。
比如说,进入一个网站以后,可以连续的点击很多个页面,后台会记录用户的行为日志;
如果T日上午连续点击几个页面后退出了网站,直到第二天的下午才再次进入网站,单单从时间线上来看,昨天退出的那条日志跟今天进入的那条日志是连在一起的,但这两条数据实际上并不是一个会话产生的,如果需要对这样的数据进行分组,将其分在两个不同的会话当中,应该怎么做呢?组与组之间的时间间隔应该是多少呢?
至于是多少得看具体的业务需求了,多年以前我也写过一个关于会话分析的文章,感兴趣的可以看看数仓工具—Hive实战之会话分析可以看看当时的思路和现在的有什么不同呀
当然今天我们的重点在会话分组的实现上,没有很多业务的细节,这里我们假设时间超过1分钟则进入另外一个回话。
我们的数据如下
+----+----------+
| id| ts|
+----+----------+
|1001|1720828123|
|1001|1720828125|
|1001|1720828127|
|1001|1720828143|
|1001|1720828153|
|1001|1720828168|
|1001|1720829168|
|1001|1720829198|
|1001|17208