本发明专利技术公开了一种HBase数据持久和查询方法及HBase系统。所述HBase数据持久方法包括:接收Schema信息;接收并解析待写入数据;基于Schema信息,解析得到HBase数据表;将解析得到的HBase数据表和Schema信息写入HBase数据库。所述HBase数据查询方法包括:接收SQL语句;提取并组成查询对象;通过查询对象获取Schema信息;解析并生成Get对象或Scan对象;利用Hbase数据库的API执行所述Get对象或Scan对象,并返回执行结果。所述HBase系统使用所述HBase数据持久和查询方法。本发明专利技术极大地减少了程序员的代码量,而且为用户提供便捷地操作方式。
【技术实现步骤摘要】
HBase数据持久和查询方法及HBase系统
本专利技术涉及一种HBase数据持久和查询方法及HBase系统。
技术介绍
HBase为随机读写Key-value(键-值)数据库。在随机读、写上HBase具有非常好的性能。但是一些业务场景中,很多时候需要连续读写。例如,基于时间序列、基于价格排序等等。在这样的场景中现有HBase通常有两种做法但都很难满足海量数据的快速写入和实时查询。(1)满足实时顺序查询,但不满足快速海量写入。按照某种序列连续写,例如按照时间序列,连续设计连续rowkey(行键),写入HBase数据库。这样写在数据量小的时候或许会有很好的读写性能,如果是数据量非常大,那么HBase就很容易出现热点问题,即某台regionserver(HBase集群运行在每个工作节点上的服务)挂掉,然后热点转移到另一台regionserver,然后被转移的regionserver挂掉,这样连续传导,直到整个集群挂掉,出现HBase不可用。(2)满足快速海量写入,但不满足实时顺序查询。按照某种现有Hash(哈希)算法,把短时间内出现的连续序列rowkey,分散到多台regionserver写。由于这里做了Hash分布,那么在读取时,必须合并多路Hash的region(域)。显然读取需要大量的检索,需要大量网络I/O(输入/输出)并占用大量的内存来合并这些值。这对于需要实时响应的查询是不可取的。即使是离线业务,也很难忍受。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术的HBase的数据海量写入和实时查询无法共存的缺陷,采用一种HBase数据持久和查询方法及HBase系统,通过Schema信息为HBase提供高效地读写能力。本专利技术是通过下述技术方案来解决上述技术问题的:本专利技术提供了一种HBase数据持久方法,其特点是,所述HBase数据持久方法包括以下步骤:接收输入的HBase数据表的Schema信息;接收输入数据并解析出待写入数据;基于所述HBase数据表的Schema信息,解析所述待写入数据,并得到HBase数据表的rowkey,tablename,families,colmuns以及index表;将解析得到的HBase数据表和所述HBase数据表的Schema信息写入HBase数据库;其中所述Schema信息包括tablename,families,columns,maintablerowkey生成规则,indexrowkey生成规则,indexcolumns。其中所述数据持久一般就是指将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。所述Schema信息是现有技术常用地一种用于表征用户所创建的对象(包括表,索引,存储过程等)的集合,其属于数据库对象管理的范畴,所以此处不再对其原理和内容进行说明。此外Schema信息中包含的tablename,families,columns,maintablerowkey生成规则,indexrowkey生成规则,indexcolumns就是上述用户所创建的对象(包括表,索引,存储过程等),而且在现有的数据库技术中上述对象均是常用地对象内容,所以此处同样不再对上述对象的内容和原理进行解释说明。本专利技术正是充分利用Schema信息来为HBase的数据表进行定义,进而实现快速海量写入,同时利用Schema信息生成的数据表与该Schema之间的关联性,也为数据的实时查询提供便捷地查询方式和接口。较佳地,从网页获取所述HBase数据表的Schema信息和所述输入数据。本专利技术中利用网页作为数据输入源,从而实现数据的便捷输入和设置。优选地,所述网页显示于一客户端。本专利技术还提供了一种HBase数据查询方法,其特点是,所述HBase数据查询方法包括以下步骤:使用如上所述的HBase数据持久方法对HBase数据库进行写操作;接收输入查询数据并解析出有效地SQL语句;从所述SQL语句中提取SchemaName和查询信息并以List<Map>结构组成查询对象;通过查询对象从HBase数据库中获取对应于SchemaName的Schema信息;解析查询对象的查询信息并通过Schema信息生成HBase数据表的Get对象或Scan对象;利用Hbase数据库的API执行所述Get对象或Scan对象,并返回执行结果;其中所述查询信息包括查询条数、查询条件、查询偏移量。本专利技术中利用SQL语句输入查询信息等是为了增强数据库的通用性,同时降低使用门槛。而且本专利技术中正是利用了数据库中存储的各个不同Schema的命名,即SchemaName来确定需要进行查询的数据表,而且由于各个数据表的内容均是基于Schema信息解析得到,所以查询对象也利用Schema信息来生成HBase数据表的Get对象或Scan对象。而且HBase数据表的Get对象或Scan对象均是现有HBase数据库中预设的对象,进而可以利用Hbase数据库自由的API(应用程序编程接口)接口来执行所述对象。也就是说,本专利技术利用数据库中的Schema信息来实现快速实时地数据查询和读取能力。其中HBase数据表的Get对象或Scan对象以及Hbase数据库的API均是现有HBase数据库中常用的对象和接口,所以这里不再详细说明。而且List<Map>结构也是数据库中常用的数据结构中的元素集合形式,所以此处同样不再赘述。较佳地,从网页获取输入查询数据,并显示所述执行结果。优选地,所述网页显示于一客户端。本专利技术还提供了一种HBase系统,其特点是,所述HBase系统包括一HBase数据库、若干客户端,其中每个客户端均显示一网页;所述HBase系统使用如上所述的HBase数据持久方法和HBase数据查询方法。本专利技术的HBase系统的HBase数据库正是通过不断地写入和查询的结合实现数据库数据的维护。在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本专利技术各较佳实例。本专利技术的积极进步效果在于:本专利技术的HBase数据持久和查询方法及HBase系统一方面用户可以配置Schema信息,配置待写入数据的组成,进而自动构成HBase数据表中Rowkey信息以及行列信息等,从而极大地减少了程序员的代码量,而且自动解析客户端提供的SQL语句,执行相应指令。另一方面利用网页作为客户的可视化界面来配置Schema信息等,为用户提供便捷地操作方式。附图说明图1为本专利技术的实施例1的HBase数据持久的流程图。图2为本专利技术的实施例1的HBase数据查询的流程图。具体实施方式下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实施例范围之中。本专利技术是对现有的HBase进行提升和改造,其主要包括以下两个方面:1、在现有HBase数据库架构基础上增加SQL等传统索引式数据库的功能,这是因为不同的业务对HBase的存储和查询需求都会建立自己的代码逻辑,而使用诸如SQL这种更高层次的语言可以减轻程序员码代码的工作量,所以本专利技术通过增加SQL解析服务来抽象代码逻辑,简化代码量。2、在客户端采用可视化的网页模式为用户提供可视化的配置Schema信息等数据库操作服务。下面通过下述实施例来对本专利技术进行进一步地详细地本文档来自技高网...
【技术保护点】
一种HBase数据持久方法,其特征在于,所述HBase数据持久方法包括以下步骤:接收输入的HBase数据表的Schema信息;接收输入数据并解析出待写入数据;基于所述HBase数据表的Schema信息,解析所述待写入数据,并得到HBase数据表的rowkey,table name,families,colmuns以及index表;将解析得到的HBase数据表和所述HBase数据表的Schema信息写入HBase数据库;其中所述Schema信息包括table name,families,columns,main table rowkey生成规则,index rowkey生成规则,index columns。
【技术特征摘要】
1.一种HBase数据持久方法,其特征在于,所述HBase数据持久方法包括以下步骤:接收输入的HBase数据表的Schema信息;接收输入数据并解析出待写入数据;基于所述HBase数据表的Schema信息,解析所述待写入数据,并得到HBase数据表的rowkey,tablename,families,colmuns以及index表;将解析得到的HBase数据表和所述HBase数据表的Schema信息写入HBase数据库;其中所述Schema信息包括tablename,families,columns,maintablerowkey生成规则,indexrowkey生成规则,indexcolumns。2.如权利要求1所述的HBase数据持久方法,其特征在于,从网页获取所述HBase数据表的Schema信息和所述输入数据。3.如权利要求2所述的HBase数据持久方法,其特征在于,所述网页显示于一客户端。4.一种HBase数据查询方法,其特征在于,所述HBase数据查询方法包括以下步骤:使用如权利要求1-3中任一项所述的HBase数据持久方法对HBase数据库进行写操作...
【专利技术属性】
技术研发人员:李国刚,涂振印,许念,费永军,
申请(专利权)人:携程计算机技术上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。