尚硅谷大数据项目之电商分析平台
—————————————————————————————
尚硅谷大数据项目之电商分析系统
(作者:章鹏)
官网:www.atguigu.com
版本:V1.0
第一章 项目框架
1.1 项目概述
本项目来源于企业级电商网站的大数据统计分析平台, 该平台以 Spark 框架为
核心,对电商网站的日志进行离线和实时 分析。
该大数据分析平台 对电 商网站的各种用户 行为 (访问行为、购物 行为 、广告点
击行为等)进行分析,根据平台统计出来的数据,辅助公司中的 PM(产品经理)、
数据分析师以及管理 人 员分析现有产品的情 况 ,并根据用户行为分 析 结果持续改进
产品的设计,以及调 整 公司的战略和业务。 最 终达到用大数据技术 来 帮助提升公司
的业绩、营业额以及市场占有率的目标。
本项目使用了 Spark 技术生态栈中最常用的三个技术框架, Spark Core、 Spark
SQL 和 Spark Streaming,进行离线计算和实时计算业务模块的开发。实现了包括用
户访问 session 分析、页面单跳转化率统计、热门商品离线统计、广告流量实时统计
4 个业务模块。通过 合 理的将实际业务模块 进 行技术整合与改造, 该 项目几乎完全
涵盖了 Spark Core、 Spark SQL 和 Spark Streaming 这三个技术框架中大部分的功能
点、知识点,学员对于 Spark 技术框架的理解将会在本项目中得到很大的提高。
图 1-1 Spark 计数框架
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
1.2 项目框架
1.2.1 项目整体框架
图 1-2 项目整体框架
本项目分为离线分析系统与实时分析系统两大模块。
在离线分析系统中,我们将模拟业务数据写入 Hive 表中,离线分析系统从 Hive
中获取数据,并根据实际需求(用户访问 Session 分析、页面单跳转化率 分析、各区
域热门商品统计)对数据进行处理,最终将分析完毕的统计数据存储到 MySQL 的
对应表格中。
在实时分析系统中,我们将模拟业务数据写入 Kafka 集群中,实时分析系统从
Kafka broker 中获取数据,通过 Spark Streaming 的流式处理对广告点击流量进行实
时分析,最终将统计结果存储到 MySQL 的对 应表格中。
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
1.2.2 离线日志采集宏观流程
图 1-3 离线日志采集宏观流程
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
1.2.3 实时日志采集宏观流程
图 1-4 实时日志采集宏观流程
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
1.2.4 离线/实时日志采集框架
图 1-5 离线/实时日志采集框架
图 1-5 是一个企业级的日志处理框架, 这一框架实现了对日志信息进行采集、
汇总、清洗、聚合、 分 析的完整过程,并将 日 志数据分别存储到了 离 线和实时数据
处理模块中,使得分 析 系统可以通过 离线和 实 时两个角度对数据进 行 分析统计 ,并
根据统计结果指导业务平台的改良和优化。
1.3 数据分析
1.3.1 离线数据分析
1. user_visit_action
user_visit_action 表,存放网站或者 APP 每天的点击流数据。通俗地讲,就是用
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
户对网站/APP 每点击一下,就会产生一条存放在这个表里面的数据。
user_visit_action 表中的字段解析如表 1-1 所示:
图 1-6 user_visit_action 表
表 1-1 user_visit_action表字段解析
字段名称
date
user_id
session_id
page_id
action_time
search_keyword
说明
日期,代表这个用户点击行为是在哪一天
发生的
用户 ID,唯一地标识某个用户
Session ID,唯一地标识某个用户的一个访
问 session
页面 ID,点击了某些商品/品类,也可能是
搜索了某个关键词,然后进入了某个页面,
页面的 id
动作时间,这个点击行为发生的时间点
搜索关键词,如果用户执行的是一个搜索
行为,比如说在网站/app 中,搜索了某个关
键词,然后会跳转到商品列表页面;
click_category_id
点击品类 ID,可能是在网站首页,点击了
click_product_id
order_category_ids
某个品类(美食、电子设备、电脑)
点击商品 ID,可能是在网站首页,或者是
在商品列表页,点击了某个商品(比如呷哺
呷哺火锅 XX 路店 3 人套餐、iphone 6s)
下单品类 ID,代表了可能将某些商品加入
了购物车,然后一次性对购物车中的商品下
了一个订单,这就代表了某次下单的行为中,
有哪些商品品类,可能有 6 个商品,但是就
对应了 2 个品类,比如有 3 根火腿肠(食品
品类),3 个电池(日用品品类)
order_product_ids
下单商品 ID,某次下单,具体对哪些商品
pay_category_ids
下的订单
付款品类 ID,对某个订单,或者某几个订
单,进行了一次支付的行为,对应了哪些品
类
pay_product_ids
付款商品 ID,支付行为下,对应的哪些具
city_id
城市 ID,代表该用户行为发生在哪个城市
体的商品
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
2. user_info
user_info 表,是一张普通的用户基本信息表;这张表中存放了网站 /APP 所有注
册用户的基本信息。
图 1-7 user_info 表
user_i 表中的字段解析如表 1-1 所示:
表 1-2 user_info表字段解析
字段名称
user_id
username
name
age
professional
city
sex
说明
用户 ID,唯一地标识某个用户
用户登录名
用户昵称或真实姓名
用户年龄
用户职业
用户所在城市
用户性别
3. product_info
product_info 表,是一张普通的商品基本信息表;这张表中存放了网站 /APP 所
有商品的基本信息。
图 1-8 product_info 表
表 1-3 product_info表字段解析
说明
商品 ID,唯一地标识某个商品
商品名称
额外信息,例如商品为自营商品还是第三
方商品
字段名称
proudct_id
product_name
extend_info
1.3.2 在线数据分析
程序每 5 秒向 Kafka 集群写入数据,格式如下:
格式 : timestamp province city userid adid
字段名称
取值范围
表 1-4 在线数据分析
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】
尚硅谷大数据项目之电商分析平台
—————————————————————————————
timestamp
userId
provice/city
当前时间毫秒
0 – 99
1 – 9
((0L," 北 京 "," 北 京 "),(1L," 上 海 "," 上 海 "),(2L," 南 京 "," 江 苏 省
"),(3L,"广州","广东省"),(4L,"三亚","海南省"),(5L,"武汉","湖北省
"),(6L,"长沙","湖南省"),(7L,"西安","陕西省"),(8L,"成都","四川省
"),(9L,"哈尔滨","东北省"))
adid
0 - 19
1.4 项目需求
图 1-9 需求概述
1.3.1 用户访问 session 统计
用户在电商网站上 ,通 常会有很多的访问 行为 ,通常都是进入首 页, 然后可能
点击首页上的一些商 品 ,点击首页上的一些 品 类,也可能随时在搜 索 框里面搜索关
键词,还可能将一些 商 品加入购物车,对购 物 车中的多个商品下订 单 ,最后对订单
中的多个商品进行支付。
用户的每一次操作,其实可以理解为一个 action,在本项目中,我们关注 点击、
搜索、下单、支付这四个用户行为。
用户 session,是在电商平台的角度定义的会话概念,指的就是,从用户第一次
进入首页,session 就开始了。然后在一定时间范围内,直到最后操作完(可能做了
几十次、甚至上百次 操 作),离开网站,关 闭 浏览器,或者长时间 没 有做操作,那
么 session 就结束了。
以上用户在网站内的访问过程,就称之为一次 session。简单理解,session 就是
某一天某一个时间段内,某个用户对网站从打开 /进入,到做了大量操作,到最后关
闭浏览器。的过程,就叫做 session。
session 实 际 上 就 是 一 个 电 商 网 站 中 最 基 本 的 数 据 和 大 数 据 。 那 么 面 向 消 费 者 /
【更多 Java、HTML5、Android、python、大数据 资料下载,可访问尚硅谷(中国)官
网下载区】