论文部分内容阅读
冠字号码由冠号和数字编号两个部分组成,是人民币的身份标识。金融部门对冠字号码统计归档可以有效监管纸币的流通情况。冠字号码数据在掌握钱币来源去向、揭示资金关联、发现问题钱币等方面发挥着重要的作用。现金设备采集的冠字号码记录主要由文本与图片两部分数据组成,数据量巨大。关系型数据库在处理海量冠字号码数据时面临巨大的挑战,系统成本高,难度大。而基于云计算的技术虽然在很多海量数据的存储与查询中得到了应用,但是对于冠字号码实际应用中的多维查询、索引构建、小文件存储与查询等具体问题,现有的云平台也存在着一些不足。本文设计并实现了基于云计算的冠字号码存储与查询系统,并对其中的部分关键技术进行了研究。冠字号码文本记录的查询常常会涉及到多个查询条件,而基于云计算的NoSql数据库采用Key-Value结构,只支持主键的快速查询,对于多个非主键的查询很有可能会造成全表扫描操作,查询效率不高。本文提出了一种基于HBase的多维索引框架来实现冠字号码文本信息的快速查询。该索引框架首先设计了粗细粒度结合的多维空间索引,实现多维数据向一维上的投影;然后通过每个时间段内的记录条数对生成数据区块的大小进行限制,在控制HBase区块数量的同时使维度相似的数据能够被划分在同一个区块中;最后构建了时间序列的B+树,减少搜索范围,提高查询的效率。实验结果表明,本文提出的方法在数据插入和查询方面均获得了较好的效果,其中多维查询结果明显好于CCIndex和MD-HBase两种常用方法。针对冠字号码图片的存储和查询,本文设计了基于分布式文件系统HDFS的存储方案。首先使用多队列对基于MapFile的文件进行合并,减少小文件数量,缓解了NameNode的元数据压力;然后提出了一种基于HBase的二级索引结构,全局索引为合并后文件与小文件的映射关系,局部索引为小文件与图像之间索引,通过两级索引减少图片的寻址时间,提高了查询效率;最后使用基于Redis的缓存技术对图片数据进行预取,并结合时间与访问次数计算文件的热度表达式,改进现有的缓存换替代算法,提高缓存命中率。实验结果表明,本文提出的冠字号码图片存储和查询方法能够获得较好的查询响应时间,并且缓存机制进一步提高了相关查询的效率。在冠字号码文本及图片的存储和查询方法基础上,本文设计并实现了一套基于Hadoop集群以及HBase分布式数据库的海量冠字号码查询系统。系统的整体实验结果表明,本文提出的系统解决方案在冠字号码的存储与查询过程中获得了较好的效果,优化方法是可行的和有效的。