一种实现多集群间联合查询和快速数据迁移的方法与流程

文档序号:23809019发布日期:2021-02-03 12:19阅读:63来源:国知局
一种实现多集群间联合查询和快速数据迁移的方法与流程

[0001]
本发明属于数据库和大数据技术领域,尤其是涉及一种实现多集群间联合查询和快速数据迁移的方法。


背景技术:

[0002]
客户的很多业务数据分处在不同的部门和不同的数据库中,各数据库的数据独立存在,是孤岛(如图1所示)。客户经常因业务需要联合查询不同数据库中数据,因为各数据库彼此不感知,无法直接访问底层数据。以往的操作方式都是提前导出各部门的数据到其它数据库中,之后再做联合查询。为不影响业务效率,一般导出数据任务会被安排在非工作时间,数据不是即时的(如图2所示)。


技术实现要素:

[0003]
有鉴于此,为克服上述缺陷,本发明旨在提出一种实现多集群间联合查询和快速数据迁移的方法。
[0004]
为达到上述目的,本发明的技术方案是这样实现的:一种实现多集群间联合查询和快速数据迁移的方法,包括:将每个用户的数据进行单独隔离,形成虚拟集群;每个虚拟集群为一个单独的子集群,每个子集群包含多种业务数据;多个子集群由同一个coordinator集群统一管理;多个子集群还均连接元数据集群,所述元数据集群存储着每个子集群的元数据。
[0005]
进一步的,每个所述虚拟集群包括多个存储单元以及与对应存储单元通信连接的计算单元;每个所述计算单元还包括异步处理单元。
[0006]
进一步的,多个虚拟集群间数据流转的方法如下:s1、虚拟集群二接收抽取任务;s2、把任务发送给虚拟集群二的计算单元:s3、本地扫描数据,找到所需的数据行;s4、分批物化一定行数数据,发送给异步发送单元;s5、继续物化数据:s6、等待所有数据发送完。
[0007]
进一步的,异步处理单元进行异步发送的方法如下:s401、异步处理接收处理任务:s402、访问公共元数据集群,得到目标表在虚拟集群一的数据分布信息;s403、计算得到每行数据在虚拟机群一的目标节点和表分片;s404、把数据行依次推送到目标节点、目标表分片的发送队列;s405、当队列中的数据达到设定行数时,压缩数据块,并发给目标虚拟集群的对应计算
单元;s407、虚拟集群一的计算单元接收数据,并直接存储到本地。
[0008]
相对于现有技术,本发明所述的实现多集群间联合查询和快速数据迁移的方法具有以下优势:本发明所述的实现多集群间联合查询和快速数据迁移的方法实现多vc(虚拟集群)间的数据流转,因为多vc彼此共用相同的元数据服务,vc1可以直接把vc2的数据拉到本地,直接参与计算,高效实现多集群间联合查询和快速数据迁移。
附图说明
[0009]
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是原集群架构原理图;图2是原集群数据流转原理图;图3是本发明的集群架构原理图;图4是本发明集群架构的数据流转原理图。
具体实施方式
[0010]
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0011]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0012]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
[0013]
下面将参考附图并结合实施例来详细说明本发明。
[0014]
如图3所示,一种实现多集群间联合查询和快速数据迁移的方法,包括:将每个用户的数据进行单独隔离,形成虚拟集群;每个虚拟集群为一个单独的子集群,每个子集群包含多种业务数据;多个子集群由同一个coordinator集群统一管理;多个子集群还均连接元数据集群,所述元数据集群存储着每个子集群的元数据。
[0015]
整体分发任务是coordinator集群下发到源端计算节点的。元数据服务存储着每
个vc(虚拟集群)包含的节点数和每个表的数据分布策略。源vc和目标vc的元数据都存储在相同的元数据服务中,所以,源端vc就可以得到目标vc的数据分布策略,从而按照目标端vc的策略直接分发数据到目标vc的表,效率高效。
[0016]
每个所述虚拟集群包括多个存储单元以及与对应存储单元通信连接的计算单元;每个虚拟集群包括多个计算物理节点,存储单元和对应的计算单元存储在各物理节点上。
[0017]
每个所述计算单元还包括异步处理单元。异步处理单元是计算单元的一部分,计算单元可以理解为一个计算节点进程,异步处理单元是此进程中的专门负责向远端vc集群发送数据的模块。
[0018]
如图4所示,多个虚拟集群间数据流转的方法如下:s1、虚拟集群二接收抽取任务;s2、把任务发送给虚拟集群二的计算单元:s3、本地扫描数据,找到所需的数据行;s4、分批物化一定行数数据,发送给异步发送单元;s5、继续物化数据:s6、等待所有数据发送完。
[0019]
异步处理单元进行异步发送的方法如下:s401、异步处理接收处理任务:s402、访问公共元数据集群,得到目标表在虚拟集群一的数据分布信息;s403、计算得到每行数据在虚拟机群一的目标节点和表分片;s404、把数据行依次推送到目标节点、目标表分片的发送队列;s405、当队列中的数据达到设定行数时,压缩数据块,并发给目标虚拟集群的对应计算单元;s407、虚拟集群一的计算单元接收数据,并直接存储到本地。
[0020]
异步处理单元专门负责这种数据的异步发送,和主物化线程不属于一个线程。
[0021]
一个集群数据库可以支持多个租户,每个租户的数据彼此隔离,形成虚拟集群(virtual cluster,以下称为vc)。每个vc相当于一个子集群,每个vc中包含不同业务的数据,由同一个coordinator集群统一管理。如(图3)。
[0022]
实现要点:1.轻松实现多租户,不同租户访问不同的vc,数据独立存储。
[0023]
2.不同vc可以访问相同的元数据服务,元数据服务中存储各vc的部署信息和数据分布信息,所以,各vc可以彼此感知存储的数据。
[0024]
3.轻松实现数据在多vc间流转;如果权限允许,支持把其它vc中表的数据插入到本vc的表中,只要使用标准的insert select sql语句即可。具体实现原理参见(图4)举例:insert into vc1.t1 select * from vc2.t2 where vc2.t2.b > 20;4.支持多vc间关联查询。
[0025]
如果要关联查询不同业务部门的数据,只要关联查询不同vc中的表即可,利用标准的inner/left join/right join/full join语法即可。不需要导入导出业务数据。查
询到的数据就是实时业务数据。
[0026]
举例:select vc1.t1.* from vc1.t1 inner join vc2.t2on vc1.t1.a=vc2.t2.a where vc2.t2.b>10;以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1