在电商行业,采用flink进行热门实时流量统计,流量PV和UV分析市场营销分析恶意登录监控订单支付实时监控等场景的解决方案
Posted 阿啄debugIT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在电商行业,采用flink进行热门实时流量统计,流量PV和UV分析市场营销分析恶意登录监控订单支付实时监控等场景的解决方案相关的知识,希望对你有一定的参考价值。
基本需求
采用flink进行热门实时流量统计,流量PV和UV分析、市场营销分析、恶意登录监控、订单支付实时监控等场景。
解决思路
PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。
解决思路:
- 在所有用户行为数据中,过滤出浏览("pv")行为,进行统计。
- 构建滑动窗口,窗口长度为1小时,滑动距离为5分钟。
ip,pv,uv的区别:
- 独立IP表示,拥有特定唯一IP地址的计算机访问您的网站的次数,因为这种统计方式比较容易实现,具有较高的真实性,所以成为大多数机构衡量网站流量的重要指标。比如你是ADSL拨号上网的,你拨一次号都自动分配一个ip,这样你进入了本站,那就算一个ip,当你断线了而没清理cookies,之后又拨了一次号,又自动分配到一个ip,你再进来了本站,那么又统计到一个ip。
- 但是UV(独立访客)没有变,因为2次都是你进入了本站。
- PV高不一定代表来访者多;PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量。比如一个网站就你一个人进来,通过不断的刷新页面,也可以制造出非常高的PV。
- ip是一个反映网络虚拟地址对象的概念,独立用户是一个反映实际使用者的概念,每个独立用户相对于每个ip,更加准确地对应一个实际的浏览者。使用独立用户作为统计量,可以更加准确的了解单位时间内实际上有多少个访问者来到了相应的页面。
flink处理数据,数据结构的转变
按照商品ID进行分区:
设置时间窗口:
- 时间窗口,为左闭右开
- 同一份数据,会被分发到不同的窗口
窗口聚合:
窗口聚合策略---没出现1条记录,就加1
实现AggregateFunction 接口
AggregateFunction 比 ReduceFunction 更加的通用,它有三个参数:输入类型(IN)、累加器类型(ACC)和输出类型(OUT)。
输入类型是输入流中的元素类型,AggregateFunction有一个add方法可以将一个输入元素添加到一个累加器中。该接口还具有创建初始累加器(createAccumulator方法)、将两个累加器合并到一个累加器(merge方法)以及从累加器中提取输出(类型为OUT)的方法。
定义输出结构-ItemViewCount(itemld,windowEnd,count)
实现WindowFunction接口
interface WindowFunction<IN,OUT,KEY,W extends Window>
窗口聚合实例:
状态编程:
最终排序输出---KeyedProcessFunction
创建一个ListState,用来存储数据
用ProcessFunction来定义KeyedStream处理逻辑
实时流量统计----热门页面
实时流量统计---PV和UV
市场营销分析---APP市场推广统计
市场营销分析---页面广告统计
恶意登录监控
订单支付实时监控
订单支付实时对账
以上是关于在电商行业,采用flink进行热门实时流量统计,流量PV和UV分析市场营销分析恶意登录监控订单支付实时监控等场景的解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Flink视频教程_基于Flink流处理的动态实时电商实时分析系统