电商用户行为分析架构设计文档

项目名称: 电商用户行为分析
修订时间: 2021-05-31
修订版本: 3.0

一、背景

当今社会,互联网飞速发展,网上购物成为更多人的购物选择,淘宝、京东、拼多多,苏宁等一大批网上商城随之崛起,为人们提供各种各样的网上购物平台,在人们上网购物的同时会产生大量的用户数据,这些用户数据对于这些公司来说非常重要,他们需要针对用户的线上访问时的购物行为,消费行为,业务操作行为进行统计分析,数据挖掘来支撑整个公司的业务运营,精准画像营销、个性推荐等来改善公司的运营效果,这些需求需要我们构建一个基于电商数据的用户行为分析系统来支持。

二、名词解释

名词说明
ODS层存放原始数据,它的作用就是备份。在我们这个第一版的系统里就是直接存放日志数据。
DWD层对 ODS 层的数据进行数据清洗,同时对清洗后的数据生成结构与粒度相同的明细表。粒度举例:如果 ODS 层每条数据代表一小时的数据,那么 DWD 的每条数据就是一小时数据,如果 ODS 是一天的数据,DWD 就是一天的数据。
DWS层以 DWD 为基础,进行轻度聚合的表。举例:如果 DWD 的每条数据代表一小时的数据,那么 DWS 就可以是按照天来聚合的数据。
DWT层DWS 为基础,按照主题进行汇总。举例:把上面提到的按天聚合后的数据,再按照主题统计半年以来的数据。
ADS层以 DWS 或 DWT 为基础,为各种统计报表提供数据。统计报表就是要进行展示的表。
任务调度任务管理就是指在具有依赖关系的多个任务里,先做哪个任务,后做哪个任务,当某个任务失败时怎么实现自动重启。
元数据管理元数据管理就是对 hive 表中的数据进行血缘分析。作用是在表多的时候,如果某一个表出问题了,可以通过可视化的形式快速找出该表时怎么来的,从而解决问题,如果在表少的情况下则用处不太大。

三、设计目标

1.实现功能

主要功能模块:
1.流量指标
2.销售转化指标
3.用户行为活跃率
4.用户价值
5.热门统计
6.监控指标
7.用户画像
8.实时分析
具体实现功能详见用户需求说明书

2.性能指标

2.1数据精确度

严格验证每个数据的录入保证数据录入的无误,显示用户数据要和原始数据一样无差别。

2.2时间特性

在网络通常的情况下用户点击网页后5s内必须出结果

2.3适应性

网页支持主流浏览器的正常加载显示,控制可视化图表和报表显示正常。

四、系统环境

1.环境

hadoop、hdfs、zookeeper、kafka、flume、flink、hive、clickhouse、mysql、clickhouse、Echarts

2.硬件

普通PC机:处理器英特尔七代i5以上,内存4GB以上,存储空间128GB以上。

五、系统设计

1.基础介绍

电商用户行为分析系统主要分为两大部分,离线数据分析和实时数据分析。

离线数据说明:三种数据都有历史数据存在clickhouse中,除开实时分析外,其他任务都是基于离线数据进行的。

实时数据说明:三种数据也会实时产生,通过模拟前端买点产生。重要的指标会进行分析,通过实时大屏展示。实时产生的数据会先存放在mysql中,以天为单位定时运行程序同步到clickhouse中成为历史数据。

数据存储:clickhouse存储历史数据。实时数据先会存到mysql中,以天为单位更新同步到clickhouse中成为历史数据,且mysql只存当天产生的数据。

数据可视化:springboot、vue、echarts

项目流程描述:模拟前端埋点产生三种类型的数据,写入到指定文件中。使用Flume监听实时日志数据,使用kafka接收数据传送到数据分析模块。flink会进行一个初步的清洗转化,讲数据存到mysql中,并写回到kafka,供下游分析任务使用。之后flink再对重要指标进行实时分析传给前端,同时离线数据分析结果通过clickhouse用sql语句得到结果传给前端。mysql数据会以天为单位更新到clickhouse成为历史数据。

实时数仓和传统数仓的对比:

  1. 分层方式,离线数仓为了考虑到效率问题,一般会采取空间换时间的方式,层级划分会比较多(多用hive);则实时数仓考虑到实时性问题,一般分层会比较少(或者说部分分层在数据转换过程中进行),另外也减少了中间流程出错的可能性
  2. 事实数据存储方面,离线数仓会基于离线数据落地的地方( HDFS),实时数仓则会基于消息队列(如 Kafka)
  3. 维度数据存储,实时数仓会将数据放在 KV 存储上面。(本项目数据来自脚本,没有维度数据)
  4. 数据加工过程,离线数仓一般以 Hive、Spark 等批处理为主,而实时数仓则是基于实时计算引擎如 Storm、Flink 等,以流处理为主,本项目使用的是Flink

本项目将采用的是准实时数仓模型:通过查阅资料,发现业务方在实践过程中使用一种准实时数仓模型,其特点是不完全基于流去做,而是将明细层数据导入到 OLAP 存储中,基于 OLAP 的计算能力去做汇总并进行进一步的加工。

为什么使用ClickHouse:ClickHouse最突出的优势就是大量数据的查询操作,但不擅长频繁插入和多表联级查询。本项目表结构较为简单,并且复杂度主要存在于多维度限制条件下数据的查询。本项目几乎所有指标都允许用户自由地在年龄、职业、性别、省份选择限制条件进行查询和对比展示,这意味我们需要频繁地从数据库中进行查询。

2.系统流程图

在这里插入图片描述

3.系统架构图

在这里插入图片描述
在这里插入图片描述

六、数据库设计

待定

七、风险评估

1.已知的或可预知的风险评估

2.与其他系统可能的影响

八、附件及参考资料

Logo

开源、云原生的融合云平台

更多推荐