一种动态多源异构数据关联查询系统及其实现方法与流程

文档序号:16134156发布日期:2018-12-01 00:42阅读:1240来源:国知局

本发明涉及计算机应用技术领域,具体涉及一种动态多源异构数据关联查询系统及其实现方法。

背景技术

信息技术的发展使得系统具有多样性,系统与系统之间的数据无法流动,形成数据孤岛;但是在现实业务中,却需要系统之间的数据流动来满足业务的要求。如果数据无法被共享则需要对各个业务系统所需的数据进行复制,形成多份数据;此时的数据无法及时更新,造成数据的不同步;所以数据能够被共享是解决以上问题的最好方法。所有的业务系统均使用同一数据源,这就要涉及多表联合查询的问题。所以异库数据之间的关联及管理成为了数据管理的关键。



技术实现要素:

本发明解决的技术问题之一在于提供一种去中心化的分布式动态多源异构数据源关联查询系统,为多源异构的数据源提供多表关联查询功能。

本发明解决的另一技术问题在于提供一种去中心化的分布式动态多源异构数据源关联查询实现方法。

本发明解决上述技术问题之一的技术方案是:

所述的系统包括:节点表、心跳检测模块、结果归集模块、任务动态分配模块、配置数据同步模块、节点增减配置同步模块及协议模块;

所述的节点表记录各个节点的信息;

所述的心跳检测模块通过周期性的心跳问答来感知各个节点的存在;

所述的结果归集模块在每个节点计算完后,把结果广播到其他每个节点,节点把收到的结果进行合并;

所述的任务动态分配模块在节点增减后对任务再进行分配;

所述的配置数据同步模块根据数据获取本节点的数据任务;

所述的节点增减配置同步模块实现节点的增减配置同步;

所述的协议模块提供同步协议。

本发明解决另一技术问题的技术方案是:

所述的方法包括:

由节点表记录各个节点的信息;

心跳检测模块通过周期性的心跳问答来感知各个节点的存在;实现节点的增减配置同步;

在节点增减后对任务再进行分配;

根据数据获取本节点的数据任务;

在每个节点计算完后,把结果广播到其他每个节点,节点把收到的结果进行合并。

所述的节点表记录信息具体包括:口令、节点ip、端口、加入时间,上一次心跳检测时间戳,节点是否正常。

所述的心跳检测采用口令的方法来判别节点是否曾经失效,流程为:

(1)某节点按照周期广播心跳询问口令;

(2)其他收到询问的节点在口令的基础上加1作为回应;

(3)广播的节点收到回应后,判断回应是否正确,如果命令不正确或者没有收到回应,则在节点表上删除该节点;

(4)如果节点表上出现配置变动,修改配置表上的口令,则再次广播节点表。

所述的节点增加方法是:

(1)新节点b执行连接并加入a节点的命令;

(2)a节点监测到连接加入命令,把b节点加入到节点表中;

(3)a节点向b节点发送允许加入的标识;

(4)b节点进入广播监测状态,此状态为所有节点的基本状态;

(5)a节点向包括b节点的所有节点广播节点表;

(6)所有节点收到广播后,立即更新节点表,b成功加入计算节点,进入正常的对等节点状态;

所述的节点减少方法是:

(1)某节点向所有节点广播撤销的消息;

(2)其他节点收到撤销的信息后,进入任务再分配算法,把该节点未完成的任务分配到其他节点,分配完毕后执行下一步;

(3)回应撤销节点;

(4)节点退出程序。

所述的方法将相关联的两个节点表分别简称为a表和b表,这两个关联表的配置表记录着要处理数据的信息,具体如下:

a、b表分别对应一张配置表,记录a表或者b表在所有节点上分配处理数据的配置信息,信息包括:数据总量、ip、分配范围、是否归集;

配置表为所有节点共的,若需要改动,则通过广播来改动配置;

a、b表的计算任务会由对外界提供接口的节点来执行,根据a表和b表的总数量平均分配给有效的计算结点,流程如下:

(1)任务分配节点解释出a表和b表;

(2)获取a表和b表的数据量;

(3)根据有效节点的数量平均分配a、b表的数据;

(4)广播a表任务表和b表任务表

计算节点根据a、b表的配置表到相应的数据源获取本结点的数据任务。

所述的方法,当一个节点被主动撤销或者失去联系时,把分配在此节点上的计算任务转移到其他节点上执行;分配方法是:对无效节点的任务进行再分配,把该失效节点的任务平均分布到其他有效节点。

本发明通过分布式动态节点进行关联查询异构数据,系统可以动态增加或者减少计算节点来调节资源的使用。通过本发明,可以使多源异构大数据能够更快速地进行关联查询。

附图说明

下面结合附图对本发明进一步说明:

图1是本发明系统结构框图;

图2是本发明节点表配置图;

图3是本发明节点数据配置图。

具体实施方式

见附图1-3所示,本发明的方法采用分布式数据处理方法,系统可以动态加入或者退出计算节点,每个节点均保持满数据配置,即包括所有节点的数据配置情况,所有节点均是对等节点,无主次节点之分,计算的结果将会相互广播,在每个节点均保留着结果集。具体的实现技术方案是:

1、各种配置的数据结构节点表。节点表记录着各个节点的信息,记录的信息具体如下:口令、节点ip、端口、加入时间,上一次心跳检测时间戳,节点是否正常,如图2所示。

把相关联的两个表分别简称为a表和b表,这两个关联表的配置表记录着要处理数据的信息,具体如下:

a表b表配置表。记录a表或者b表在所有节点上分配处理数据的配置信息(ab表分别对应一张配置表),信息包括:数据总量、ip、分配范围、是否归集,如图3所示。

上表为所有节点共有的配置表,若需要改动,则通过广播来改动配置。“分配范围”表示某节点需要处理此表的数据范围,ip1需要处理第1条至第1000条数据。“是否归集”表示结果集是否被广播所有节点。

数据归集表,存放数据结果的表。

2、心跳检测

系统通过周期性的心跳问答来感知各个节点的存在,本系统的心跳周期为8秒。为了避免失效一段时间的节点再次加入而造成数据不一致,在此处采用口令的方法来判别节点是否曾经失效。流程如下:

(1)某节点按照周期广播心跳询问口令;

(2)其他收到询问的节点在口令的基础上加1作为回应;

(3)广播的节点收到回应后,判断回应是否正确,如果命令不正确或者没有收到回应(失联情况需要执行任务再分配算法),则在点表上删除该节点;

(4)如果节点表上出现配置变动,修改配置表上的口令,则再次广播节点表。

3、增加节点算法

一个节点可以从系统中的任何一个节点加入计算系统,流程如下(从a节点加入):

(1)新节点b执行连接并加入a节点的命令;

(2)a节点监测到连接加入命令,把b节点加入到节点表中;

(3)a节点向b节点发送允许加入的标识;

(4)b节点进入广播监测状态,此状态为所有节点的基本状态;

(5)a节点向包括b节点的所有节点广播节点表;

(6)所有节点收到广播后,立即更新节点表,b成功加入计算节点,进入正常的对等节点状态。

4、撤销节点算法

(1)某节点向所有节点广播撤销的消息;

(2)其他节点收到撤销的信息后,进入任务再分配算法,把该节点未完成的任务分配到其他节点,分配完毕后执行下一步;

(3)回应撤销节点;

(4)节点退出程序。

5、数据表任务分配

a、b表的计算任务会由对外界提供接口的节点来执行,根据a表和b表的总数量平均分配给有效的计算结点,流程如下:

(1)任务分配节点解释出a表和b表;

(2)获取a表和b表的数据量;

(3)根据有效节点的数量平均分配a、b表的数据;

(4)广播a表任务表和b表任务表

6、数据表分配

计算节点根据a、b表的配置表到相应的数据源获取本结点的数据任务。

7、任务再分配算法

当一个节点被主动撤销或者失去联系的时候,该算法把分配在此节点上的计算任务转移到其他节点上执行。分配方法如下:由任务分配节点对无效节点的任务进行再分配,把该失效节点的任务平均分布到其他有效节点。

8、结果归集

当每个节点计算完后,把结果广播到其他每个节点,节点把收到的结果进行合并,最终,用户可以到任何一个节点获取数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1