一种混合多种异构数据源的数据库集群及实现方法

文档序号:6640848阅读:403来源:国知局
一种混合多种异构数据源的数据库集群及实现方法【专利摘要】本发明提供种混合多种异构数据源的数据库集群,包括处理层和存储层,所述存储层包括多种异构数据源,每个异构数据源作为一个虚拟节点,每个所述虚拟节点可为单个数据库实例或者是数据库集群,或者是单个虚拟节点或多个虚拟节点;所述处理层包括命令解析模块、查询优化模块、元数据管理模块、执行计划模块、执行器模块和事务管理模块。本发明具有的优点和积极效果是:能够使用户通过统一的界面访问“异构数据源”(如:用户已购买的数据库产品或数据库集群等),并将“异构数据源”以虚拟节点形式纳入统一的“集群”资源管理,从而实现灵活的在“异构数据源”组成的“集群”中进行数据迁移、复制、伸缩等操作。【专利说明】一种混合多种异构数据源的数据库集群及实现方法【
技术领域
】[0001]本发明属于分布式数据库【
技术领域
】,尤其是涉及一种混合多种异构数据源的数据库集群及实现方法。【
背景技术
】[0002]大数据技术(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。在维克托?迈尔-舍恩伯格及肯尼斯.库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。[0003]数据库集群,顾名思义,就是利用至少两台或者多台数据库服务器,构成一个虚拟单一数据库逻辑映像,像单数据库系统那样,向客户端提供透明的数据服务。分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。[0004]MPP(MassivelyParallelProcessing),意为大规模并行处理系统,这样的系统是由许多松耦合处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线、内存、硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。其中异构数据库指用不同种类的数据库。本地引擎指“集群”自带的数据管理系统。[0005]之前方案是通过通用接口(ODBC或JDBC)访问“异构数据源”,将“异构数据源”当成平等的对象对待,没有发挥出“异构数据源”的特点。只能对“异构数据源”进行增删改查,但是不能更细粒度的根据“异构数据源”的特点优化数据的处理和管理。【
发明内容】[0006]本发明要解决的问题是提供一种混合多种异构数据源的数据库集群及实现方法。[0007]为解决上述技术问题,本发明采用的技术方案是:[0008]本发明提供的一种混合多种异构数据源的数据库集群,包括处理层和存储层,[0009]所述存储层包括多种异构数据源,每个异构数据源作为一个虚拟节点,每个所述虚拟节点可为单个数据库实例或者是数据库集群,或者是单个虚拟节点或多个虚拟节点;[0010]所述处理层包括命令解析模块、查询优化模块、元数据管理模块、执行计划模块、执行器模块和事务管理模块;接收到命令后,首先通过命令解析模块解析出数据表相关信息并生成语法树,之后由查询优化模块根据语法树查询元数据管理模块生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后由执行器模块进行执行;[0011]所述查询优化模块根据数据库集群的元数据充分利用现有异构数据源速度、压缩、存储或网络的优势进行数据组织和查询优化,将查询发送到对应适合的虚拟节点上;[0012]所述元数据管理模块用来保存节点拓扑和关系在节点上的分布信息。[0013]本发明提供的一种由多种异构数据源混合构造数据库集群的方法,包含:[0014]将多种异构数据源以虚拟节点方式构建集群,以统一的用户界面和统一的资源管理系统来控制,其中每个虚拟节点中不限于单个数据库、数据库集群、或者一个数据库(集群)中的若干个实例;[0015]由统一的用户界面将外部的异构数据源对应到多个虚拟节点上,以管理数据库集群节点的方式来管理异构数据源。[0016]本发明具有的优点和积极效果是:[0017]能够使用户通过统一的界面访问“异构数据源”(如:用户已购买的数据库产品或数据库集群等),并将“异构数据源”以虚拟节点形式纳入统一的“集群”资源管理,从而实现灵活的在“异构数据源”组成的“集群”中进行数据迁移、复制、伸缩等操作;并且,便于基于“异构数据源”所在硬件环境、拓扑结构,进行有针对性的部署和性能优化。【专利附图】【附图说明】[0018]图1是本发明数据库集群的原理结构示意图;[0019]图2是本发明数据库集群的数据来源分派原理图;[0020]图3是本发明数据库集群的扩容过程原理图;[0021]图4是本发明数据库集群的虚拟节点之间数据备份过程原理图;[0022]图5是本发明数据库集群的查询优化方式流程图;[0023]图6是本发明数据库集群的虚拟节点数据处理方式原理图;[0024]图7是本发明数据库集群的虚拟节点关系的分布方式原理图;[0025]图8是本发明数据库集群的虚拟节点关系的重分布方式原理图。【具体实施方式】[0026]下面结合附图对本发明的具体实施例做详细说明。[0027]—种混合多种异构数据源的数据库集群,如图1所示,包括处理层和存储层,[0028]所述存储层包括多种异构数据源,每个异构数据源作为一个虚拟节点,每个所述虚拟节点可为单个数据库实例或者是数据库集群,或者是单个虚拟节点或多个虚拟节点;[0029]所述处理层包括命令解析模块、查询优化模块、元数据管理模块、执行计划模块、执行器模块和事务管理模块;接收到命令后,首先通过命令解析模块解析出数据表相关信息并生成语法树,之后由查询优化模块根据语法树查询元数据管理模块生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后由执行器模块进行执行;[0030]所述查询优化模块根据数据库集群的元数据充分利用现有异构数据源速度、压缩、存储或网络的优势进行数据组织和查询优化,将查询发送到对应适合的虚拟节点上;[0031]所述元数据管理模块用来保存节点拓扑和关系在节点上的分布信息。[0032]图2示出本发明数据库集群的处理层根据元数据将数据放到不同的虚拟节点上的处理过程。例如执行loaddatainfile’/date,tbl’intotabledwdatefieldsterminatedby’,’;,首先进行命令解析,由命令解析模块解析出表名,文件名,分隔符,生成语法树,之后由查询优化模块根据语法树生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后又执行器模块进行执行。执行的流程是:查询元数据管理模块,找到dwdate表所在的虚拟节点信息,由执行器模块根据定义的规则切分数据文件,向虚拟节点传输数据,虚拟节点将接收到的数据保存到对应的数据库实例中。[0033]图3示出了本发明数据库集群的虚拟节点扩容的一个用例,通过添加计算机,扩充数据库集群的数据处理能力,可将原来在一台计算机上的虚拟节点移动到多台计算机上,提升数据库集群的处理能力。例如执行mvvnodenlto‘192.168.1.35’;首先进行命令解析,由命令解析模块解析出源vnode名,目的ip,之后由查询优化模块根据语法树生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后又执行器模块进行执行。执行的流程是:查询元数据管理模块,找到vnodenl上的数据分片,由执行器模块在‘192.168.1.35’创建vnodenl的备份,nl_bak,启动vnodenl上的分片发送模块,向虚拟节点nl_bak传输分片数据,所有传输操作完成后,切换元数据信息,删除vnodenl,将vnodenl_bak替换为vnodenl。实现vnode的迁移。将原来共用一台机器的vnode改为每台机器用一个vnode,提升vnode的处理能力。[0034]图4示出本发明数据库集群的在异构数据源之间实现备份的方式,数据库集群可以根据数据源的特点,数据备份到不同的虚拟节点上,方便利用异构数据源的优点进行数据处理。例如执行backuptabletlfromvnodenltovnoden2;首先进行命令解析,由命令解析模块解析出表名,源vnode名,目的vnode名,之后由查询优化模块根据语法树生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后又执行器模块进行执行。执行的流程是:给vnodenl上的tl分片和vnoden2上的tl加写锁,由执行器模块启动vnodenl的数据传输模块和vnoden2的数据接收模块,启动vnodenl上的分片发送模块,向虚拟节点vnoden2传输分片数据,所有发送操作完成后,解除锁定。[0035]图5示出本发明数据库集群的查询优化模块的优化查询流程,根据元数据和查询特征判断出查询是否能够被优化到特定的虚拟节点上执行,以提高执行效率。例如执行selectuse_name,call_time,call_datefromtlwheretel=‘13812345678’andcall_date〉‘2014-1-1’andcall_date〈‘2014-3-1’;首先进行命令解析,由命令解析模块解析出表名、列名、条件,之后由查询优化模块根据语法树生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后又执行器模块进行执行。执行的流程是:获取元数据,发现条件中的tel是hash列,对应的值‘13812345678’,对‘13812345678’取hash值,找到hash对应的虚拟节点n3,判断其他条件是范围条件,之后由优化器进行优化,查询只发送到vnoden3上,之后由执行器模块从vnoden3上获取结果并返回结果给用户。[0036]图6示出本发明数据库集群的一种虚拟节点数据处理方式,虚拟节点对异构数据源执行过滤操作,并保存输出结果在虚拟节点中,之后对数据进行交换,最终执行关系运算获得结果集。[0037]图7示出本发明数据库集群的一种关系的分布方式,关系分布在虚拟组(由一个或多个虚拟节点)上,可以将规模比较小的关系分布在少数节点上,便于进行数据加载等操作(访问较少的节点就可以完成),也可以将规模比较大的关系分布在更多的数节点上,平衡存储。[0038]图8示出本发明数据库集群的一种关系的重分布,原来关系I定义在虚拟组I上,这时添加虚拟节点3和4,建立虚拟组2,之后将关系I重新定义在虚拟组2上。例如执行命令:altertable11changevgroupfromvgltovg2;首先进行命令解析,由命令解析模块解析出表名、原vgroup名称、修改后vgroup名称,之后由查询优化模块根据语法树生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后又执行器模块进行执行。执行的流程是:通过元数据管理模块获取hash源数据,在虚拟节点I和虚拟节点2上根据hash源数据,启动数据重分布过程,在虚拟节点1,2,3,4上启动接收数据模块,接收数据。接收完毕后,tl分布在虚拟节点1,2,3,4上,实现了更大的处理能力。[0039]本发明混合多种异构数据源的数据库集群,存储节点关系元数据,虚拟节点主要负责数据提取,数据传输,关系运算。提供统一的用户界面,用户界面允许用户与数据交互,包括添加新数据,修改现有数据,浏览数据,以及控制数据分片在虚拟节点间进行迁移或备份,用户界面还可以允许用户对虚拟节点进行管理,包括添加修改和删除虚拟节点;可以接入各类“异构数据源”,提供增、删、改、查接口,以及事务接口。[0040]一种由多种异构数据源混合构造数据库集群的方法,包含将多种异构数据源以虚拟节点方式构建集群,以统一的用户界面和统一的资源管理系统来控制,其中每个虚拟节点中不限于单个数据库、数据库集群、或者一个数据库(集群)中的若干个实例;[0041]由统一的用户界面将外部的异构数据源对应到多个虚拟节点上,以管理数据库集群节点的方式来管理异构数据源。[0042]以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。【权利要求】1.一种混合多种异构数据源的数据库集群,其特征在于:包括处理层和存储层,所述存储层包括多种异构数据源,每个异构数据源作为一个虚拟节点,每个所述虚拟节点可为单个数据库实例或者是数据库集群,或者是单个虚拟节点或多个虚拟节点;所述处理层包括命令解析模块、查询优化模块、元数据管理模块、执行计划模块、执行器模块和事务管理模块;接收到命令后,首先通过命令解析模块解析出数据表相关信息并生成语法树,之后由查询优化模块根据语法树查询元数据管理模块生成查询计划,之后由执行计划模块根据查询计划生成执行计划,之后由执行器模块进行执行;所述查询优化模块根据数据库集群的元数据充分利用现有异构数据源速度、压缩、存储或网络的优势进行数据组织和查询优化,将查询发送到对应适合的虚拟节点上;所述元数据管理模块用来保存节点拓扑和关系在节点上的分布信息。2.一种由多种异构数据源混合构造数据库集群的方法,其特征在于包含:将多种异构数据源以虚拟节点方式构建集群,以统一的用户界面和统一的资源管理系统来控制,其中每个虚拟节点中不限于单个数据库、数据库集群、或者一个数据库(集群)中的若干个实例;由统一的用户界面将外部的异构数据源对应到多个虚拟节点上,以管理数据库集群节点的方式来管理异构数据源。【文档编号】G06F17/30GK104484472SQ201410850225【公开日】2015年4月1日申请日期:2014年12月31日优先权日:2014年12月31日【发明者】张灵,王傲雷,武新,崔维力申请人:天津南大通用数据技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1