基于HBase的海量交易数据检索及系统的制作方法

文档序号:9826307阅读:414来源:国知局
基于HBase的海量交易数据检索及系统的制作方法【
技术领域
】[0001]本发明涉及检索技术,更为具体地,涉及基于HBase的海量交易数据检索技术。【
背景技术
】[0002]在银行卡组织的日常运营中,会存在一些交易上的问题,需要以秒级的速度检索出对应的交易报文信息,以便分析排查问题所在。【
发明内容】[0003]有鉴于此,本发明提供基于HBase的海量交易数据检索方法。该方法包括a.接收用户通过查询界面输入的查询请求;b.将所接收的查询请求传送给HBase主节点;c.所述HBase主节点根据查询请求中的开始键与结束键所表征的范围,将所述查询请求发送到与该范围对应的区域的区域服务器;d.由该服务器基于该查询请求在所述交易数据中完成查询。[0004]所述的基于HBase的海量交易数据检索方法,示例地,与所述区域的构建相关的行键按照预定格式设置,其中所述行键的两个最高字节是表示交易日期的日期域,且所述交易日期是对世界标准时间UTC取31模后的值。[0005]所述的基于HBase的海量交易数据检索方法,示例地,所述行键中的条件域紧跟在表示小时的小时域之后,而所述小时域紧跟在所述日期域的后面。[0006]所述的基于HBase的海量交易数据检索方法,示例地,还包括建立次级索引表,用于记录每笔交易报文的索引值与所述行键的映射关系,该映射关系是一一对应的关系,所述步骤d包括:dl.由该服务器基于该查询请求在所述次级索引表中基于每笔交易报文的索引值与所述行键的映射关系获得待查询数据在所述区域中的行键;d2.基于该行键,在所述交易数据中完成查询。[0007]本发明还提供一种基于HBase的海量交易数据检索系统,所述系统包括:查询界面,用于用户输入查询请求;接收模块,其设置于HBase主节点,用于接收用户输入的查询请求;区域确定模块,其设置于所述HBase主节点,用于根据查询请求中的开始键与结束键所表征的范围,将所述查询请求发送到与该范围对应的区域的区域服务器;多个检索模块,分别设置在各区域服务器中,用于基于所述区域服务器所接收的查询请求在交易数据中完成查询。[0008]基于HBase的海量交易数据检索系统,示例地,所述系统还包括设置模块,其用于将决定所述区域大小的行键按照预定格式设置,其中所述行键的两个最高位是表示交易日期的日期域,且所述交易日期是对世界标准时间UTC取31模后的值,所述行键中的条件域紧跟在表示小时的小时域之后,而所述小时域紧跟在所述日期域的后面。[0009]基于HBase的海量交易数据检索系统,示例地,还包括索引表建立单元,其用于建立次级索引表,用于记录每笔交易报文的索引值与所述行键的映射关系,该映射关系是一一对应的关系,所述多个检索模块设置成由该服务器基于该查询请求在所述次级索引表中基于每笔交易报文的索引值与所述行键的映射关系获得待查询数据在所述区域中的行键,以及基于该行键,在所述交易数据中完成查询。【附图说明】[0010]图1是根据本发明示例的基于HBase的海量交易数据检索方法的流程图。[0011]图2是根据本发明示例的HBase的集群环境示意图。[0012]图3示出了文件、HBase次级索引表以及HBase报文日志表之间的关系。[0013]图4是根据本发明示例的基于HBase的海量交易数据检索系统的结构示意图。【具体实施方式】[0014]现在参照附图描述本发明的示意性示例,相同的附图标号表示相同的元件。下文描述的各实施例有助于本领域技术人员透彻理解本发明,且意在示例而非限制。除非另有限定,文中使用的术语(包括科学、技术和行业术语)具有与本发明所属领域的技术人员普遍理解的含义相同的含义。[0015]HBase全称为HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。HBase技术来源于FayChang所撰写的Google论文"Bigtable:-个结构化数据的分布式存储系统"。有关HBase的基本介绍可在许多资料上获取,例如可参见http://baike.baidu.com/link?url=ZZH4mj7uoS2hd77AxZDszb0Tfflcqt5u0_cmF0oraNCPjgls-IPAaGxlDyDtca0pXbfDUfhPx45zxQBpl0_J54q上的介绍。[0016]图1是根据本发明示例的基于HBase的海量交易数据检索方法的流程图。在步骤10,接收用户通过查询界面输入的查询请求。将该接收的查询请求传送给HBase的主节点,见步骤12。该HBase主节点根据查询请求中的开始键(即startkey)与结束键(即endkey)所表征的范围,将所述查询请求发送到与该范围对应的区域(region)的区域服务器(regionserver),见步骤14。区域包含多个区域,在本文下面示意而非限制性的示例中,包含30个区域。一个或一个以上的区域由一个区域服务器管理。例如一个区域服务器管理两个区域,则30个区域的话,就有15个区域服务器。由该服务器基于该查询请求在所述交易数据中完成查询,见步骤16。更进一步,将所查询的交易数据传送给用户。[0017]图2是根据本发明示例的HBase的集群环境示意图。如图所示,用户通过查询界面20输入查询请求。该查询请求传送到HBase主节点22。如图1的步骤14所描述的那样,HBase主节点22根据查询请求中的开始键与结束键所表征的范围,将所述查询请求发送到与该范围对应的区域的区域服务器。例如在本示例中,开始键与结束键所表征的范围,也就是表征的要查询的报文存储的区间是在第七区域中,则HBase主节点22将查询请求发送给管理该第七区域的区域服务器242。区域服务器在接收到该查询请求后,即在第七区域中存储的交易报文中查找请求的数据,并最终将所查找到的数据返回给用户。[0018]根据本发明的示例,与区域构建相关的行键按照预定格式设定,在此与区域的构建相关指的是行键(rowkey)按照HBase的原理据决定了区域的大小、数据写入速度等。其中,行键的两个最高字节是表示交易日期的日期域,其中,写在该日期域的交易日期是对世界标准时间UTC取31模后的值。与常规的日期占据8个字节的方式相比,根据本发明的日期域显然节省了存储空间。行键中的条件域紧跟在表示小时的小时域之后,而所述小时域紧跟在所述日期域的后面。表1表示了根据本发明示例的行键的设置格式:表1其中,F100表示报文接收机构,F33表示报文发送机构,F11表示系统跟踪号。[0019]由于按照如上所述的方式设置行键,将日期位从常规的8位(yyyy_dd)缩短到2位。此外,将最常用的查询条件F100域设置在表示小时的小时域之后,使得系统不需要额外作业就能按照日期和F100域对报文进行快速检索。根据region的规划,每天350G数据,每个Region是4G,则该有29-30个region。根据rowkey的分布原理,当对一天上万个报文进行分布式解析入库时,每个报文所在的小时是随机的,因此可从多个区域中随机选取区域以将报文写入,从而达到理想的写入速度。[0020]根据本发明的示例,还设置了次级索引表,用于记录每笔交易报文的索引值与所述行键的映射关系,该映射关系是一一对应的关系。次级索引表例如按照发送方F33为查询方式建立,该次级索引表记录的每笔报文的索引值,亦即,索引表行键如表2所示:表2其中,交易日期同表1中的交易日期一样,是UTC日期对31取模后的值。[0021]报文日志表的行键如前文表1所示。根据本发明的示例,该次级索引表的建立是读取文本形式的原始数据,通过MAP/Reduce过程生成索引数据,再将该索引数据写入到索引表中。[0022]图3示出了文件、HBase次级索引表以及HBase报文日志表之间的关系。如图3中,从文件1、文件2、…、文件η读取文本形式的原始数据,通过MAP/Reduce产生索引数据,并将该索引数据写人到HBase次级索引表30。在该次级索引表30中,所建立的针对每笔报文的索引值与HBase报文日志表32中的行键是对应的。图3中所不的HBase报文日志表32对应于图2中所示的多个区域。由于受HBase固有属性的影响,通过Rowkey直接进行检索时所能给出的检索条件是有限的,次级索引表的引入,则可以多索引条件进行扩展,甚至可支持全文检索。[0023]在引入次级索引表的情况下,图1所示意的步骤16进一步细化为由该服务器基于该查询请求在所述次级索引表中基于每笔交易报文的索引值与所述行键的映射关系获得待查询数据在所述区域中的行键以及基于该行键,在所述当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1