论文部分内容阅读
随着互联网的迅速普及,人们的生活方式已经发生了极大的改变,互联网也将人类带入了大数据时代。在大数据时代,作为一种典型的半结构化文本数据,社交网络数据具备十分重要的价值,利用数据分析技术,企业和研究机构可以感知用户的行为特点、兴趣爱好,也可以进行社会舆情监测。但是,面对不断增长的数据规模,传统关系型数据库系统越发显得力不从心,因此,研究面向海量社交网络数据的存储和查询处理技术,具有十分重要的意义。 近年来,伴随大数据处理技术不断创新发展,开源的Hadoop平台已经得到了广泛认可,几乎成为了大数据处理领域的事实标准。HBase作为基于Hadoop的分布式NoSQL数据库,与传统数据库系统相比,具有更好的可扩展性,主要用于存储海量的结构化、非结构化数据,尤其是带有更新属性的数据。虽然HBase支持数据更新的特性使得它非常适合存储随时间变化的社交网络数据,但是它对于查询分析功能的支持并不理想,对外仅提供简单的查询接口,不能直接支持SQL查询以及对任意列建立索引的功能,因为HBase中的数据是按照行键有序存储的,行键作为数据记录的唯一主键,也是快速检索数据的唯一方法,如果在行键未知的情况下查询列值,则会转化为通过全表扫描进行数据过滤的过程,这显然是极其低效的。此外,现有索引方案在不冗余存储其他列时需读取原始数据表,读取过程普遍采用Point Get方式,在结果集较大的场景下这种方式的读取效率很低。 针对以上问题,本文首先研究了面向HBase的多维索引方案,提高了数据检索效率,然后针对索引方案普遍存在的读取数据效率较低的问题,设计了基于行键分布的数据读取算法。本文的主要贡献概括如下: (1)结合海量文本型数据的查询需求,提出了面向HBase存储的基于全文索引技术的多维索引方法,该方法能够支持多维条件查询以及高效的全文检索,同时本文也对B+tree索引技术进行了研究,探索利用其优化区间查询的可行性。 (2)针对利用行键访问HBase数据表读取大量数据效率低的问题,本文提出了基于行键分布的数据读取算法,提升了索引方案的数据读取效率。 (3)文章最后将以上技术进行整合,并基于开源的Impala引擎实现了一个融合索引的查询处理系统,并开展一系列实验测试,通过与现有面向HBase的主流开源查询引擎及二级索引方案进行查询性能和索引构建开销对比,验证了本系统在查询性能、索引开销以及可扩展性方面的优势,提升了HBase应对复杂数据分析需求的能力。