一种数据库接口单元和分布式NewSQL数据库系统的制作方法

文档序号:13136984阅读:525来源:国知局
本发明涉及大数据
技术领域
:,尤其涉及一种数据库接口单元和分布式newsql数据库系统。
背景技术
::目前hbase是hadoop生态体系中最著名的分布式nosql数据库之一。其设计理念来源于google的bigtable。hbase主要组件包括hmaster和hregionsever,为用户提供表格类型的数据模型,按主键范围划分为多个region,hmaster负责管理和分配region,hregionserver负责region数据的读写。但随着越来越多的应用尝试迁移到hbase上,hbase的缺陷也越来越被暴露出来:使用成本高:用户需要通过api编程访问hbase,对于复杂应用使用成本过高,直接导致许多较为复杂的应用无法使用hbase。技术实现要素:本发明实施例的目的是提供一种数据库接口单元和分布式newsql数据库系统,能支持sql,支持jdbc/odbc接口,极大的降低了使用成本。为实现上述目的,本发明实施例提供一种数据库接口单元,包括:jdbc应用程序模块,用于接收用户请求,以及调用jdbc对象方法以给出sql语句,并用于提取结果返回用户;jdbc驱动程序管理器模块,用于为所述jdbc应用程序模块加载和调用jdbc驱动程序模块;jdbc驱动程序模块,用于执行所述jdbc对象方法的调用,发送用户请求所对应的sql语句给数据源,并将从所述数据源获得的结果返回给jdbc应用程序模块。进一步的,所述jdbc驱动程序模块进一步用于:定义驱动前缀版本等信息,当类加载时将驱动对象注册到驱动管理器。进一步的,所述jdbc驱动程序管理器模块进一步用于:实现所述jdbc应用程序模块与所述数据源模块的连接逻辑,根据加载的驱动创建。进一步的,所述jdbc应用程序模块进一步用于:操作与远程的访问,包括:执行查询executequery、执行execute。相应的,本发明实施例还提供一种分布式newsql数据库系统,包括上述本发明提供的一种数据库接口单元;所述数据库接口单元用于接收用户向分布式newsql数据库系统发送的用户请求,并将根据所述用户请求所获取的结果返回用户。进一步的,还包括:master单元,用于接入所述数据库接口单元所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;sqlplaner单元,用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,还包括:分布式事务管理器,用于当所述执行计划中涉及分布式事务时,协调所述执行计划中的多方完成分布式事务管理。进一步的,还包括:hbase单元和搜索引擎服务器,均用于储存数据;所述worker单元进一步用于通过所述hbase单元和所述搜索引擎服务器获取数据。进一步的,所述hbase单元包括coprocessor模块和filter模块,所述coprocessor模块和所述filter模块均用于针对数据生成索引表;所述coprocessor模块还用于根据索引定义以倒排索引的方式将索引数据并行写入所述索引表,从而建立多个二级索引;所述master单元还用于根据查询条件动态计算使用索引的代价;所述coprocessor模块还用于根据索引定义以及查询条件优先查询所述索引表,并行地通过所述索引表查询结果再次查询数据表。进一步的,还包括:监视器,所述监视器用于负责元数据管理以及用于监控所述hbase单元的region的负载,避免特定的region负载过高,以及利用所述hbase单元的coprocessor模块重新分配region;所述监视器与所述master单元连接。与现有技术相比,本发明公开的一种数据库接口单元和分布式newsql数据库系统,通过jdbc应用程序模块,用于接收用户请求,以及调用jdbc对象方法以给出sql语句,并用于提取结果返回用户;jdbc驱动程序管理器模块,用于为所述jdbc应用程序模块加载和调用jdbc驱动程序模块;jdbc驱动程序模块,用于执行所述jdbc对象方法的调用,发送用户请求所对应的sql语句给数据源,并将从所述数据源获得的结果返回给jdbc应用程序模块的技术方案,降低用户使用成本高,同时操作简洁方便,上手速度快。附图说明图1是本发明实施例中一种数据库接口单元的结构示意图;图2是本发明实施例中一种分布式newsql数据库系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1是本发明实施例1提供的一种数据库接口单元的结构示意图;本实施例包括下述模块:jdbc应用程序模块11,用于接收用户请求,以及调用jdbc对象方法以给出sql语句,并用于提取结果返回用户;jdbc驱动程序管理器模块12,用于为jdbc应用程序模块1加载和调用jdbc驱动程序模块;jdbc驱动程序模块13,用于执行jdbc对象方法的调用,发送用户请求所对应的sql语句给数据源,并将从数据源获得的结果返回给jdbc应用程序模块11。jdbc驱动程序模块13也负责与任何访问数据源的必要软件层进行交互。进一步的,jdbc驱动程序模块13进一步用于:本实施例的driver继承了unregistereddriver类,定义驱动前缀版本等信息,当类加载时将驱动对象注册到驱动管理器。进一步的,jdbc驱动程序管理器模块12进一步用于:本实施例的connection继承avaticaconnection类,实现jdbc应用程序模块11与数据源的连接逻辑,根据加载的驱动创建。本实施例的factory实现avaticafactory接口,管理connection连接,同时也支持原生jdk管理方式。进一步的,jdbc应用程序模块11进一步用于:iremoteclient继承closeable类,本实施例的jdbcclient实现iremoteclient接口,操作与远程的访问,包括:执行查询executequery、执行execute。本实施例中的其它交互程序:本实施例的meta继承metaimpl;本实施例的statement继承avaticastatement,jdbc接口普通交互声明;本实施例的preparedstatement继承avaticapreparedstatement,jdbc对预编译模式声明的支持;本实施例的resultset继承avaticaresultset,jdbc接口返回结果对象;preparedqueryrequest继承queryrequest,jdbc定义查询请求;sqlresponsestub实现serializable,jdbc返回结果定义;以上封装引用了calcite的部分组件。现有的技术中,hbase提供了javaapi的访问接口,其封装了大量的数据操作接口。但其操作模式和方法是hbase特有的api模式。与人们习惯的jdbc/odbc方式完全不同。对于普通用户使用成本高。而在本实施例保持人们常用的操作习惯,提供完全jdbc/odbc模式接口。该接口是一个构建在urunbase中的sql中间层,完全使用java编写,提供了一个客户端可嵌入的jdbc驱动。具体实施时,通过jdbc应用程序模块11用于接收用户请求,以及调用jdbc对象方法以给出sql语句,并用于提取结果返回用户;通过jdbc驱动程序管理器模块12,用于为jdbc应用程序模块1加载和调用jdbc驱动程序模块;通过jdbc驱动程序模块13,用于执行jdbc对象方法的调用,发送用户请求所对应的sql语句给数据源,并将从数据源获得的结果返回给jdbc应用程序模块11。本实施例保持了人们常用的操作习惯,通过提供完全jdbc/odbc模式接口访问底层hbase。降低用户使用成本高,同时操作简洁方便,上手速度快。参见图2,图2是本发明实施例提供的一种分布式newsql数据库系统的结构示意图,包括上述本发明实施例所提供的一种数据库接口单元1,具体参考上述实施例的说明,此处不再赘述。具体,数据库接口单元1用于接收用户向分布式newsql数据库系统发送的用户请求,并将根据用户请求所获取的结果返回用户。本实施例还包括下述单元:master单元2,用于接入数据库接口单元1所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将用户请求优先发送给sqlplaner单元;sqlplaner单元3,用于解析用户请求,根据用户请求编译以及定制执行计划;worker单元4,用于并行地执行计划,以获得数据进行归并汇总以返回给master单元。进一步的,还包括:分布式事务管理器5,用于当执行计划中涉及分布式事务时,协调执行计划中的多方完成分布式事务管理。进一步的,还包括:hbase单元6和搜索引擎服务器7,均用于储存数据;worker单元4进一步用于通过hbase单元6和搜索引擎服务器7获取数据。进一步的,hbase单元6包括coprocessor模块61和filter模块,coprocessor模块61和filter模块均用于针对数据生成索引表;coprocessor模块61还用于根据索引定义以倒排索引的方式将索引数据并行写入索引表,从而建立多个二级索引;master单元2还用于根据查询条件动态计算使用索引的代价;coprocessor模块61还用于根据索引定义以及查询条件优先查询索引表,并行地通过索引表查询结果再次查询数据表。进一步的,还包括:监视器8,监视器8用于负责元数据管理以及用于监控hbase单元6的region的负载,避免特定的region负载过高,以及利用hbase单元6的coprocessor模块重新分配region;监视器8与master单元2连接。具体实施时,通过数据库接口单元1接收用户向分布式newsql数据库系统发送的用户请求;通过master单元2接入数据库接口单元1所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将用户请求优先发送给sqlplaner单元;通过sqlplaner单元3解析用户请求,根据用户请求编译以及定制执行计划;worker单元4并行地执行计划,从hbase单元6和搜索引擎服务器7获取数据,以获得数据进行归并汇总以返回给master单元2;master单元2将所获取的结果通过数据库接口单元1返回用户。本实施例的分布式newsql数据库系统保持了人们常用的操作习惯,通过提供完全jdbc/odbc模式接口访问底层hbase,降低用户使用成本高,同时操作简洁方便,上手速度快。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1