- 大数据分析:数据仓库项目实战
- 尚硅谷IT教育编著
- 1024字
- 2021-01-05 18:09:53
2.1 任务概述
项目的需求说明非常重要,不仅可以让程序员了解产品的需求,知道开发的目标结果,也可以让系统应用人员了解业务流程的设计是否完善。所以在项目需求说明书中必须有详细的系统功能说明。
2.1.1 产品描述
本数据仓库项目将数据采集、数据同步导入、数据分层搭建、需求分层实现、脚本实现、任务定时调度、元数据管理等功能集合,提供数据展示页面,让用户通过本数据仓库项目,将电子商务系统产生的用户行为数据和业务交互数据及时同步到数据仓库中,并对数据需求进行分析计算,个别需求可以通过Web页面得到展示。还对即席查询引擎进行了探索接入,并行考虑了三种即席查询引擎,为用户提供即席查询服务。
2.1.2 系统目标
数据仓库系统需要实现的目标如下:
● 环境搭建完整,技术选型合理,框架服务分配合理;
● 信息流完整,包括数据生成、数据采集、数据仓库建模、数据即席查询;
● 能应对海量数据的分析查询;
● 实现元数据管理。
2.1.3 系统功能结构
如图2-1所示,该数据仓库系统主要分为4个功能模块,分别是数据采集、数据仓库平台、数据可视化和即席查询。
图2-1 数据仓库系统的功能模块
数据采集模块主要负责将电子商务系统前端的用户行为数据以及业务交互数据采集到大数据存储系统中,所以数据采集模块共分为两大体系:用户行为数据采集体系和业务交互数据采集体系。用户行为数据主要以日志文件的形式落盘(存储在服务器磁盘中,下同),采用Flume作为数据采集框架对数据进行实时监控采集;业务交互数据主要存储在MySQL中,采用Sqoop对其进行T+1形式的采集。
数据采集模块负责将原始数据采集到数据仓库中,合理建表,并针对数据进行清洗、转义、分类、重组、合并、拆分、统计等,将数据合理分层,极大地减少数据重复计算的情况。在针对固定长期需求进行数据仓库的合理建设的同时,还应考虑用户的即席查询需求,需对外提供即席查询接口。一方面是为了让用户能够更高效地挖掘和使用数据;另一方面是为了让平台管理人员能够更加有效地做好系统的维护管理工作,对数据仓库的元数据信息建立管理。
数据可视化主要负责将最终需求结果数据导入MySQL中,供数据用户使用或者对数据进行Web页面展示。
2.1.4 系统流程图
数据仓库系统主要流程如图2-2所示。前端埋点(指数据采集的技术方式,下同)用户行为数据经生产层Flume Agent、Kafka、消费层Flume Agent落盘到HDFS中,业务交互数据经Sqoop采集到HDFS中,HDFS中的数据经过Hive的相关操作,将数据进行提取转换,形成合理分层,最终得到需求结果数据,将数据导出MySQL中,实现数据可视化,并提供即席查询服务。
图2-2 数据仓库系统主要流程