一种从节点中的数据记录的迁移方法及装置与流程

文档序号:12364051阅读:344来源:国知局
一种从节点中的数据记录的迁移方法及装置与流程
本发明涉及计算机
技术领域
,尤其涉及一种从节点中的数据记录的迁移方法及装置。
背景技术
:在分布式数据库系统中,主节点将数据表存储的多条数据记录分成多个数据表并分配到多个从节点上。当需要查询某些数据记录时,要将每个从节点上的数据表中存储的相关联的数据记录连接起来,具体实现过程中,是对每两个数据表进行连接,因而,这种数据记录的查询方式称为两表连接方式,以下进行举例说明。假设,有两个从节点:从节点1和从节点2,从节点1存储有数据表1,从节点2存储有数据表2,要进行两个从节点的数据表的连接操作,可以将从节点1的数据表1的数据记录传输到从节点2上进行连接,也可以将从节点2的数据表2的数据记录传输到从节点1上进行连接。由于在现有的分布式数据库系统中,每个从节点中存储的数据记录分配之后就不再变化,即从节点中存储的数据记录就固定了,这样,会导致如下问题:如果从节点1或者从节点2中需要传输的数据记录较多,就会增加通信负担。由于在实际的两表连接时,从节点1的部分数据记录并不能和从节点2的数据记录匹配,就不能进行连接,对于无法进行连接的数据记录也进行传输,就会增加通信负担,增加了查询处理的代价。现有技术中,通常采用半连接和布鲁连接这两种方式进行两表的连接,以避免传输这些不能进行连接的数据记录,以减少通信负担。下面例举两个数据表说明这两种连接方式。节点1上的数据表1:数据记录ID字段A字段B1A1B12A2B43A3B34A4B4节点2上的数据表2:数据记录ID字段B字段C1B1C12B5C23B2C34B2C4基于以上例举的两个数据表,连接字段为字段B,半连接的方式:在从节点1对数据表1进行投影得到连接字段的不重复集合{B1,B3,B4},并传输至节点2;在节点2,将从节点1传输过来的投影结果和数据表2进行自然连接,得到数据表2的约减:数据记录ID字段B字段C1B1C1将上述数据表2约减后的数据记录传输至从节点1;在从节点1,对数据表2约减后的数据记录和数据表1进行连接。并得到的结果为:数据记录ID字段A字段B字段C1A1B1C1布鲁连接:仍基于以上例举的数据表1和数据表2进行说明:在从节点1对数据表1进行投影得到连接字段的不重复集合{B1,B3,B4};通过使用hash函数,将该不重复集合中的字段映射为位向量10110,例如,通过hash函数hash(B1)=1,设置位向量的第1位为1,hash(B3)=3,设置位向量的第3位为1,hash(B4)=4,设置位向量的第4位为1;将该位向量发送至节点2;在节点2,对表2中的每一条数据记录使用同一个hash函数进行计算,hash(B1)=1,为位向量匹配,该条数据记录满足条件,继续计算hash(B2)=2,位向量的第2位为0,即该条数据记录不满足条件。最终得到满足条件的记录为数据记录ID字段B字段C1B1C1将上述数据表2约减后的数据记录传输至从节点1;在从节点1,对数据表2约减后的数据记录和数据表1进行连接。从上述列举的两种数据表的连接方式中,可以看出,虽然最终减少了不能连接的数据记录的传输,但是由于在现有的分布式数据库系统中,从节点中存储的数据记录的数量是固定的,如果在从节点2中存储的数据记录较多,在实现过程中,从节点1和从节点2之间所涉及到的投影后的数据的传输和约减后的数据记录的传输过程中,通信负担仍然不小。技术实现要素:本发明实施例的目的是提供一种从节点中的数据记录的迁移方法及装置,用于解决现有的分布式数据库中因从节点中存储的数据记录的数量固定而导致采用两表连接方式查询数据记录时的通信负担较重的问题。本发明实施例的目的是通过以下技术方案实现的:一种从节点中的数据记录的迁移方法,应用于分布式数据库系统中,该方法包括:在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,判断各个从节点中满足数据迁移的触发条件的从节点的数量是否达到预设数量;若是,将满足数据迁移的触发条件的所述从节点中满足数据迁移条件的数据记录迁移到目标从节点中存储;其中,所述数据迁移条件为:数据记录传输到所述目标从节点的传输次数达到预设次数;所述数据迁移的触发条件为:在所述从节点中,满足所述数据迁移条件的数据记录的条数达到预设条数。较佳地,所述数据迁移条件为:数据记录到所述目标从节点的传输次数最多,且该传输次数与所述分布式数据库系统中采用两表连接方式执行的数据记录查询的总次数的比值大于第一预设阈值。较佳地,所述数据迁移的触发条件为:在所述从节点中,满足所述数据迁移条件的数据记录的条数,与本从节点中存储的数据记录的总条数的比值大于第二预设阈值。较佳地,所述第一预设阈值为1/2;所述第二预设阈值为1/n,其中n为本从节点存储的数据记录的总条数。较佳地,该方法还包括:在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,统计所述从节点中的每条数据记录传输到各个目标从节点的传输次数。较佳地,所述预设数量为所述分布式数据库系统中所有所述从节点的数量。一种从节点中的数据记录的迁移装置,该装置包括:判断模块,用于:在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,判断各个从节点中满足数据迁移的触发条件的从节点的数量是否达到预设数量;迁移模块,用于:若是,将满足数据迁移的触发条件的所述从节点中满足数据迁移条件的数据记录迁移到目标从节点中存储;其中,所述数据迁移条件为:数据记录传输到所述目标从节点的传输次数达到预设次数;所述数据迁移的触发条件为:在所述从节点中,满足所述数据迁移条件的数据记录的条数达到预设条数。较佳地,所述数据迁移条件为:数据记录到所述目标从节点的传输次数最多,且该传输次数与所述分布式数据库系统中采用两表连接方式执行的数据记录查询的总次数的比值大于第一预设阈值。较佳地,所述数据迁移的触发条件为:在所述从节点中,满足所述数据迁移条件的数据记录的条数,与本从节点中存储的数据记录的总条数的比值大于第二预设阈值。较佳地,所述第一预设阈值为1/2;所述第二预设阈值为1/n,其中n为本从节点存储的数据记录的总条数。较佳地,该装置还包括统计模块;所述统计模块,用于:在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,统计所述从节点中的每条数据记录传输到各个目标从节点的传输次数。较佳地,所述预设数量为所述分布式数据库系统中所有所述从节点的数量。本发明实施例的有益效果如下:由于分布式数据库系统中采用两表连接方式执行数据记录的查询过程中,其中一个从节点中的数据记录要传输到另一从节点(即目标从节点)中进行连接,从节点中的一条数据记录传输至哪一个目标从节点的传输次数较多,说明该目标从节点是该条数据记录较佳的存储从节点,本发明实施例的方案中,在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,如果从节点中的数据记录到一个目标从节点的传输次数达到预设次数,即数据记录满足数据迁移条件,且该从节点中满足数据迁移条件的数据记录的条数达到预设条数,则该从节点满足数据触发条件,且满足数据触发条件的从节点的数量达到预设数量,就将每个从节点中存储的满足数据迁移条件的数据记录迁移到该数据记录对应的传输次数达到预设次数的目标从节点中存储,这样,与现有技术相比,数据记录的存储位置就是动态变化的,可以将两个从节点之间连接次数较多的数据记录存储在同一个从节点中,因而在后续数据记录的查询过程中,就减少了对该条数据记录到目标从节点的传输,从而减少了通信负担,提高了数据处理效率。附图说明图1为本发明实施例提供的一种从节点中的数据记录的迁移方法流程图;图2为本发明实施例提供的一种分布式数据库系统的示意图;图3为本发明实施例提供的一种从节点中的数据记录的迁移装置示意图。具体实施方式下面结合附图和实施例对本发明提供的一种从节点中的数据记录的迁移方法及装置进行更详细地说明。如图1所示,本发明实施例提供一种从节点中的数据记录的迁移方法,该方法至少包括如下步骤:步骤110、在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,判断各个从节点中满足数据迁移的触发条件的从节点的数量是否达到预设数量。步骤120、若是,将满足数据迁移的触发条件的从节点中满足数据迁移条件的数据记录迁移到目标从节点中存储;其中,数据迁移条件为:数据记录传输到目标从节点的传输次数达到预设次数;数据迁移的触发条件为:在从节点中,满足数据迁移条件的数据记录的条数达到预设条数。如果满足数据迁移的触发条件的从节点的数量未达到预设数量,则不进行数据记录的迁移。由于分布式数据库系统中采用两表连接方式执行数据记录的查询过程中,其中一个从节点中的数据记录要传输到另一从节点(即目标从节点)中进行连接,从节点中的一条数据记录传输至哪一个目标从节点的传输次数较多,说明该目标从节点是该条数据记录较佳的存储从节点,本发明实施例的方案中,在分布式数据库系统中采用两表连接方式每执行一次数据记录的查询后如果从节点中的数据记录到一个目标从节点的传输次数达到预设次数,即数据记录满足数据迁移条件,且该从节点中满足数据迁移条件的数据记录的条数达到预设条数,则该从节点满足数据触发条件,且满足数据触发条件的从节点的数量达到预设数量,就将每个从节点中存储的满足数据迁移条件的数据记录迁移到该数据记录对应的传输次数达到预设次数的目标从节点中存储,这样,与现有技术相比,数据记录的存储位置就是动态变化的,可以将两个从节点之间连接次数较多的数据记录存储在同一个从节点中,因而在后续数据记录的查询的过程中,就减少了对该条数据记录到目标从节点的传输,从而减少了通信负担,提高了数据处理效率。上述数据迁移条件为:数据记录到目标从节点的传输次数达到预设次数,其中的预设次数可以根据实际需要设置,在一种可能的实施例中,较佳地,数据迁移条件为:数据记录到目标从节点的传输次数最多,且该传输次数与分布式数据库系统中采用两表连接方式执行的数据记录查询的总次数的比值大于第一预设阈值。也就是说,在所有的布式数据库系统中采用两表连接方式执行的数据记录查询中,数据记录对应的数据迁移的目标从节点的传输次数最多,因而是最佳的存储位置。较佳地,第一预设阈值为1/2。这样可以保证要传输的次数大于不传输的次数,以保证数据迁移的有效性,避免数据迁移次数过多或过少。为了进一步提高数据迁移的有效性,以避免多次进行数据迁移,可以进一步限定数据迁移触发条件中,满足数据迁移条件的数据记录的条数,较佳地,上述步骤110中数据迁移触发条件包括:在从节点中,满足数据迁移条件的数据记录的条数,与本从节点中存储的数据记录的总条数的比值大于第二预设阈值。较佳地,第二预设阈值为1/n,其中n为本从节点存储的数据记录的总条数。应当指出的是,上述各个实施例中,满足数据迁移的触发条件的从节点的数量要达到预设数量:其中的预设数量可以是一个,这样,在分布式数据库系统中只要有一个从节点满足数据迁移的触发条件就进行数据迁移;其中的预设数量也可以是两个以上,较佳地,上述预设数量为分布式数据库系统中所有的从节点的数量,这样,只有所有的从节点都满足数据迁移的触发条件才进行数据迁移,即每个从节点都有数据记录迁移到其它从节点,也有从其它从节点迁移来的数据记录,这样可以避免某些从节点的数据记录较多或较少,保证了各个从节点之间的数据均衡,进而保证各个从节点的处理效率。较佳地,在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,统计从节点中的每条数据记录传输到各个目标从节点的次数,等等。应当指出的是,上述数据处理过程可以由分布式数据库中的主节点执行,例如,可以由各个从节点将本从节点统计的结果上报给主节点,由主节点进行处理。或者,上述处理过程可以由分布式数据库中的各个从节点配合执行,例如,由每个从节点根据统计的结果进行判断本从节点是否满足数据迁移的触发条件并告知其它从节点,以及接收其它从节点的判断结果,进而进行后续处理。下面以具体的应用场景为例,对本发明实施例提供的一种从节点中的数据记录的迁移方法进行更加详细地说明。在本实施例的分布式数据库系统中,如图2所示,该分布式数据库系统包括主节点和n个从节点。在每一个从节点中加入一个统计器模块,统计各个从节点中每条数据记录需要传输到另一个从节点(即目标从节点)进行连接的次数。例如,采用两表连接方式查询8次,在从节点1中,统计的结果如表1所示:本实施例中,数据迁移条件:数据记录到目标从节点的传输次数最多,且该传输次数与分布式数据库系统中采用两表连接方式执行的数据记录查询的总次数的比值大于1/2;数据迁移的触发条件为:满足数据迁移条件的数据记录的条数,与本从节点中存储的数据记录的总条数的比值大于1/4。在8次采用两表连接方式执行的数据记录查询后,根据上述对从节点1的统计结果,可以看出:数据记录ID为1的数据记录,到目标从节点2的传输次数最多,为6次,并且该传输次数与采用两表连接方式执行的数据记录查询的总次数的比值3/4大于1/2,因而满足数据记录的迁移条件;数据记录ID为2的数据记录,到目标从节点2的传输次数最多,为5次,并且该传输次数与采用两表连接方式执行的数据记录查询的总次数的比值5/8大于1/2,因而满足数据记录的迁移条件;数据记录ID为3的数据记录,到目标从节点n的传输次数最多,为7次,并且该传输次数与采用两表连接方式执行的数据记录查询的总次数的比值7/8大于1/2,因而满足数据记录的迁移条件;数据记录ID为4的数据记录,到目标从节点n的传输次数最多,为3次,但是该传输次数与采用两表连接方式执行的数据记录查询的总次数的比值3/8不大于1/2,因而不满足数据记录的迁移条件;因此,满足数据记录的迁移条件的数据记录包括数据记录ID为1、2和3的3条数据记录,与从节点1中存储的数据记录的总条数的比值3/4大于1/4,因而,主节点可以确定从节点1满足数据迁移的触发条件。对其它的从节点也进行同样的处理。如果,最终主节点判断所有从节点都满足数据迁移的触发条件,就进行数据迁移。进行数据迁移时,以从节点1为例,将数据记录ID为1、2和3的数据记录分别迁移到目标从节点2、2、n中。迁移数据记录完成后,由于记录的物理存储已经改变,需要重新初始化统计表。基于同样的发明构思,本发明实施例还提供一种从节点中的数据迁移的装置,如图3所示,该装置包括判断模块301和迁移模块302。判断模块301,在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,判断各个从节点中满足数据迁移的触发条件的从节点的数量是否达到预设数量;迁移模块302,用于:若是,将满足数据迁移的触发条件的从节点中满足数据迁移条件的数据记录迁移到目标从节点中存储;其中,数据迁移条件为:数据记录传输到目标从节点的传输次数达到预设次数;数据迁移的触发条件为:在从节点中,满足数据迁移条件的数据记录的条数达到预设条数。由于分布式数据库系统中采用两表连接方式执行数据记录的查询过程中,其中一个从节点中的数据记录要传输到另一从节点(即目标从节点)中进行连接,从节点中的一条数据记录传输至哪一个目标从节点的传输次数较多,说明该目标从节点是该条数据记录较佳的存储从节点,本发明实施例的方案中,在分布式数据库系统中采用两表连接方式每执行一次数据记录的查询后如果从节点中的数据记录到一个目标从节点的传输次数达到预设次数,即数据记录满足数据迁移条件,且该从节点中满足数据迁移条件的数据记录的条数达到预设条数,则该从节点满足数据触发条件,且满足数据触发条件的从节点的数量达到预设数量,就将每个从节点中存储的满足数据迁移条件的数据记录迁移到该数据记录对应的传输次数达到预设次数的目标从节点中存储,这样,与现有技术相比,数据记录的存储位置就是动态变化的,可以将两个从节点之间连接次数较多的数据记录存储在同一个从节点中,因而在后续数据记录的查询的过程中,就减少了对该条数据记录到目标从节点的传输,从而减少了通信负担,提高了数据处理效率。较佳地,数据迁移条件为:数据记录到目标从节点的传输次数最多,且该传输次数与分布式数据库系统中采用两表连接方式执行的数据记录查询的总次数的比值大于第一预设阈值。较佳地,数据迁移的触发条件为:在从节点中,满足数据迁移条件的数据记录的条数,与本从节点中存储的数据记录的总条数的比值大于第二预设阈值。较佳地,第一预设阈值为1/2;第二预设阈值为1/n,其中n为本从节点存储的数据记录的总条数。较佳地,该装置还包括统计模块;统计模块,用于:在分布式数据库系统中采用两表连接方式每执行一次数据记录查询后,统计从节点中的每条数据记录传输到各个目标从节点的传输次数。较佳地,上述预设数量为分布式数据库系统中所有从节点的数量。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1