论文部分内容阅读
伴随着物联网时代的到来,越来越多的传感器设备将接入到互联网中,庞大规模的传感器每时每刻产生着大量的数据。为了解决传感器数据高时效性、高吞吐量的问题,结合实时系统与数据库技术,实时数据库孕育而生。实时数据库在事务的优先级分派、并发控制方面有深度优化,在处理高时效性数据方面存在着较强的优势;但是实时数据库一般通过数据压缩、单点存储的方式来处理历史数据,在历史数据处理方面存在着存储量低、查询效率低下、不便于拓展、数据精度损失的弊端。 当前 Hadoop/MapReduce已经成为大数据处理技术的标准,而 HBase是架构在Hadoop集群基础之上的分布式数据库,在处理大数据时有 MapReduce作为高效并行化计算架构,具有高读写性、高扩展性、高可靠性和高存储量的优势。但是当HBase行键设计不合理时,易出现集群负载不均衡,写入效率低下的问题,并且HBase在复杂条件查询方面支持性也比较差。 为解决实时数据库的上述问题,结合NoSQL类型数据库在处理海量数据方面具有的高扩展性、高性能、高可靠性、稀疏性、能够存储大容量数据,关系型数据库能够支持复杂查询的优势,本文设计并实现了一种融合关系型数据库和HBase的海量传感器信息存储系统,所做的主要贡献如下: (1)数据集中式存储:将原来离散分布在各地的实时数据库数据,通过多租户机制集中式存储到HBase中,从而能够有效、快速地对历史数据进行统计、挖掘。 (2)提高HBase写入性能:通过合理的RowKey设计、并根据Rowkey范围预分区,实现了整个集群的负载均衡;通过多线程并发、批量数据写入提高HBase写入速度;引入多源缓冲策略,将写入失败的数据重新放入缓冲区,保证了数据的完整性。 (3)保证数据完整性:对实时数据库的原有的数据结构进行映射,将映射后的元数据信息保存到关系型数据库中,将传感器产生的历史数据保存到HBase中,实现了传感器元数据与历史数据分离,进而保留了原有实时数据库数据逻辑结构的特点。 (4)设计了高效的查询模块,支持两种查询语言:对查询语言的特点进行了分析,设计了高效的查询调度流程,同时支持ChinSQL、SQL数据查询语言,保留了实时数据库查询的特点,提高了数据查询的便捷性。