当前位置: 首页 > 专利查询>东华大学专利>正文

支持通过简单SQL调用中间件数据库特有功能的方法技术

技术编号:14637434 阅读:78 留言:0更新日期:2017-02-15 11:37
本发明专利技术提供了一种支持通过简单SQL调用中间件数据库特有功能的方法,其特征在于用户对数据库功能的高度可定制性和操作的简易性,包括以下步骤:步骤1、架构搭建;步骤2、索引文件创建;步骤3、数据分库存储;步骤4、查询扩展;步骤5、查询解析;步骤6、路由绑定与分发;步骤7、方法执行;步骤8、封装结果并返回。本发明专利技术能针对分布式数据库环境下,用户对于各节点数据库特有功能,仅使用简单的类SQL语句即可通过中间管理平台实现统一调用的方法。

【技术实现步骤摘要】

本专利技术涉及一种在分布式数据库中间件中调用底层异构数据库特有功能的方法。
技术介绍
随着计算机和信息技术的迅猛发展以及在各行业应用的日益普及化,人类已进入大数据时代,大数据的海量特性、异构性等“4V”特点对传统数据库技术带来了巨大挑战。为了弥补关系型数据库在处理大数据方面的不足,各种非关系型数据库应运而生。非关系型数据库在实现基础功能的前提下都在某一个或多个方面有着自己独特的优势,如MongDB在存储类型上支持文件存储,在功能上原生支持MapReduce,AggregationPipeline等操作。另一方面,伴随着数据规模的急剧增长,数据管理向分布式发展已成为趋势。传统的分布式数据库构造复杂,分布式管理集成于数据库本身,难以对现有的数据库系统进行整合,而分布式数据库中间件为用户提供了透明的构建数据库集群的方案,能够整合现有的单机集中式数据库,建立“伪分布式”系统架构,成为一种重要的海量数据管理解决方案。与此同时,分布式数据库中间件能够将不同类型的底层数据库和应用集成,若在底层将关系型数据库与NoSQL进行统一集成,将有望高效实现异构大数据管理。然而,目前在分布式数据库中间件中,无法直接调用不同类型底层节点的特有功能。用户若要调用则需要通过编程实现,代价通常较大,且对于用户而言门槛较高。如何为用户提供一个简洁明了的操作接口实现对各类型数据库功能的可定制化调用成为了一个迫切需要解决的问题。
技术实现思路
本专利技术的目的是通过对SQL语句的功能扩展,在分布式数据库中间件中实现借助简单类SQL语句直接调用各数据库特有的功能以更好的发挥该数据库优势的效果。为了达到上述目的,本专利技术的技术方案是提供了一种支持通过简单SQL调用数据库特有MapReduce功能的方法,其特征在于,包括如下步骤:步骤1、架构搭建;在分布式数据库中间件中接入关系型数据库和NoSQL数据库;步骤2、索引文件创建,用户指定字段r与数据库db的对应关系,以“r:db”形式保存为索引文件;步骤3、数据分库存储,以列为单位按指定数据与节点的对应关系将数据存入对应不同类型节点数据库中,该步骤包括:步骤3.1、建表,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的建表子语句,进行路由分发;步骤3.2、插入数据,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的插入数据子语句,进行路由分发,完成数据插入;步骤4、查询扩展,根据精简和实用原则,设计调用指定方法的SQL语句;SQL语句设计为:SELECTexpression[ASoutput_name][,...]FROMfrom_item[(USINGMapReduceONcondition)]其中,expression表示字段名或一个表达式;from_item表示所要查询的表或NoSQL数据库中与表相对应的单位,如MongDB的COLLECTION;括号内USING标识指示使用的执行方法MapReduce;ON标识指示用户所限定的条件condition,通过设定与执行函数相对应的参数获得执行结果集;步骤5、查询解析,根据用户指定SQL语句进行方法的调用,系统在路由分发前对指定SQL语句进行解析,具体步骤如下:步骤5.1、指定关键字解析,判断当前SQL语句是否包含USING关键字,若是,则进行步骤5.2;否则,根据路由配置直接进行SQL语句的分发,以默认方式执行,得到结果;步骤5.2、执行方法解析,解析若包含则通过USING关键字获得执行方法名MapReduce,确定方法执行所调用的函数;步骤5.3、执行参数解析,通过ON关键字获得参数字符串,并从中解析得到参数键值对列表,同时解析待查表名,传入步骤5.2所确定调用的函数中;步骤5.4、返回结果类型解析,确定SQL语句所请求内容的最终返回形式,即步骤4所设计的查询语句中的expression;步骤6、路由绑定与分发,在MYCAT默认路由分发前进行路由绑定,检索索引文件,判断作用字段所在节点及数据库,将SQL语句与待执行节点绑定进行路由分发;步骤7、方法执行,通过函数调用执行脚本,获得结果并返回,具体包括:步骤7.1、函数调用,在步骤5.2所调用的函数中执行脚本函数,其执行步骤如下:步骤7.1.1、结果集映射,根据步骤5.3解析得到的执行参数设定相应类目,并选定规则通过map函数将结果集映射到对应类目中;步骤7.1.2、结果集规约,将步骤7.1.1得到的映射结果集按照步骤5.4解析的内容返回形式通过reduce函数进行规约,并得到函数执行结果集;步骤7.2、结果集返回,将步骤7.1.2规约结果集返回至函数调用处;步骤8、封装结果并返回,根据步骤5.4中获取的内容返回形式,设置表头信息,并将表头信息与返回结果内容对应依次封装为字节流的形式返回。优选地,所述步骤1采用开源数据库中间件MYCAT作为管理平台,进行搭建架构,包括以下步骤:步骤1.1、安装数据库,在单机或多机的环境下安装关系型数据库及NoSQL数据库;步骤1.2、搭建MYCAT中间件平台,在配置中将数据库添加至各个节点,并指定各节点数据库类型。优选地,所述步骤1.2包括:步骤1.2.1、安装MYCAT,通过将MYCAT开源代码导入ECLIPSE中完成软件的安装;步骤1.2.2、设置环境变量,将指定数据库访问所必须的JAR包通过ECLIPSE中BUILDPATH添加到系统运行环境中;步骤1.2.3、配置节点信息,向配置文件schema.xml中添加表table和节点dataNode信息,指定表table与节点dataNode的对应关系;添加垂直分片规则,并将待加入的数据库地址以及用户名密码信息添加到该配置文件中;优选地,所述步骤3.1包括:步骤3.1.1、获取配置信息,确定待操作表包含垂直分片配置;步骤3.1.2、解析拆分语句,读取索引文件并对语句属性进行解析,分别构建作用于分库的建表子语句;步骤3.1.3、路由分发,将步骤3.1.2中得到的子语句分别与配置对应类型的数据库绑定,并进行路由分发,完成创建表。本专利技术提供了一种通过分布式数据库中间件调用底层数据库特有功能的方法,其特点为用户可以通过简单的SQL语句指定需要操作的数据库以及该数据库特有的功能,以实现操作的便捷性和功能的可定制性。附图说明图1为异构数据存储的流程。具体实施方式为使本专利技术更明显易懂,兹以优选实施例作详细说明如下。本专利技术提供了一种支持通过简单SQL调用中间件数据库特有功能的方法,本专利技术针对多种异构数据库并存的分布式数据库环境下,用户不能通过统一平台以简单的方式操作指定NoSQL数据库特有执行方式的问题,提供给用户以简单类SQL语句,使其通过中间平台MYCAT可以直接调用MongDB节点数据库指定MapReduce功能的方法,提高了分布式数据库的灵活性,并为普通用户对数据库特有功能的使用提供了便捷途径。以MongDB下MapReduce的count操作为例,具体操作步骤为:步骤1、架构搭建,安装数据库,选择MYCAT作为分布式数据库管理平台,将数据库接入MYCAT中间件平台,该步骤包括:步骤1.1、数据库安装,在单机或多机的环境下安装MONGODB等数据库;步骤1.2、搭建MYCAT中间件平台,将步骤1.本文档来自技高网...
支持通过简单SQL调用中间件数据库特有功能的方法

【技术保护点】
一种支持通过简单SQL调用中间件数据库特有功能的方法,其特征在于,包括如下步骤:步骤1、架构搭建;在分布式数据库中间件中接入关系型数据库和NoSQL数据库;步骤2、索引文件创建,用户指定字段r与数据库db的对应关系,以“r:db”形式保存为索引文件;步骤3、数据分库存储,以列为单位按指定数据与节点的对应关系将数据存入对应不同类型节点数据库中,该步骤包括:步骤3.1、建表,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的建表子语句,进行路由分发;步骤3.2、插入数据,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的插入数据子语句,进行路由分发,完成数据插入;步骤4、查询扩展,根据精简和实用原则,设计调用指定方法的SQL语句,SQL语句设计为:SELECT expression[AS output_name][,...]FROM from_item[(USING MapReduce ON condition)]其中,expression表示字段名或一个表达式;from_item表示所要查询的表或NoSQL数据库中与表相对应的单位;括号内USING标识指示使用的执行方法MapReduce;ON标识指示用户所限定的条件condition,通过设定与执行函数相对应的参数获得执行结果集;步骤5、查询解析,根据用户指定SQL语句进行方法的调用,系统在路由分发前对指定SQL语句进行解析,具体步骤如下:步骤5.1、指定关键字解析,判断当前SQL语句是否包含USING关键字,若是,则进行步骤5.2;否则,根据路由配置直接进行SQL语句的分发,以默认方式执行,得到结果;步骤5.2、执行方法解析,解析若包含则通过USING关键字获得执行方法名MapReduce,确定方法执行所调用的函数;步骤5.3、执行参数解析,通过ON关键字获得参数字符串,并从中解析得到参数键值对列表,同时解析待查表名,传入步骤5.2所确定调用的函数中;步骤5.4、返回结果类型解析,确定SQL语句所请求内容的最终返回形式,即步骤4所设计的查询语句中的expression;步骤6、路由绑定与分发,在MYCAT默认路由分发前进行路由绑定,检索索引文件,判断作用字段所在节点及数据库,将SQL语句与待执行节点绑定进行路由分发;步骤7、方法执行,通过函数调用执行脚本,获得结果并返回,具体包括:步骤7.1、函数调用,在步骤5.2所调用的函数中执行脚本函数,其执行步骤如下:步骤7.1.1、结果集映射,根据步骤5.3解析得到的执行参数设定相应类目,并选定规则通过map函数将结果集映射到对应类目中;步骤7.1.2、结果集规约,将步骤7.1.1得到的映射结果集按照步骤5.4解析的内容返回形式通过reduce函数进行规约,并得到函数执行结果集;步骤7.2、结果集返回,将步骤7.1.2规约结果集返回至函数调用处;步骤8、封装结果并返回,根据步骤5.4中获取的内容返回形式,设置表头信息,并将表头信息与返回结果内容对应依次封装为字节流的形式返回。...

【技术特征摘要】
1.一种支持通过简单SQL调用中间件数据库特有功能的方法,其特征在于,包括如下步骤:步骤1、架构搭建;在分布式数据库中间件中接入关系型数据库和NoSQL数据库;步骤2、索引文件创建,用户指定字段r与数据库db的对应关系,以“r:db”形式保存为索引文件;步骤3、数据分库存储,以列为单位按指定数据与节点的对应关系将数据存入对应不同类型节点数据库中,该步骤包括:步骤3.1、建表,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的建表子语句,进行路由分发;步骤3.2、插入数据,检索索引文件中字段与数据库对应关系,基于字段构建作用于分库的插入数据子语句,进行路由分发,完成数据插入;步骤4、查询扩展,根据精简和实用原则,设计调用指定方法的SQL语句,SQL语句设计为:SELECTexpression[ASoutput_name][,...]FROMfrom_item[(USINGMapReduceONcondition)]其中,expression表示字段名或一个表达式;from_item表示所要查询的表或NoSQL数据库中与表相对应的单位;括号内USING标识指示使用的执行方法MapReduce;ON标识指示用户所限定的条件condition,通过设定与执行函数相对应的参数获得执行结果集;步骤5、查询解析,根据用户指定SQL语句进行方法的调用,系统在路由分发前对指定SQL语句进行解析,具体步骤如下:步骤5.1、指定关键字解析,判断当前SQL语句是否包含USING关键字,若是,则进行步骤5.2;否则,根据路由配置直接进行SQL语句的分发,以默认方式执行,得到结果;步骤5.2、执行方法解析,解析若包含则通过USING关键字获得执行方法名MapReduce,确定方法执行所调用的函数;步骤5.3、执行参数解析,通过ON关键字获得参数字符串,并从中解析得到参数键值对列表,同时解析待查表名,传入步骤5.2所确定调用的函数中;步骤5.4、返回结果类型解析,确定SQL语句所请求内容的最终返回形式,即步骤4所设计的查询语句中的expression;步骤6、路由绑定与分发,在MYCAT默认路由分发前进行路由绑定,检索索引文件,判断作用字段所在节点及数据库,将SQL语句与待执行节点绑定进行...

【专利技术属性】
技术研发人员:王杰黄晓虎王梅
申请(专利权)人:东华大学
类型:发明
国别省市:上海;31

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

1