1.3 数据源分析
1.3.1 整体业务需求
本项目分为
在离线分析系统中,我们将模拟业务数据写入 Hive 表中,离线分析系统从 Hive 中获取数据,并根据实际需求(页面单跳转化率分析、各区域热门商品统计等)对数据进行处理,最终将分析完毕的统计数据存储到 MySQL 的对应表格中。
在实时分析系统中,我们将模拟业务数据写入 Kafka 集群中,实时分析系统从 Kafka broker 中获取数据,通过 Spark Streaming 的流式处理对广告点击流量进行实时分析,最终将统计结果存储到 Redis 中
1.3.2 数据源分析
user_info
表
user_info
表, 是一张普通的用户基本信息表
这张表中存放了 网站/APP 所有注册用户的基本信息。
user_info
表中的字段解析如表所示:
字段名称 | 说明 |
---|---|
user_id |
用户 ID , 唯一标识某个用户 |
username |
用户登录名 |
name |
用户昵称或真实姓名 |
age |
用户年龄 |
professional |
用户职业 |
gender |
用户性别 |
product_info
表
product_info
表,是一张普通的商品基本信息表
这张表中存放了网站/APP所有商品的基本信息。
字段名称 | 说明 |
---|---|
proudct_id |
商品 ID,唯一标识某个商品 |
product_name |
商品名称 |
extend_info |
额外信息,例如商品为自营商品还是第三方商品 |
city_info
表
基本的城市信息表
字段名称 | 说明 |
---|---|
city_id |
城市ID |
city_name |
城市名称 |
area |
地区名称,如:华北,华东,西北 |
user_visit_action
表
user_visit_action
表,存放网站或者 APP 每天的点击流数据。通俗地讲,就是用户对网站/APP 每点击一下,就会产生一条存放在这个表里面的数据。
是我们的主表
user_visit_action
表中的字段解析如表所示:
字段名称 | 说明 |
---|---|
date |
日期,代表这个用户点击行为是在哪一天发生的 |
user_id |
用户 ID,唯一标识某个用户 |
session_id |
Session ID,唯一标识某个用户的一个访问 session |
page_id |
页面 ID,点击了某些商品/品类,也可能是搜索了某个关键词,然后进入了某个页面,页面的 id |
action_time |
动作时间,这个点击行为发生的时间点 |
search_keyword |
搜索关键词,如果用户执行的是一个搜索行为,比如说在网站/app 中,搜索了某个关键词,然后会跳转到商品列表页面; |
click_category_id |
点击品类 ID,可能是在网站首页,点击了某个品类(美食、电子设备、电脑) |
click_product_id |
点击商品 ID,可能是在网站首页,或者是在商品列表页,点击了某个商品(比如呷哺呷哺火锅 XX 路店 3 人套餐、iphone 6s) |
order_category_ids |
下单品类 ID,代表了可能将某些商品加入了购物车,然后一次性对购物车中的商品下了一个订单,这就代表了某次下单的行为中,有哪些商品品类,可能有 6 个商品,但是就对应了 2 个品类,比如有 3 根火腿肠(食品品类),3 个电池(日用品品类) |
order_product_ids |
下单商品 ID,某次下单,具体对哪些商品下的订单 |
pay_category_ids |
付款品类 ID,对某个订单,或者某几个订单,进行了一次支付的行为,对应了哪些品类 |
pay_product_ids |
付款商品 ID,支付行为下,对应的哪些具体的商品 |
city_id |
城市 ID,代表该用户行为发生在哪个城市 ,和城市信息表做关联 |
实时数据
程序每 5 秒向 Kafka 集群写入数据,格式如下:
格式: timestamp province city userid adid
字段名称 | 取值范围 |
---|---|
timestamp |
当前时间毫秒 类型:数字 |
userId |
用户id,类型:数字 |
area |
东北、华北、西南 类型:文本 |
city |
城市中文名: 北京、上海、青岛等 类型:文本 |
adid |
点击的广告编号,数字 |