PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
计算网站App的实时pv和uv,是很常见的统计需求,这里提供通用的计算方法,不同的业务需求只需要小改即可拿来即用。
需求利用Flink实时统计,从0点到当前的pv、uv。
一、需求分析从Kafka发送过来的数据含有:时间戳、时间、维度、用户id,需要从不同维度统计从0点到当前时间的pv和uv,第二天0点重新开始计数第二天的。
二、技术方案-
Kafka数据可能会有延迟乱序,这里引入watermark;
-
通过keyBy分流进不同的滚动window,每个窗口内计算pv、uv;
-
由于需要保存一天的状态,process里面使用ValueState保存pv、uv;
-
使用BitMap类型ValueState,占内存很小,引入支持bitmap的依赖;



