论文部分内容阅读
随着互联网应用的广泛普及,越来越多的应用程序收集了大量的数据,伴随着这些数据的增长,系统的访问量和并发量都在剧烈增加,系统性能问题愈发严重。随着大数据时代到来,无论是传统企业还是新型的互联网企业,都不可避免的面临大数据的挑战。如何廉价的存储和高效的访问海量数据,已经是企业面临的重大难题。本文中所指的影视大数据分析系统是指本人所在实验室设计开发的一个基于SpringMVC + MyBatis框架的Web信息系统,就数据库架构设计而言是一个典型的单机存储系统。随着影视大数据分析系统中业务表越来越多,表中的数据量也越来越大。海量数据的存储与访问对数据库造成了相当大的负载,数据处理能力和访问效率均遭遇瓶颈。本文针对影视大数据快速增长的特点,从分布式数据库的角度出发,探索如何将单机存储系统扩展为分布式存储系统。本文的主要工作集中在以下几个方面:第一,介绍大数据背景和现有的大规模分布式存储系统,对现有的NoSQL数据库进行了分类总结,研究其设计思想。第二,基于MySQL Sharding技术,设计了高效、可扩展的存储架构;提出了分库、水平分表、分区三层拆分模型,综合使用垂直和水平切分等多种解决方案将数据散列到不同的库或关系表中。同时,就ORM框架设计了分布式数据访问层,有效的缓解了对数据库的压力,提高了数据访问效率。第三,分析各节点的数据特点,使用数据库复制技术,设计了高可用的集群方案;解决单点问题,采用Amoeba开源框架实现读写分离和负载均衡。综上,本文从可扩展性,访问效率,并发读写,高可用等多个方面,阐述了大数据存储中面临的关键问题,并提出了相应的解决方案。同时立足影视大数据分析系统,对本文中提到基于分布式关系型数据库的高效存储和访问方案,在实践上予以了验证。