论文部分内容阅读
当今社会每天都在不断地产生大量的数据,且蕴涵着大量待分析和挖掘的有价值信息。例如数据仓库系统中往往蕴涵了很多有价值的信息供查询和分析,通过对这些信息的分析可帮助企业做出决策。如何在节省机器资源成本的情况下快速获取这些有价值的信息以提高企业的工作效率已成为很多研究者的焦点,传统的RDBMS已经不适应庞大的数据查询和分析,主要是因为其固定的关系模型和低效的表连接操作等,制约了查询的效率,而新型的NoSQL数据库如hyperdex因为它们有着更灵活的存储模式和查询模式正适合解决此类问题,基于hyperdex构建的数据仓库性能上要远高于传统的RDBMS,但为了进一步优化查询效率,hyperdex提供了区域索引,不过当区域中的对象数量较大时,其效率并不是很高。为此,本文基于NoSQL进行了数据分析技术应用的研究,针对hyperdex原始区域索引,提出了多对象副本聚集区域索引(CMORARI)与单对象副本聚集区域索引(CSORARI),该算法将原来存储于SQL中的星型结构的cube转换成存储到NoSQL中的key value字典结构的cube。并以TPC-H SSB实际零售应用案例验证了方法的有效性,证明hyperdex在大数据仓库领域具有比较好的应用价值。主要工作包括:1.cube多对象副本聚集区域索引的建立:首先从维度表中读取所有维度记录得到维度定义域,然后遍历事实表中的每条记录,如该条事实记录在维度定义域中,则对该条事实记录的各个维度属性建立区域索引及关联该条事实记录,否则忽略该条事实记录,并读入下一条记录,重复上述过程直至遍历完所有事实记录。最终将各个属性的区域索引及其关联的事实记录存入hyperdex,由于每条事实记录要关联每个属性,所以叫做多对象副本。该算法所生成的区域索引是将原始hyperdex区域索引的多个索引项合并为一个,这既减少了索引的存储空间,也加快了索引的解析速度,进而提高了查询效率。2.cube单对象副本聚集区域索引的建立:为了减小上述区域索引方法中事实记录副本所占用的存储空间,提出将事实记录单独存储。与多对象副本聚集区域索引的建立相比,不同的是不对维度属性值与事实记录进行关联,每条事实记录只保留一份,存储在单独的hyperdex超空间中,所以叫做单对象副本。3.查询分析实现以及性能对比分析:基于上述经过区域索引后的cube进行查询的设计与实现。查询过程首先通过命令行参数指定查询条件,然后分析这些条件并执行查询API,从而得到查询结果。最后对查询实验进行了性能对比分析,论述了影响查询性能的一些因素以及改进策略,以及分析了所需额外的索引空间以及相应的改进方法,以及对实验结果的正确性进行了验证。实验结果表明,论文中为了提高查询性能所提出的基于NoSQL的区域索引改进方法是行之有效的。