基于分布式数据库的结构化数据查询方法技术

技术编号:11191784 阅读:93 留言:0更新日期:2015-03-25 20:24
本发明专利技术提供了一种基于分布式数据库的结构化数据查询方法,包括步骤:步骤1:本地解析是否存在Rowkey范围相关参数,获取Rowkey范围相关参数后通过HBase的coprocessor框架向相应的RegionServer(RS)发出sql语句,其中,RS表示区域RS,RegionServer(RS)表示对区域RS的管理附服务和对响应客户端的读写请求;步骤2:每一个接受到的集群RS解析sql语句类型,根据不同的语句类型映射到不同的HBase操作对象。本发明专利技术的有益效果是为HBase提供了一种灵活快捷的结构化查询方法,使得原本系统能够更方便地从传统数据库移植到HBase上。

【技术实现步骤摘要】

本专利技术涉及数据库领域,尤其是HBase的结构化查询,具体地,涉及基于分布式数 据库的结构化数据查询方法。
技术介绍
随着日益增长的数据量,传统关系数据库已经无法很好地满足数据处理的需求, 即使采用数据库集群技术,也需要耗费大量资源,增加的能力也并非线性增长,且还会受制 于规模限制。所以出现各种NoSQL (非关系型的数据库)数据库,其中比较有代表性就是基 于ColumnFamily (列族)存储形式的HBase (Hadoop Database),因为收益于Hadoop平台 的广泛应用,HBase也成为一个主流的NoSQL数据库。 HBase的特点就是没有固定schema (数据库对象的集合),所以这和有固定schema 的传统关系数据库有很大区别,所以原本传统数据库中数据组织方式无法直接照搬到 HBase中,且本身不带有类SQL (结构化查询语言,Structured Query Language)的查询语 句,在使用和操作上有不小的难度。现有的Hive (建立在Hadoop上的数据仓库基础构架) 提供了类似的SQL语句,但是它基于了 MapReduce (编程模型,用于大规模数据集的并行运 算),速度比较慢。 经检索发现如下相关专利文献。 申请号为201120121668. 3、名称为搜索引擎性能测试系统的专利文献,其公开了 一种搜索引擎性能测试系统,以解决每次测试时都需要重新建立索引和查询请求从而耗费 的处理资源较大的问题。系统包括:存储器,用于存储预先指定的结构化数据和查询请求; 搜索引擎服务器,连接于存储器,从存储器中获取进行搜索引擎性能测试的查询请求,并根 据获取的查询请求在存储器存储的结构化数据中搜索与查询请求相匹配的结构化数据;搜 索引擎性能测试装置,连接于搜索引擎服务器,用于根据从搜索引擎服务器获取的性能指 标确定搜索引擎性能。但其速度较慢。
技术实现思路
针对上述现有技术中的缺陷,本专利技术的目的是提供一种基于分布式数据库的结构 化数据查询方法,要解决的技术问题是提供一种方法使得HBase能够支持一种扩展性SQL 的结构化查询,将SQL转化成HBase的NaiveAPK以二进制方式,函式库(DLL)直接开放的 应用程式开发接口(Application Programming Interface),可以直接由C/C++来呼叫存取 使用),方便了 HBase的使用同时提供了更快的速度。 根据本专利技术提供的,包括如下步骤: 步骤1 :本地解析是否存在Rowkey范围相关参数,获取Rowkey范围相关参数后通 过HBase的coprocessor框架向相应的RegionServer (RS)发出sql语句,其中,RS表示 区域RS, RegionServer (RS)表示对区域RS的管理附服务和对响应客户端的读写请求; 步骤2 :每一个接受到的集群RS解析sql语句类型,根据不同的语句类型映射到 不同的HBase操作对象。 优选地,所述步骤2,具体为: 每一个接受到的集群RS解析sql语句类型' select',' insert',' update' 和'delete',根据不同的语句类型映射到不同的HBase操作对象,其中,'select'对应scan 对象,' insert' 和' update' 对应 List〈Put> 对象,' delete' 对应 Delete 对象;其中, List〈Put>表示HBase中Put对象的列表集合。 优选地,还包括如下步骤: 步骤3 :对于所有的值都用''进行分割,如存在值包含''则使用\'代替。 优选地,所述步骤3,具体为: 所有值类型前指定一个可选的二元组{postion, type},其中postion表示值所在 位置,主要应用在' Select'语句中,type表示改值的类型,这个二元组决定了该sql中字 段转化成HBase原生对象的最终结果。 优选地,postion的可选值包括rowkey,key, value ;type的可选值包括prefix, regex,string,Integer,Long,double。 与现有技术相比,本专利技术具有如下的有益效果: 由于采用了上述技术方案,本专利技术的有益效果是为HBase提供了一种灵活快捷的 结构化查询方法,使得原本系统能够更方便地从传统数据库移植到HBase上。 【附图说明】 通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、 目的和优点将会变得更明显: 图1为本专利技术的整体的架构示意图。 【具体实施方式】 下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术 人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术 人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术 的保护范围。 本专利技术基于的架构主要使用了 HBase的coprocessor技术中Endpoint的框架,继 承CoprocessorProtocol接口并定义sql的解析 主要包括以下步骤: 首先,本地解析是否存在Rowkey (行键)范围相关参数,获取Rowkey (行键)范围 相关参数后通过HBase的coprocessor框架向相应的RegionServer (RS)发出sql语句。 HBase中自动将表水平划分成〃区域(Region)。每一个区域由表中行的子集构成。而 RegionServer则负责零个或多个region的管理以及响应客户端的读写请求。 其中,RS表示区域RS,RegionServer (RS)表示对区域RS的管理附服务和对响应 客户端的读写请求; 其次,每一个接受到的集群RS解析sql语句类型' select',' insert',' update' 和'delete',根据不同的语句类型映射到不同的HBase操作对象,其中,'select'对应scan 对象,' insert' 和' update' 对应 List〈Put> 对象,' delete' 对应 Delete 对象;其中, List〈Put>表示HBase中Put对象的列表集合; 再次,本专利技术的SQL为了更好的适应HBase特性,而进行了扩展,对于所有的值都 用''进行分割,如有值包含''则使用\'代替。所有值类型前可以指定一个可选的二元组 {postion, type},其中postion为该值所在位置,主要应用在'Select'语句中,可选的值包 括 rowkey,key, value 默认为 value, type 为改值的类型,可选为 prefix, regex, string, Integer, Long, double等,这个二元组决定了该sql中字段转化成HBase原生对象的最终 结果。当字段为返回结果字段时,由于HBase的特性,可以用来动态存储数据的位置有两 个类型key和value,当指定字段为key类型时,贝U返回结果从ResultScanner中一个KV 对本文档来自技高网
...

【技术保护点】
一种基于分布式数据库的结构化数据查询方法,其特征在于,包括如下步骤:步骤1:本地解析是否存在Rowkey范围相关参数,获取Rowkey范围相关参数后通过HBase的coprocessor框架向相应的RegionServer(RS)发出sql语句,其中,RS表示区域RS,RegionServer(RS)表示对区域RS的管理附服务和对响应客户端的读写请求;步骤2:每一个接受到的集群RS解析sql语句类型,根据不同的语句类型映射到不同的HBase操作对象。

【技术特征摘要】
1. 一种基于分布式数据库的结构化数据查询方法,其特征在于,包括如下步骤: 步骤1 ;本地解析是否存在Rowkey范围相关参数,获取Rowkey范围相关参数后通过 皿ase的coprocessor框架向相应的RegionServer (RS)发出sql语句,其中,RS表示区域 RS,RegionServer (RS)表示对区域RS的管理附服务和对响应客户端的读写请求; 步骤2 ;每一个接受到的集群RS解析sql语句类型,根据不同的语句类型映射到不同 的皿ase操作对象。2. 根据权利要求1所述的基于分布式数据库的结构化数据查询方法,其特征在于,所 述步骤2,具体为: 每一个接受到的集群RS解析sql语句类型'select' inse;rt' update' 和'delete',根据不同的语句类型映射到不同的皿ase操作对象,其中,'select'对应scan 对象,'inse;rt'和'update'对应 List<F*ut〉对象,...

【专利技术属性】
技术研发人员:王剑虎陆埜樊国柱王凯茹伍治平
申请(专利权)人:上海宝信软件股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1