论文部分内容阅读
二十一世纪,人类进入大数据时代,大量历史数据的积累导致数据量高速增长,海量数据领域越来越被人们所重视,该领域涌现出了许多新技术。一方面,人们需要高效存储日益庞大的数据集;另一方面,需要对海量数据进行关联分析,以期获取有益信息。技术的发展和时间的沉淀使得HBase被大家广泛认可,成为海量数据在线存储领域的首选。作为非关系型数据库典型代表,HBase读写性能优异,在分布式场景下具备近线性扩展的聚合吞吐率。 然而,本研究发现,HBase具有以下功能局限性:首先,由于HBase继承自BigTable模型,数据表所有行按照行键的字典序排列存储,并将主键作为数据表的唯一索引,当用户查找非主键列时,无法避免对表进行灾难性的全表扫描;其次,在数据访问方式上,HBase并未将结构化查询语言作为核心实现的一部分,用户无法通过SQL语言查询分析所需数据。 由此,基于HBase实现结构化数据与文本数据的关联查询是用户的重要需求,然而,目前业界并没有相应的解决方案。针对此问题,本文提出了一种可融合结构化及半结构化数据的新的查询框架,实现了基于HBase的SQL与搜索引擎融合查询的可用技术方案,研究SQL执行引擎及全文索引关键技术,并通过大量实验证明系统的可行性和高效性。本文主要贡献包括以下几大类: 1)设计了SQL服务模块。将全文索引功能嵌入SQL服务中,使得HBase支持SQL访问及操作全文索引数据,此外,系统支持将全文索引查询作为SQL查询子条件,连同其它查询条件,提供用户进一步分析处理HBase数据表数据; 2)实现了全文索引执行引擎。该执行引擎包括全文索引创建、更新以及查询这三个核心功能的执行过程管理和实现; 3)提出了数据一致性保证算法。基于HBase的协处理器框架,使用异步方式更新全文索引数据,有效地减少了HBase数据库的写性能损失; 4)构造了一套完整的元数据管理方案。元数据表包含SQL执行依赖的相关信息,存储于HBase数据库,复用HBase管理数据方式维护元数据表,降低了元数据表的维护成本。 大量实验表明系统的每个模块都达到了设计要求。本文研究内容在充分保证了SQL语义正确性的同时,具有很高的全文索引查询性能。由测试结果得出,在查询字段大小4KB,数据量为10W以上时,相比其它方案本系统性能提升1倍及以上,此外,随着数据规模增大,系统具有更高的性能加速比,相较于其它HBase查询系统,本系统在全文索引查询性能上具有明显的优势。