论文部分内容阅读
数据是信息的载体,信息是数据的内涵。在互联网高速发展和上网人群急剧增长的今天,对于提供网络服务的互联网公司来说,每日都有数以百万计的独立访问用户数,即系统每日要收集大量记录用户浏览信息的Web日志,这些日志数据具有海量、多样、异构、动态等特征。为了增强用户粘性和提高企业效益,需要进行Web日志分析,但传统的数据库已经不能满足海量日志数据对于存储空间和处理时间的要求。所以,如何构建一个更加高效、廉价的海量数据处理系统来存储和处理Web日志数据成为一个关键性的问题。
基于这样一个出发点,本文是基于某企业商业日志数据分析的大环境下,在分析了该企业对于数据处理的定位与需求的基础上,利用一个开源的Hadoop分布式处理平台构建一个高效、稳定的分布式数据仓库系统,从而解决在存储空间和处理时间上的要求,用以满足企业对海量数据处理的需求。
首先分析系统的数据存储和管理模块,从Hadoop分布式平台的数据存储和管理、Oracle数据库中数据的存储与管理两部分进行阐述的。接下来进行系统核心模块数据处理框架的设计,首先在分析Hadoop集群技术及自身数据处理需求的基础上,对Hadoop分布式平台进行了一层轻量级的封装,并从任务XML配置、任务XML解析、框架调用方面进行了详细阐述;接着进行数据仓库中数据处理的架构设计,根据数据模型将数据仓库划分为ODS(Operation Data Store)层、DW(Data Warehouse)层、DIM(Dimension System)层和DM(Data Mart/Data Mining)层四个模块,自行开发存储过程对数据进行抽取、清洗和装载,并按主题进行重新组织,利用Oracle RAC集群技术实现并行查询,最后采用Business Objects(简称BO)产品进行前端报表的开发直接面向最终数据用户进行数据分析。然后介绍Hive技术应用模块,数据挖掘人员也可以通过Hive技术直接从Hadoop平台上提取数据,将各种业务数据和清理后的web数据进行关联,首先使用传统的雪花模型创建Hive表,然后进行多表之间的Hive表关联。Hive框架的使用,使得程序员进行数据的处理效率提高很多,Hive可以像操作数据库中的数据一样操作分布式文件系统中的数据。最后描述了一种任务调度系统来满足数据处理平台上的多任务调度,通过简化的并行、依赖两类任务关系描述平台上多任务之间的调度顺序,从而实现方便的任务调度处理;此外,多任务调度系统还可以捕获任务的运行状态,在任务运行失败时进行报警,以便使问题能够得到及时的处理。
最后,在系统测试与分析中,给出了Hadoop集群的软硬件环境部署,依次对数据导入、任务调度和监控管理等模块进行了测试,并利用一个实际的案例进行了说明。从案例中可以看出,本文的基于云计算的数据仓库系统能够满足设计之初的需要,符合论文研究之初期望达到的效果。