论文部分内容阅读
在当今的大数据时代,电子商务、社交等各种网站每天都会产生海量的数据。而之前的数据存储、查询工作使用的都是关系型数据库,在面对海量的数据时,关系型数据库的表现却不尽人意。某医疗器械管理系统,系统设计之初使用关系型数据库存储数据。随着系统使用的时间增长,积累的数据量越来越大。由于关系型数据库难以通过对设备简单增加的方式进行扩展,其难以处理海量的数据。NoSQL数据库具备数据模型简单,可以很好地进行线性扩展等特点,其在处理大数据问题上有较大优势。因此,将二者的优势结合起来,以较小的代价应用在系统中,具有十分重要的意义。本文以医疗器械管理系统的业务为基础,结合关系型数据库和NoSQL的优点,提出将数据根据类型进行分库存储的系统架构。使用关系型数据库存储经销商相关的数据,用NoSQL存储医疗器械相关的数据。通过这样的设计,使得在解决海量的医疗器械的数据存储问题的同时,可以保证经销商数据的安全性与事务性不受影响。本文通过设计并实现了混合SQL查询系统,通过对于SQL语句的解析,优化等工作,将其按照不同的数据源分发到相应的系统中进行查询,根据查询数据获取到最终结果。在不改变系统结构的情况下,使得原来的系统可以支持关系型数据库与NoSQL相结合的系统架构。本文设计并实现了基于SSD的混合缓存架构,通过固态硬盘的使用,提高了 RowCache的命中率,提高了 Cassandra的读性能。本文设计的系统架构分为内存层和SSD层两个部分。并通过热数据选取算法,将数据根据热度存储在不同区域,并根据相应的数据转移机制进行转移,发挥内存和固态硬盘各自的优势。整个系统是在Cassandra提供的缓存接口的基础上设计并实现的,并不会对Cassandra的正常使用产生影响。经测试,系统运行情况良好,相比于原来的系统,性能有所提升。