Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现

GitHub

https://github.com/SmallScorpion/UserBehaviorAnalysis.git

批处理

批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。可以认为,处理的是用一个固定时间间隔分组的数据点集合。批处理模式中使用的数据集通常符合下列特征:

有界:批处理数据集代表数据的有限集合
持久:数据通常始终存储在某种类型的持久存储位置中
大量:批处理操作通常是处理极为海量数据集的唯一方法

流处理

流处理可以对随时进入系统的数据进行计算。流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。流处理中的数据集是“无边界”的,这就产生了几个重要的影响:

  1. 可以处理几乎无限量的数据,但同一时间只能处理一条数据,不同记录间只维持最少量的状 态
  2. 处理工作是基于事件的,除非明确停止否则没有“尽头”
  3. 处理结果立刻可用,并会随着新数据的抵达继续更新。

电商用户行为

电商平台中的用户行为频繁且较复杂,系统上线运行一段时间后,可以收集到大量的用户行为数据,进而利用大数据技术进行深入挖掘和分析,得到感兴趣的商业指标并增强对风险的控制。

电商用户行为数据多样,整体可以分为用户行为习惯数据和业务行为数据两大类。用户的行为习惯数据包括了用户的登录方式、上线的时间点及时长、点击和浏览页面、页面停留时间以及页面跳转等等,我们可以从中进行流量统计和热门商品的统计,也可以深入挖掘用户的特征;这些数据往往可以从web服务器日志中直接读取到。而业务行为数据就是用户在电商平台中针对每个业务(通常是某个具体商品)所作的操作,我们一般会在业务系统中相应的位置埋点,然后收集日志进行分析。业务行为数据又可以简单分为两类:一类是能够明显地表现出用户兴趣的行为,比如对商品的收藏、喜欢、评分和评价,我们可以从中对数据进行深入分析,得到用户画像,进而对用户给出个性化的推荐商品列表,这个过程往往会用到机器学习相关的算法;另一类则是常规的业务操作,但需要着重关注一些异常状况以做好风控,比如登录和订单支付。

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第1张图片

行为分析

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第2张图片

电商用户行为分析——项目模块设计

  1. 热门统计
    利用用户的点击浏览行为,进行流量统计、近期热门商品统计等。
  2. 偏好统计
    利用用户的偏好行为,比如收藏、喜欢、评分等,进行用户画像分析,给出个性化的商品推荐列表。
  3. 风险控制
    利用用户的常规业务行为,比如登录、下单、支付等,分析数据,对异常情况进行报警提示。
    本项目限于数据,我们只实现热门统计和风险控制中的部分内容,将包括以下五大模块:实时热门商品统计、实时流量统计、市场营销商业指标统计、恶意登录监控和订单支付失效监控,其中细分为以下9个具体指标:

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第3张图片
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第4张图片

数据源解析

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第5张图片

数据结构

一份淘宝用户行为数据集,保存为csv文件。本数据集包含了淘宝上某一天随机一百万用户的所有行为(包括点击、购买、收藏、喜欢)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:

UserBehavior
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第6张图片

以apache服务器的一份log为例,每一行日志记录了访问者的IP、userId、访问时间、访问方法以及访问的url,具体描述如下

ApacheLogEvent
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第7张图片

项目模块

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第8张图片

热门实时商品统计

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第9张图片

图解析

大体流程:
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第10张图片
1. 按照商品Id进行分区

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第11张图片
2. 设置时间窗口

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第12张图片

3. 时间窗口(timeWindow)区间为左闭右开,同一份数据会被分发到不同的窗口

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第13张图片
4. 窗口聚合

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第14张图片

5. 窗口聚合示例
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第15张图片

6. 进行统计整理 —— keyBy(“windowEnd”)
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第16张图片
7. 状态编程

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第17张图片

8. 排序输出
Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第18张图片

测试

Flink电商项目第一天-电商用户行为分析及完整图步骤解析-热门商品统计TopN的实现_第19张图片

你可能感兴趣的:(Flink,Gmall)