跨节点的晚期物化方法和装置制造方法
【专利摘要】本发明实施例提供一种跨节点的晚期物化方法和装置。该方法包括:获取第一节点中数据的第一元组信息;根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。由于本发明实施例在集群网络中传输的数据仅为与第二节点的第二过滤条件匹配的数据,即在集群网络中没有传输无用的数据,因此本发明实施例减少了集群网络的数据传输量,节省了传输资源。
【专利说明】跨节点的晚期物化方法和装置
【技术领域】
[0001]本发明实施例涉及数据库技术,尤其涉及一种跨节点的晚期物化方法和装置。
【背景技术】
[0002]众所周知,数据库的主要用途是为用户提供数据存储和检索数据,因此密集型磁盘输入输出(Input/Output,以下简称I/O)是数据库引擎的一大特点,这里的磁盘I/O指的是将数据从磁盘写入内存或者将数据从内存写入磁盘的操作。而完成磁盘I/o操作要消耗许多资源并且耗时较长,所以数据库一般侧重于提高I/o效率,减少I/O访问。通过数据库检索数据时,物理机需要将磁盘的数据读入到内存中,这个过程称之为物化。在得到同样正确结果的前提下,物化越少的数据,系统的I/o压力越少,占用的内存越少,查询速度越快。
[0003]为了减少物化的数据,现有技术中提供了一种晚期物化技术(LateMaterializat1n),该晚期物化技术是物化的一种算法,这种算法将物化分散在数据处理过程中,因为在此过程中存在数据投影和过滤操作,即将不需要物化的数据过滤掉,因此能够大大降低某些数据需要物化的概率,减小I/O读取量,节省了内存资源。该物化技术主要是基于单机数据库检索的背景下考虑的。
[0004]但是,若采用现有技术的方法,对于集群数据库中数据的检索,由于数据需要在不同的节点(即进程)之间流动,这些流动的数据在跨节点的时候会被全部物化(这些流动的数据与下一个节点之间具有一定的关联关系)。也就是说,在跨节点时,前一个节点会将流动的数据全部从其对应的磁盘中读入内存,然后将这些全部被物化的数据发给下一个节点,下一个节点仍需要进一步对这些物化的数据进行过滤。也就是说,这个过程中传送了一些无用的数据,故使得整个集群的网络传输量以及内存的使用量增大,造成了资源的浪费,且影响系统的可靠性。
【发明内容】
[0005]本发明实施例提供一种跨节点的晚期物化方法和装置,用以解决现有技术中在跨节点检索集群数据库中的数据时,节点之间传送无用的数据造成的网络传输量以及内存的使用量增大,从而使得资源浪费的技术问题。
[0006]第一方面,本发明提供一种跨节点的晚期物化方法,应用于集群数据库系统,所述集群数据库系统包括多台物理机,所述物理机包括多个节点,所述方法包括:
[0007]获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点;
[0008]根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节点;
[0009]根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
[0010]结合第一方面,在第一方面的第一种可能的实施方式中,所述第一元组信息包括列标识和节点标识,所述节点标识用于指示存储所述数据的节点为第一节点,所述列标识用于指示所述第一节点中存储所述数据的列。
[0011]结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述根据所述第一元组信息确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据,具体包括:
[0012]根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列;
[0013]接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列;
[0014]根据所述第三元组信息从所述第三数据中确定所述第二数据。
[0015]结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述第一元组信息对所述第二数据进行物化,并将物化后的第二数据输出至所述第二节点,具体包括:
[0016]根据所述第三元组信息中的节点标识和所述第三元组信息的列标识将所述第二数据从所述第一节点对应的磁盘写入所述内存,并将写入所述内存的第二数据输出至所述第二节点。
[0017]第二方面,本发明提供一种跨节点的晚期物化装置,应用于集群数据库系统,所述集群数据库系统包括多台物理机,所述物理机包括多个节点,所述装置包括:
[0018]获取模块,用于获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点;
[0019]处理模块,用于根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节占.V,
[0020]物化模块,用于根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
[0021]结合第二方面,在第二方面的第一种可能的实施方式中,所述第一元组信息包括列标识和节点标识,所述节点标识用于指示存储所述数据的节点为第一节点,所述列标识用于指示所述第一节点中存储所述数据的列。
[0022]结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述处理模块,包括:
[0023]输出单元,用于根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列;
[0024]接收单元,用于接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列;
[0025]确定单元,用于根据所述第三元组信息从所述第三数据中确定所述第二数据。
[0026]结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述物化模块,具体用于根据所述第三元组信息中的节点标识和所述第三元组信息的列标识将所述第二数据从所述第一节点对应的磁盘写入所述内存,并将写入所述内存的第二数据输出至所述第二节点。
[0027]本发明实施例提供的跨节点的晚期物化方法和装置,通过获取第一节点中数据的第一元组信息,并根据第一元组信息确定上述数据中的第一数据为与第一节点预设的第一过滤条件匹配的数据,并确定上述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据,并根据第一元组信息对第一数据和第二数据分别进行物化,并将物化后的第二数据输出至第二节点,通过第二节点处理物化后的第二数据。由于本发明实施例在集群网络中传输的数据仅为与第二节点的第二过滤条件匹配的数据,即在集群网络中没有传输无用的数据,因此本发明实施例减少了集群网络的数据传输量,节省了传输资源。
【专利附图】
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明提供的跨节点的晚期物化方法实施例一的流程示意图;
[0030]图2为本发明提供的跨节点的晚期物化方法实施例二的流程示意图;
[0031]图3为本发明提供的跨节点的晚期物化装置实施例一的结构示意图;
[0032]图4为本发明提供的跨节点的晚期物化装置实施例二的结构示意图。
【具体实施方式】
[0033]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]本发明实施例涉及的方法可以应用于集群数据库系统,该集群数据库系统可以包括多台物理机,每个物理机上包括多个节点。需要说明的是,该节点可以为物理机上的进程,因此上述所述的每个物理机上包括多个节点指的是物理机需要执行多个进程才可以从集群数据库中获得检索的数据,因此每个进程之间会有数据的流动。另外,物理机从集群数据库中获得检索的数据时,可以是一台物理机执行自身的多个进程就可以获取,也可以是一台物理机通过执行自身的多个进程以及通过其他物理机上的进程获取。也就是说,从集群数据库中获得检索的数据是按照执行多少次进程为粒度进行划分的,可以不考虑进程属于哪一个物理机。
[0035]进一步地,物理机中包括静态存储数据的磁盘和动态存储数据的内存。物理机上的每个节点可以访问磁盘中与该节点对应的数据,即每个节点可以将该节点对应的磁盘中的数据写入该节点对应的内存中,这个过程称之为物化。
[0036]图1为本发明提供的跨节点的晚期物化方法实施例一的流程示意图。该方法的执行主体可以为物理机,还可以为集成在物理机中的装置。下述均已执行主体为物理机为例来说明。如图1所示,该方法包括:
[0037]SlOl:获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点。
[0038]具体的,物理机中的第一节点当前正在运行,因此物理机可以通过第一节点获取磁盘中与该第一节点对应的数据的第一元组信息。该第一元组信息用于指示上述数据与存储数据的第一节点之间的映射关系,以及,数据存储在第一节点对应的磁盘中的列的位置。可选的,该第一元组信息可以为显式的标识数据与第一节点的映射关系和数据存储在第一节点对应的磁盘中的列的位置的信息,也可以为隐式的标识数据与第一节点的映射关系和数据存储在第一节点对应的磁盘中的列的位置的信息,例如将第一元组信息进行封装或者以一定的格式嵌入在某个占用内存较小的消息中,这样可以节省物理机存储第一元组信息的内存。
[0039]S102:根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节点。
[0040]具体的,物理机根据第一元组信息可以确定第一元组信息对应的数据中哪些是与第一节点中预设的第一过滤条件匹配的第一数据,哪些是与第二节点中预设的第二过滤条件匹配的第二数据。这里所说的“匹配”,指的是第一数据本身就是第一节点需要处理的数据,第二数据虽然存储在第一节点对应的磁盘中,但仍然是需要第二节点进行处理的数据。
[0041]可选的,上述第一过滤条件可以为第一节点能够处理的数据的属性标识,还可以为第一节点能够处理的数据的大小,还可以为第一节点能够处理的数据的结构等。上述第二过滤条件可以为第二节点能够处理的数据的属性标识,还可以为第二节点能够处理的数据的大小,还可以为第二节点能够处理的数据的结构等
[0042]S103:根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
[0043]具体的,当物理机确定磁盘中的第一数据和第二数据后,将第一数据和第二数据分别从第一节点对应的磁盘中写入第一节点对应的内存中,由第一节点对第一数据进行进一步的处理。这里所说的“第一节点对第一数据进行进一步的处理”可以为将第一数据发送给用户等操作。
[0044]当物理机通过第一节点将第二数据从第一节点对应的磁盘写入第一节点对应的内存中后,物理机会将该第二数据发送给第二节点,由第二节点对第二数据进行进一步的处理。这里所说的“第二节点对第二数据进行进一步的处理”可以为将第二数据发送给用户等操作。也就是说,物理机已经确定第二数据属于第二节点处理的数据,只是该第二数据存储在第一节点对应的磁盘中,因此,该第二数据为集群数据库中可以流动的数据,即第二数据为通过集群网络传输给下一个节点的数据。
[0045]需要说明的是,本发明实施例中的第一节点和第二节点并不特指,第一节点为物理机上的任一个节点,第二节点为除第一节点之外的其他节点,即第二节点为第一节点中流动的数据流向的下一个节点。并且,该第二节点相对于第二节点上的流动数据流向的下一个节点而言也可以为新的第一节点,则下一个节点即就是第二节点。
[0046]现有技术中,物理机会将第一节点对应的磁盘中与第二节点有关联的流动的数据全部从磁盘中读入到第一节点对应的内存中,即物理机会将与第二节点有关联的流动的数据全部进行物化,并将物化后的数据通过集群网络传输给第二节点,然后通过第二节点进一步过滤出第二节点能够处理的第二数据,因此现有技术增大了集群网络的数据传输量,浪费了传输资源;但是,在本发明实施例中,物理机通过第一元组信息确定属于第一节点处理的第一数据和属于第二节点处理的第二数据后,然后通过第一节点将第二数据进行物化,并将物化后的第二数据通过集群网络传输给第二节点,由于本发明实施例在集群网络中传输的数据为与第二节点中的第二过滤条件匹配的数据,即在集群网络中传输的数据仅为第二节点实际能够处理的数据,集群网络中并没有传输其他无用的数据,因此本发明实施例减小了集群网络的数据传输量,节省了传输资源。
[0047]本发明实施例提供的跨节点的晚期物化方法,通过获取第一节点中数据的第一元组信息,并根据第一元组信息确定上述数据中的第一数据为与第一节点预设的第一过滤条件匹配的数据,并确定上述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据,并根据第一元组信息对第一数据和第二数据分别进行物化,并将物化后的第二数据输出至第二节点,通过第二节点处理物化后的第二数据。由于本发明实施例在集群网络中传输的数据仅为与第二节点的第二过滤条件匹配的数据,即在集群网络中没有传输无用的数据,因此本发明实施例减少了集群网络的数据传输量,节省了传输资源。
[0048]进一步地,上述第一元组信息可以包括列标识和节点标识,该节点标识用于指示存储上述数据的节点为第一节点,所述列标识用于指示上述第一节点中存储所述数据的列。
[0049]具体的,物理机可以通过第一元组信息中的节点标识确定数据存储在第一节点对应的磁盘中,并根据列标识确定数据存储在第一节点对应的磁盘中的哪一列里面,从而物理机可以根据列标识准确的从第一节点对应的磁盘中读取将第一数据和第二数据。
[0050]在上述实施例的基础上,作为本发明实施例的实施例二,本实施例涉及的是物理机如何通过第一元组信息确定第二数据,并将第二数据进行物化的具体过程。进一步地,如图2所示,该方法包括:
[0051]S201:根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列。
[0052]具体的,物理机根据预设的条件判断第一节点对应的磁盘中的数据的第一元组信息中的哪些元组信息与该预设条件匹配,从而确定出发送给应该发送给第二节点的第二元组信息,即确定出在第一节点和第二节点之间流动的所有第三数据对应的元组信息。该第三数据可以为与第二节点具有关联关系的数据。但是需要说明的是,该第三数据虽然与第二节点具有关联关系,但并不表示第三数据就一定能被第二节点处理。该第二元组信息中的节点标识用于指示存储第三数据的节点为第一节点,该第二元组信息中的列标识用于指示第三数据存储在第一节点中的列。
[0053]可选的,该预设条件可以为物理机自动加载的筛选程序,也可以为人工配置给物理机的条件,该预设条件的表现形式可以为参数形式,还可以是阈值的形式。本发明对预设条件的形式并不做限制,只要该预设条件能够使得物理机确定出应该发往第二节点的元组信息即可。
[0054]S202:接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列。
[0055]具体的,当物理机将第二元组信息输出至第二节点时,物理机可以通过第二节点判断该第二元组信息中的哪些元组信息与第二节点中的第二过滤条件匹配,这些与第二节点中的第二过滤条件匹配的元组信息为第三元组信息,并且,第二节点也根据第三元组信息中的节点标识获知该第三元组信息对应的数据均存储在第一节点对应的磁盘中。故,第二节点会将第三元组信息返回给物理机,以通过第三元组信息告知物理机与第二节点的第二过滤条件匹配的第二数据存储在第一节点对应的磁盘中。
[0056]S203:根据所述第三元组信息从所述第三数据中确定所述第二数据。
[0057]具体的,物理机根据第三元组信息中的节点标识确定与第二节点的第二过滤条件匹配的第二数据存储在第一节点对应的磁盘中,则物理机根据第三元组信息中的列标识从第一节点对应的磁盘中读取第二数据,并将第二数据写入内存,最后将写入内存的第二数据输出至所述第二节点。即物理机对第二数据进行物化,并将物化后的第二数据通过集群网络发送给第二节点。
[0058]为了更好的理解本发明实施例,此处举一个简单的例子,具体为:
[0059]以最简单的快递为例,假设第一节点为北京节点,北京节点的仓库为本发明实施例中所述的第一节点对应的磁盘,北京节点对应的集装箱为本发明实施例所述的第一节点对应的内存,第二节点为上海,并且假设快件分拣员为物理机。则分拣员可以依据快件的地址信息判断出一些快件是应该发往上海的快件(这里的快件地址即为上述物理机的预设条件),这里应该发往上海的快件为本发明实施例中所述的第三数据。假设应该发往上海的快件有10件,分拣员将这10件快件对应的第二元组信息发送给上海节点,该第二元组信息包括存储该快件的节点的ID (节点标识)和快件存储在节点中的哪一列(列标识)。上海节点通过第二元组信息判断这10件快件的第二元组信息是否与上海节点上的第二过滤条件匹配(假设上海节点的第二过滤条件为只处理上海市区的快件);假设上海节点通过这10个快件的第二元组信息判断发现这10个快件中只有5个是上海市区的快件,且这5个快件是存储在北京节点上的(另外5个快件是上海郊区的),因此上海节点将其余的上海郊区的快件的信息丢弃掉,然后将属于上海市区的5个快件的第三元组信息返回给分拣员,使得分拣员获知与上海节点的第二过滤条件匹配的快件存储在北京的仓库中,然后分拣员从北京的仓库中取出这5个快件到北京的集装箱,然后发送给上海节点。本发明实施例所提供的方法,通过将快件的第二元组信息发送给上海节点,由上海节点确定出自身能够处理的快件对应的第三元组信息,从而使得分拣员可以将第三元组信息对应的快件从北京节点的仓库取出,发送至上海节点,从而避免了北京将所有与上海节点关联的无用的快件通过网络传输给上海节点,减少了网络的数据传输量,进而节省了传输资源。
[0060]本发明实施例提供的跨节点的晚期物化方法,通过获取第一节点中数据的第一元组信息,并根据预设条件将第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点,并接收所述第二节点返回的第三元组信息,从而根据第三元组信息从第二元组信息对应的第三数据中确定与该第三元组信息对应的第二数据,从而对第二数据进行物化,并将物化后的第二数据输出至第二节点,通过第二节点处理物化后的第二数据。由于本发明实施例在集群网络中传输的数据仅为与第二节点的第二过滤条件匹配的数据,即在集群网络中没有传输无用的数据,因此本发明实施例减少了集群网络的数据传输量,节省了传输资源。
[0061 ] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0062]图3为本发明提供的跨节点的晚期物化装置实施例一的结构示意图。该晚期物化装置10可以为物理机,还可以集成在物理机中。该晚期物化装置10应用于集群数据库系统,所述集群数据库系统包括多台物理机,所述物理机包括多个节点。如图3所示,该晚期物化装置10包括:获取模块11、处理模块12和物化模块13。
[0063]其中,获取模块11,用于获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点;
[0064]处理模块12,用于根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节点;
[0065]物化模块13,用于根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
[0066]本发明实施例提供的跨节点的晚期物化装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0067]进一步地,上述第一元组信息包括列标识和节点标识,所述节点标识用于指示存储所述数据的节点为第一节点,所述列标识用于指示所述第一节点中存储所述数据的列。
[0068]图4为本发明提供的跨节点的晚期物化装置实施例二的结构示意图。在上述图3所示实施例的基础上,上述处理模块12具体可以包括:输出单元121,用于根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列;接收单元122,用于接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列;确定单元123,用于根据所述第三元组信息从所述第三数据中确定所述第二数据。
[0069]进一步地,上述物化模块13,具体用于根据所述第三元组信息中的节点标识和所述第三元组信息的列标识将所述第二数据从所述第一节点对应的磁盘写入所述内存,并将写入所述内存的第二数据输出至所述第二节点。
[0070]本发明实施例提供的跨节点的晚期物化装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0071]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种跨节点的晚期物化方法,应用于集群数据库系统,所述集群数据库系统包括多台物理机,所述物理机包括多个节点,其特征在于,所述方法包括: 获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点; 根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节点; 根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
2.根据权利要求1所述的方法,其特征在于,所述第一元组信息包括列标识和节点标识,所述节点标识用于指示存储所述数据的节点为第一节点,所述列标识用于指示所述第一节点中存储所述数据的列。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一元组信息确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据,具体包括: 根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列; 接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列; 根据所述第三元组信息从所述第三数据中确定所述第二数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一元组信息对所述第二数据进行物化,并将物化后的第二数据输出至所述第二节点,具体包括: 根据所述第三元组信息中的节点标识和所述第三元组信息的列标识将所述第二数据从所述第一节点对应的磁盘写入所述内存,并将写入所述内存的第二数据输出至所述第二节点。
5.—种跨节点的晚期物化装置,应用于集群数据库系统,所述集群数据库系统包括多台物理机,所述物理机包括多个节点,其特征在于,所述装置包括: 获取模块,用于获取第一节点中数据的第一元组信息;其中,所述第一元组信息用于指示所述数据与存储所述数据的所述第一节点之间的映射关系,以及,所述数据存储在所述第一节点中的列;所述第一节点为所述多个节点中的任一个节点; 处理模块,用于根据所述第一元组信息确定所述数据中的第一数据为与所述第一节点预设的第一过滤条件匹配的数据,并确定所述数据中的第二数据为与第二节点预设的第二过滤条件匹配的数据;所述第二节点为所述多个节点中除所述第一节点之外的任一节点; 物化模块,用于根据所述第一元组信息对所述第一数据和所述第二数据分别进行物化,并将物化后的第二数据输出至所述第二节点,通过所述第二节点处理物化后的第二数据。
6.根据权利要求5所述的装置,其特征在于,所述第一元组信息包括列标识和节点标识,所述节点标识用于指示存储所述数据的节点为第一节点,所述列标识用于指示所述第一节点中存储所述数据的列。
7.根据权利要求5或6所述的装置,其特征在于,所述处理模块,包括: 输出单元,用于根据预设条件将所述第一元组信息中与所述预设条件匹配的第二元组信息输出至第二节点;其中,所述第二元组信息对应的数据为与所述第二节点具有关联关系的第三数据;所述第二元组信息中的节点标识用于指示存储所述第三数据的节点为第一节点,所述第二元组信息中的列标识用于指示所述第三数据存储在所述第一节点中的列; 接收单元,用于接收所述第二节点返回的第三元组信息,所述第三元组信息为所述第二节点从所述第二元组信息中确定的与所述第二过滤条件匹配的元组信息;所述第三元组信息中的节点标识用于指示存储所述第二数据的节点为第一节点,所述第三元组信息中的列标识用于指示所述第二数据存储在所述第一节点中的列; 确定单元,用于根据所述第三元组信息从所述第三数据中确定所述第二数据。
8.根据权利要求7所述的装置,其特征在于,所述物化模块,具体用于根据所述第三元组信息中的节点标识和所述第三元组信息的列标识将所述第二数据从所述第一节点对应的磁盘写入所述内存,并将写入所述内存的第二数据输出至所述第二节点。
【文档编号】G06F17/30GK104462479SQ201410796561
【公开日】2015年3月25日 申请日期:2014年12月18日 优先权日:2014年12月18日
【发明者】周平高 申请人:杭州华为数字技术有限公司