目录
大数据专业实习报告........................................................................................................ 1
1. 项目概述..................................................................................................................... 5
1.1. 项目背景............................................................................................................ 5
1.2. 项目流程............................................................................................................ 5
2. 功能需求描述.............................................................................................................. 6
2.1. 系统功能组成..................................................................................................... 6
2.2. 数据描述............................................................................................................ 6
2.3. 功能描述............................................................................................................ 8
2.3.1. 流量概况分析........................................................................................... 8
2.3.2. 日新日活分析........................................................................................... 8
2.3.3. 交互事件分析........................................................................................... 9
2.3.4. 广告事件分析........................................................................................... 9
3. 架构设计..................................................................................................................... 9
3.1. 名词解释............................................................................................................ 9
3.2. 系统环境............................................................................................................ 9
3.2.1. 软件......................................................................................................... 9
3.2.2. 硬件......................................................................................................... 9
3.3. 系统设计............................................................................................................ 9
3.4. 系统架构图....................................................................................................... 10
4. Web原型设计............................................................................................................. 10
4.1. 流量概况分析模块............................................................................................ 10
4.2. 日新日活分析模块............................................................................................ 11
4.3. 交互事件分析模块............................................................................................ 11
4.4. 广告事件分析模块............................................................................................ 12
5. Web设计.................................................................................................................... 12
5.1. 概念总览图....................................................................................................... 12
5.1.1. 分层:四层结构...................................................................................... 13
5.1.2. 分包:前端和后端.................................................................................. 13
6. 数仓表结构设计......................................................................................................... 15
7. 工程搭建.................................................................................................................... 16
7.1. 项目结构.......................................................................................................... 16
7.2. 修改父项目的pom文件.................................................................................... 17
8. 字典构建.................................................................................................................... 18
8.1. 编写构造SparkSession函数............................................................................... 18
8.2. 地理位置字典构建............................................................................................ 19
8.2.1. 提取数据库中地理位置的经纬度............................................................. 19
8.2.2. 将geo坐标转变为hashgeo编码.............................................................. 21
8.3. id映射字典构建................................................................................................ 25
8.3.1. 在父项目pom中添加fastjson依赖.......................................................... 25
8.3.2. 在dataware子项目中添加graphx依赖..................................................... 26
8.3.3. 编写代码................................................................................................ 27
8.3.4. 运行测试................................................................................................ 28
9. 数据预处理................................................................................................................ 28
9.1. 编写代码.......................................................................................................... 29
9.1.1. 编写AppLogBean实体类........................................................................ 29
9.1.2. 编写AppLogDataPreprocess..................................................................... 30
9.2. 运行测试.......................................................................................................... 34
9.3. 打包提交线上运行............................................................................................ 34
9.3.1. 将代码中写死的路径换成参数形式.......................................................... 34
9.3.2. 在父项目中添加编译java和scala的插件................................................. 36
9.3.3. 项目打包并上传...................................................................................... 37
9.3.4. 将数据文件上传至hdfs............................................................................ 38
9.3.5. 提交项目jar包........................................................................................ 39
10. 数仓构建.................................................................................................................. 40
10.1. ODS层数据加载.............................................................................................. 40
10.1.1. 启动hive............................................................................................... 40
10.1.2. 创建数据库data_warehouse.................................................................... 40
10.1.3. 创建外部分区表ODS_APP_LOG........................................................... 40
10.1.4. 加载数据............................................................................................... 42
10.2. DWD 层建模及开发........................................................................................ 43
10.2.1. 全局数据明细表:DWD_APL_GLB_DTL............................................... 43
10.2.2. 页面描述信息维表DIM_PG_INFO......................................................... 46
10.2.3. 流量事件明细表:DWD_APL_TFC_DTL............................................... 47
10.2.4. 交互事件明细表:DWD_APL_ITR_DTL................................................ 51
10.2.5. 广告信息描述维表DIM_AD_INFO........................................................ 54
10.2.6. 广告事件明细表DWD_APL_ADV_DTL................................................. 55
10.3. 流量概况分析................................................................................................. 59
10.3.1. DWS层建模及开发................................................................................ 59
10.3.2. ADS层报表开发.................................................................................... 63
10.4. 日新日活分析................................................................................................. 67
10.4.1. DWS层建模及开发................................................................................ 67
10.4.2. ADS层报表开发.................................................................................... 71
10.5. 新用户留存分析.............................................................................................. 76
10.5.1. 新用户留存记录表:ADS_APL_NRT_REC............................................. 76
10.6. 用户活跃成分分析.......................................................................................... 77
10.6.1. 用户连续活跃区间记录表:DWS_APL_UCA_RNG................................ 77
10.6.2. 访问间隔分布用户聚合表:DWS_APL_ITV_AGU.................................. 79
10.7. app版本升级分析............................................................................................ 81
10.7.1. app版本升级统计报表:ADS_APL_APP_UPG........................................ 81
10.8. 交互事件分析................................................................................................. 83
10.8.1. 事件次数会话聚合表:DWS_APL_ITF_AGS.......................................... 83
10.8.2. 事件次数用户聚合表:DWS_APL_ITR_AGU......................................... 85
10.8.3. 交互事件概况统计报表:ADS_APL_ITR_CUBE.................................... 87
10.8.4. 交互事件top100用户记录表:ADS_APL_ITR_TOP100_U...................... 90
10.9. 访问路径分析................................................................................................. 92
10.9.1. 用户访问路径明细记录表:DWD_APL_RUT_DTL................................. 92
10.9.2. 访问路径概况统计报表:ADS_APL_RUT_OVW.................................... 94
10.10. 转化漏斗分析................................................................................................ 96
10.10.1. 漏斗转化报表:ADS_APL_LD_OVW................................................... 96
10.11. 广告事件分析.............................................................................................. 100
10.11.1. 广告概况统计报表:ADS_APL_ADV_OVW....................................... 100
11. olap平台开发.......................................................................................................... 102
11.1. presto安装与配置........................................................................................... 102
11.1.1. 下载presto........................................................................................... 103
11.1.2. 上传压缩包.......................................................................................... 103
11.1.3. 解压.................................................................................................... 103
11.1.4. 创建Presto数据目录............................................................................ 104
11.1.5. 创建配置文件所在目录和相应配置文件................................................ 104
11.1.6. Presto属性配置.................................................................................... 104
11.1.7. Connector配置...................................................................................... 105
11.1.8. 分发presto........................................................................................... 106
11.1.9. 分别修改hadoop02和hadoop03节点上的node.propertis........................ 106
11.1.10. 配置环境变量.................................................................................... 106
11.1.11. 分发环境变量.................................................................................... 107
11.1.12. 使环境变量起作用............................................................................. 107
11.1.13. 启动presto......................................................................................... 107
11.1.14. 查看webUI........................................................................................ 107
11.1.15. presto cli 命令行使用.......................................................................... 107
11.2. 后端开发....................................................................................................... 110
11.2.1. 流量概况分析...................................................................................... 110
11.2.2. 日新日活分析...................................................................................... 122
11.2.3. 交互事件分析...................................................................................... 134
11.2.4. 广告事件分析...................................................................................... 148
11.3. 前端开发....................................................................................................... 149
11.4. 前后端联调................................................................................................... 150
11.5. 效果展示....................................................................................................... 152
11.5.1. 流量概况分析...................................................................................... 152
11.5.2. 日新日活分析...................................................................................... 155
11.5.3. 交互事件分析...................................................................................... 156
11.5.4. 广告事件分析...................................................................................... 157
12. 项目总结................................................................................................................ 158
12.1. 心得.............................................................................................................. 158
12.2. 不足.............................................................................................................. 158
基于大数据技术的用户日志数据分析及可视化平台搭建项目
- 项目概述
- 项目背景
随着我国科学技术水平的不断发展,计算机网络技术的广泛应用,我国已经步入了大数据时代。在大数据背景下,各种繁杂的数据层出不穷,一时难以掌握其基本特征及一般规律,这也给企业的运营数据分析工作增添了不小的难度。在大数据的背景下,基于大数据前沿技术构建企业运营数据分析平台系统受到越来越多的企业的重视,在具体的数据分析工作中,也起到了越来越重要的作用。通过建立完善的运营数据后台管理系统,能够实现对分析展示系统的用户访问、业务操作及系统运行状态监控等进行有效管控。
-
- 项目流程
模拟日志数据,通过字典构建、数据预处理将处理后的数据作为数仓的数据源、导入Hive中,通过ODS层、DWD层、DWS层和ADS层进行数仓的构建,共构建了27个数据表。最后通过Presto整合Hive,将SpringBoot项目连接Presto数据源进行前后端开发与前后端联调,最终通过Echarts图表呈现在Web界面中。具体流程图如下:
- 功能需求描述
- 系统功能组成
主要功能模块:
- 流量概况分析
- 日新日活分析
- 交互事件分析
- 广告事件分析
- 数据描述
{
"eventid":"AppStart",
"event":
{
"adId":"71",
"pgId":"27",
"adPosition":"",
"adType":"",
"adTitle":"",
"adSource":"",
"adResourceID":""
},
"user":
{
"uid":"001417",
"account":"",
"email":"",
"phoneNbr":"",
"birthday":"",
"isRegistered":"",
"isLogin":"",
"addr":"",
"gender":"",
"phone":
{
"imei":"",
"mac":"00-00-00-0d-38-52-ec",
"imsi":"59997166",
"osName":"iOS",
"osVer":"7.3",
"androidId":"20001417",
"resolution":"2460×1850",
"deviceType":"HUAWEI8",
"deviceId":"fjkef",
"uuid":"89995749"
},
"app":
{
"appid":"com.51doit.mall",
"appVer":"1.23",
"release_ch":"豌豆荚",
"promotion_ch":"01"
},
"loc":
{
"areacode":"520000000",
"longtitude":"20.0",
"latitude":"0.0",
"carrier":"ISP02",
"netType":"3G",
"cid_sn":"00004251",
"ip":"246:101:134:109"
},
"sessionId":"464a501a-f18a-4f80-9025-2a978ace23f3"
},
"timestamp":1654636378900
}
Key | 解释 |
eventid | 事件id |
event | 事件 |
adId | 广告id |
pgId | 页面id |
adPosition | 广告位置 |
adType | 广告类型 |
adTitle | 广告标题 |
adSource | 广告源 |
adResourceID | 广告源id |
user | 用户 |
uid | 用户id |
account | 账户 |
email | 邮箱 |
phoneNbr | 电话号码 |
birthday | 出生日期 |
isRegistered | 是否注册 |
isLogin | 是否登陆 |
addr | 地址 |
gender | 性别 |
phone | 电话 |
imei | 国际移动设备识别码 |
mac | MAC地址 |
imsi | 国际移动用户识别码 |
osName | 操作系统名字 |
osVer | 操作系统版本 |
androidId | Android设备唯一标识? |
resolution | 屏幕分辨率 |
deviceType | 设备类型 |
deviceId | 设备id |
uuid | 通用唯一识别码(Universally Unique Identifier) |
app | 手机软件 |
appid | 软件id |
appVer | 软件版本 |
release_ch | 发行渠道 |
promotion_ch | 升级渠道 |
loc | 位置 |
areacode | 地区代码 |
longtitude | 经度 |
latitude | 纬度 |
carrier | 运营商 |
netType | 网络类型 |
cid_sn | |
ip | 网际互连协议(Internet Protocol) |
sessionId | 会话id |
timestamp | 时间戳 |
-
- 功能描述
- 流量概况分析
各个维度下的流量概况,如:pv数、uv数、访问次数等折线图及明细报表,维度包括:省份、城市、区县、设备类型、操作系统名称、操作系统版本、发行渠道、升级渠道。
-
-
- 日新日活分析
各个维度下的日新或日活数柱状图及明细报表,维度包括:省份、城市、区县、设备类型、操作系统名称、操作系统版本、发行渠道、升级渠道。
-
-
- 交互事件分析
- 交互事件概况分析
各个事件发生的总次数和总人数折线图及明细报表。
- 交互事件用户Top10分析
各个事件维度下,事件发生次数最多的前10个用户的柱状图及明细报表,维度包括:投诉事件、点击事件、打开事件、浏览事件、点击频道事件、评论事件、进入选项事件、点赞事件、获取代码事件、下载事件、登录事件、搜索事件、分享转发事件、报名事件、查看内容详细信息事件、网页停留事件。
-
-
- 广告事件分析
每个广告的曝光次数、曝光人数、点击次数、点击人数的折线图及明细报表。
- 架构设计
- 名词解释
ODS层:操作数据存储(Operational data storage),存放原始数据,它的作用就是备份。
DWD层:细节数据层(data warehouse detail ),对 ODS 层的数据进行数据清洗,同时对清洗后的数据生成结构与粒度相同的明细表。
DWS层:应用程序数据存储(Application Data Store),服务数据层(data warehouse service),以 DWD 为基础,进行轻度聚合的表。
ADS层:联机分析处理(Online Analytical Processing),以 DWS 或 DWT 为基础,为各种统计报表提供数据。统计报表就是要进行展示的表。
-
- 系统环境
- 软件
Hadoop、Spark、Hive、Presto、Echarts、SpringBoot。
-
-
- 硬件
集群中共三台节点,每台节点内存3G、CPU 2 核、磁盘分别为50G、20G、20G。
-
- 系统设计
数据采集:通过模拟数据产生
数据存储:HDFS、Hive
数据计算:Spark、Hive
数据可视化:Echarts、SpringBoot
-
- 系统架构图
- Web原型设计
- 流量概况分析模块
-
- 日新日活分析模块
-
- 交互事件分析模块
-
- 广告事件分析模块
- Web设计
- 技术选型:SpringBoot
- 前端:Echarts
- 数据库:Hive
- 数据库访问:JDBC
- 概念总览图
-
-
- 分层:四层结构
- 视图层:视图根据接到的数据最终展示页面给用户浏览。
- web控制层:响应用户请求。
- 业务逻辑层:实现业务逻辑。
- 数据访问层:访问数据库。
-
- 分包:前端和后端
- 后端分包