WO2020042813A1 - 一种分布式数据连接处理方法、装置、设备及存储介质 - Google Patents
一种分布式数据连接处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2020042813A1 WO2020042813A1 PCT/CN2019/096478 CN2019096478W WO2020042813A1 WO 2020042813 A1 WO2020042813 A1 WO 2020042813A1 CN 2019096478 W CN2019096478 W CN 2019096478W WO 2020042813 A1 WO2020042813 A1 WO 2020042813A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bloom filter
- data
- filter
- bloom
- data set
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本说明书实施例提供了一种分布式数据连接处理方法、装置、设备及存储介质。其方法包括:根据本端的表单数据生成第一布隆过滤器,并将第一布隆过滤器发送给对端;接收对端发送的第二布隆过滤器;合并所述第一布隆过滤器和所述第二布隆过滤器;利用合并后的布隆过滤器对本端的表单数据进行布隆过滤。
Description
本说明书实施例涉及数据处理领域,尤其涉及一种分布式数据连接处理方法、装置、设备及存储介质。
数据连接(join)是关系型数据库的一种重要的数据操作,其执行效率的高低往往对整个数据库有着至关重要的影响。在数据库的查询优化技术中,对数据连接操作的优化手段也十分丰富,数据连接操作的顺序以及具体算法都是重要的考虑因素。在分布式数据库中,不同的表单或分区的数据往往分布在不同的物理节点中,跨节点的连接操作往往无法避免,此时,除了执行效率外,还需要考虑数据传输和多节点并发等多方面因素。
传统数据库中一个重要的分布式连接优化是使用布隆过滤器,根据连接一侧的数据创建布隆过滤器,并使用该过滤器过滤另外一侧数据,从而避免不必要的数据传输。
布隆过滤器(bloom filter)是一个常见的数据结构,可以用来进行数据的过滤。其本质是一个位向量(bitmap)和一个哈希函数,创建布隆过滤器的过程如下:针对一个数据集合中的每一个元素(即数据),分别使用该哈希函数进行操作,将哈希值在位向量中所对应的位(index)设置为1(如果该位已经为1,则忽略)。这样当处理完整个数据集合中的每一个元素后,该位向量(即“布隆过滤器”)即创建完毕。创建完成的布隆过滤器可以用以验证给定一个元素是否存在于用于创建该布隆过滤器的数据集合中。当给定一个元素时,可以通过判断布隆过滤器中该元素哈希值所对应的位是否为1,判断该元素是否属于该数据集合。
需要提供一种布隆过滤性能更好的分布式数据连接方式。
发明内容
本说明书实施例提供及一种分布式数据连接方法、装置、设备及存储介质,可以实现更好的布隆过滤性能。
第一方面,本说明书实施例提供一种分布式数据连接处理方法,包括:
根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端;
接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的数据集合生成的;
利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤;
对过滤不成功的数据进行数据连接操作。
第二方面,本说明书实施例提供一种分布式数据连接处理装置,包括:
第一布隆过滤器模块,用于根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端;
第二布隆过滤器模块,用于接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的数据集合生成的;
布隆过滤执行模块,用于利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤;
数据连接操作模块,用于对过滤不成功的数据进行数据连接操作。
第三方面,本说明书实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述方法的步骤。
第四方面,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本说明书实施例有益效果如下:
接收对端发送的布隆过滤器,利用本端的布隆过滤器和对端的布隆过滤器进行过滤。即,本说明书实施例提供的技术方案,布隆过滤是双向的,即每一端都既创建过滤器又进行过滤,而不是仅依照一端的数据集合创建过滤器,另一端进行过滤。因此,本说明书实施例提供的技术方案其过滤性更强,过滤效果也更好,即布隆过滤性能更好。
图1为本说明书实施例提供的系统架构示意图;
图2为本说明书实施例提供的第一方面的方法流程图;
图3为本说明书实施例提供的双边布隆过滤器示意图;
图4为本说明书实时第一方面的另一个方法流程图;
图5为本说明书实施例第二方面的装置示意图。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例提供的技术方案应用于分布式数据库系统,需要将分布式数据库中不同物理节点的两个数据集合(包括表单或分区)连接成一个数据集合,即针对不同物理节点上的两个数据集合进行连接操作。为了完成最终的连接操作,需要通过网络将不同物理节点上的数据传输到同一个物理节点上,这一过程称为“数据再分布”。以图1所示的系统为例,假设需要将物理节点200上的数据表单201和物理节点300上的数据表单301进行连接操作,则物理节点200上的第一布隆过滤器创建/使用模块202根据数据表单201生成第一布隆过滤器并发送给物理节点300,接收物理节点300发送的第二布隆过滤器,利用第一布隆过滤器和第二布隆过滤器对数据表单201进行过滤,将过滤不成功的数据发送给第一连接执行模块203,第一连接执行模块203将该数据写入物理节点100的数据表单101;物理节点300上的第二布隆过滤器创建/使用模块302利用数据表单301生成第二布隆过滤器并发送给物理节点200,接收物理节点200发送的第一布隆过滤器,利用第一布隆过滤器和第二布隆过滤器进行过滤,将过滤不成功的数据发送给第二连接执行模块303,第二连接执行模块303将该数据写入物理节点100的数据表单101。
第一方面,本说明书实施例提供一种分布式数据连接处理方法,请参考图2,包括:
步骤2001、根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端。
本说明书实施例中,若需要对分布在两个物理节点上的数据集合进行连接操作,则将其中一个物理节点称为本端,另一个物理节点称为对端。
本说明书实施例中,数据集合可以是数据表单,也可以是数据分区。
步骤2003、接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的表单数据生成的。
步骤2005、利用第一布隆过滤器和第二布隆过滤器对本端的所述数据集合中的数据进行过滤。
假设过滤条件是两个数据集合中的第C1列的取值相同,那么,过滤具体是指计算数据的第C1列的哈希值,查找上述布隆过滤器中该哈希值对应位的取值,若取值为1,两侧数据集合中该行数据的第C1列的取值相同,即过滤不成功。
本说明书实施例中,既可以对数据集合中的数据逐行进行过滤,也可以对数据集合中的数据进行批量过滤。
步骤2007、对过滤不成功的数据进行数据连接操作。
即将该行数据或该行数据第C1列的取值(或哈希值)写入到上述数据表单101中。
本说明书实施例提供的方法,接收对端发送的布隆过滤器,利用本端的布隆过滤器和对端的布隆过滤器进行过滤。即,本说明书实施例提供的技术方案,布隆过滤是双向的,即每一端都既创建过滤器又进行过滤,而不是仅依照一端的数据集合创建过滤器,另一端进行过滤。因此,本说明书实施例提供的方法其过滤性更强,过滤效果也更好,即布隆过滤性能更好。
上述步骤2005的实现方式可以是分别利用第一布隆过滤器和第二布隆过滤器对本端的数据集合中的数据进行过滤。由于布隆过滤器的本质是位向量,利用布隆过滤器进行过滤就是判断数据对应列的哈希值在该位向量上对应位的取值,为了提高过滤效率,可以将第一过滤器和第二过滤器合并,得到双边布隆过滤器相应的,上述步骤2005的实现方式可以是利用合并后的双边布隆过滤器对数据集合中的数据过滤。
其中,合并过滤器具体是指,将两个过滤器中对应的取值进行或运算。
为了提高过滤效率,提高系统并发行,提高物理节点的吞吐率,加快连接处理速度,本说明书实施例提供的方法中,可以动态创建并发送布隆过滤器,以便对端可以及时根据接收到的布隆过滤器进行过滤。相应的,上述步骤2001中,具体是在读取本段的数据集合过程中,周期性地生成第一布隆过滤器并发送给对端。其中,生成并发送第一布隆过滤器的周期可以是时间周期,也可以是数据行数周期。假设按照布隆过滤器创建/ 使用模块逐行从下层的数据集合中读取数据,以时间周期为例,在每个时间周期,布隆过滤器创建/使用模块利用本时间周期内读取的数据创建第一布隆过滤器;或者,在每个时间周期,布隆过滤器创建/使用模块利用本时间周期内读取的数据创建第一布隆过滤器,并将新创建的布隆过滤器与之前创建的布隆过滤器进行合并;又或者,在每个时间周期,布隆过滤器创建/使用模块利用本时间周期内读取的数据以及之前读取的数据创建第一布隆过滤器。假设按照布隆过滤器创建/使用模块逐行从下层的数据集合中读取数据,以数据行数周期为例,每读取N行数据,利用本周期内读取的N行数据创建第一布隆过滤器;或者,每读取N行数据,利用本周期内读取的N行数据创建第一布隆过滤器,并将新创建的布隆过滤器与之前创建的布隆过滤器进行合并;又或者,每读取N行数据,利用本周期内读取的N行数据以及之前读取的数据创建第一布隆过滤器。
由于本说明书实施例提供的技术方案是双侧对称操作,那么,在对端也是按照上述实现方式周期性生成并发送第二布隆过滤器,相应的,上述步骤2003的具体实现方式可以是:周期性地接收对端发送的第二布隆过滤器。
其中,本端和对端创建并发送布隆过滤器的周期可以相同也可以不同,可以采用相同类型的周期也可以采用不同类型的周期。
进一步地,若对第二布隆过滤器和第一布隆过滤器进行合并,那么,可以是每接收到一个第二布隆过滤器,即将当前接收到的第二布隆过滤器与最近一次生成的第一布隆过滤器合并;也可以是每接收到一个第二布隆过滤器,即将当前接收到的第二布隆过滤器与当前进行过滤所使用的双边布隆过滤器进行合并;还可以是每生成一个第一布隆过滤器,即将当前生成的布隆过滤器与最新接收到的第二布隆过滤器进行合并。相应的,上述步骤2005的实现方式可以是:利用最新的双边布隆过滤器对本端的数据集合中的数据进行过滤。
进一步地,若不需要对第一布隆过滤器和第二布隆过滤器进行合并。上述步骤2005中,可以是每生成一个第一布隆过滤器或每接收到一个第二布隆过滤器,即利用最新生成或接收到的布隆过滤器对数据集合中的数据进行过滤。
对于周期性创建布隆过滤器并进行过滤的实现方式,由于布隆过滤器并不是利用数据集合中的全部数据创建的,因此可能存在过滤误差,为了避免过滤误差,可以将过滤成功的数据暂时保存在缓存当中,利用后续的布隆过滤器进行过滤。以双边布隆过滤器为例,假设在利用第M个双边布隆过滤器进行过滤而被缓存的数据,继续利用第M+1个双边过滤器进行过滤,直至过滤不成功或者最后一个布隆过滤器,或者仅利用最后一 个布隆过滤器对缓存中的数据进行过滤。
本说明书实施例提供的方法,多本端的数据集合中的数据全部读取完,数据集合会向布隆过滤器创建/使用模块发送扫描结束(EOF)信息,本端在收到该信息,且未接收到对端发送的扫描结束指令,向对端发送第一扫描结束指令,以向对端告知本端的数据扫描结束;本端在接收到对端发送的第二扫描结束指令后,利用最后一次生成的第一布隆过滤器对本端的数据集合中的数据进行过滤。
下面将结合具体应用场景,对本说明书实施例提供的“双边布隆过滤”的实现方案进行详细说明。如图3所示,传统布隆过滤器中的BLC和BLU两个操作被替换为一个操作Bloom Filter Create/USE(简称BLCU,布隆过滤器创建/使用),该模块的逻辑为:针对输入的数据集合中的数据周期性地创建第一布隆过滤器A,并通过网络RPC发送给与之配对的BLCU操作符;周期性的将接收到的第二布隆过滤器在本地进行合并,生成新的布隆过滤器B,使用周期性生成的布隆过滤器B对输入的每一行数据进行过滤,如果过滤成功(该行在布隆过滤器中不存在),则将该行数据在本地进行缓存,否则(该行存在),则将该行数据按照之前所述的数据再分布方式发送给上层的连接操作模块进行处理;当本地扫描结束后,向对端发送EOF(扫描结束)指令,当收到对端发送的EOF指令时,重新生成新的布隆过滤器,按照上述描述的过程进行处理,所不同的是,如果过滤成功,则直接丢弃改行(无需缓存)。
假设需要对图1中物理节点200中的数据表单201和物理节点300中的数据表单301进行连接操作,其处理过程如图4所示。
其中,标志位R_EOF用于指示是否接收到对端发送的EOF指令和/或是否接收到EOF信息,本实施例中,标志位R_EOF的取值为布尔逻辑值,且true表示接收到,在实际应用中也可以采用其他的取值方式,或者定义每个取值的具体含义。
其中,所谓将数据插入到布隆过滤器A,即利用该行数据更新布隆过滤器。
应当指出的是,本说明书实施例中,可以根据读取的数据行实时更新本地生成的布隆过滤器,相应的,上述周期性地创建布隆过滤器实际上是实时更新布隆过滤器。
其中,若判断达到发送阈值,则发送本地布隆过滤器A到对端;若未达到,则使用布隆过滤器B进行过滤。
其中,若未接收到下层算子(即数据表单)发送的EOF信息,进而判断接收到对端的EOF信号,则设置标识位为true且继续判断是否接收到新的布隆过滤器。
本说明书实施例提供的方法具有如下有益效果:
1.引入BLCU操作后,连接左右两边的分支可以同时执行(避免先执行左边再执行优化),增加了调度的灵活性和整个系统的并发性,例如当L/R表分别位于不同节点上时,同时执行左右两边可以保证充分利用多节点的本地IO,使整个吞吐量达到最高
2.同时执行所有分支还可以保证尽快返回给用户数据行,在传统的执行方式中,由于要先扫描左侧再过滤右侧,导致第一行返回的时间一定在扫描左表之后,而本方案中的双边布隆过滤,可以尽早的将左右两边可能join的行返回给上层join,一遍尽早的返回给用户,在交互性查询的场景中,尽快返回一些数据对用户有极大的应用价值
3.传统的方案容易受优化器的误判的影响,当优化器将左表的大表误判为小表而生成布隆过滤器时,可能出现用大表数据去过滤小表数据,执行效率低下,对称型过滤器由于同时执行左右两边,可以确保过滤操作同时进行,当小表首先完成扫描后,又可以退化为传统的单边过滤的方式,整个计划的健壮性得以保证
4.双边布隆过滤方案可以保证过滤的双向性,join两边可以互相使用对方的布隆过滤器来过滤自己的数据,比传统的单边场景的过滤性更强,效果更为明显。
第二方面,基于同一发明构思,本说明书实施例提供一种分布式数据连接装置,请参考图5,包括:
第一布隆过滤器模块5001,用于根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端;
第二布隆过滤器模块5002,用于接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的数据集合生成的;
布隆过滤器合并模块5003,用于利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤;
布隆过滤执行模块5004,用于利用合并后的布隆过滤器对本端的所述表单数据进行布隆过滤;
数据连接操作模块5005,用于对过滤不成功的数据进行数据连接操作。
可选的,还包括布隆过滤器合并模块,用于将所述第一布隆过滤器和所述第二布隆过滤器合并,合并之后的布隆过滤器为双边布隆过滤器;所述布隆过滤执行模块用于:利用所述双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
可选的,所述第一布隆过滤器模块用于:读取本端的所述数据集合过程中,周期性地生成第一布隆过滤器并发送给所述对端;所述第二布隆过滤器模块用于:周期性地接收所述对端发送的第二布隆过滤器;所述布隆过滤器合并模块用于:每接收到一个第二布隆过滤器,合并当前接收到的第二布隆过滤器与最近一次生成的第一布隆过滤器或合并当前接收到的第二布隆过滤器与当前进行布隆过滤所使用的布隆过滤器;所述布隆过滤器执行模块用于:利用最新的双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
可选的,还包括缓存模块,用于:缓存过滤成功的数据;所述布隆过滤执行模块还用于:利用后续合并的双边布隆过滤器对缓存的数据再次进行过滤。
可选的,还包括扫描结束指令发送模块,用于在读取完本端的数据集合中的全部数据,且未接收到所述对端发送的第二扫描结束指令,向所述对端发送第一扫描结束指令;所述布隆过滤执行模块还用于:在接收到所述对端发送的第二扫描结束指令后,利用最近一次生成的第一布隆过滤器对本端的所述数据集合的数据进行过滤。
第三方面,本说明书实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述的方法的步骤。
第四方面,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
Claims (13)
- 一种分布式数据连接处理方法,其特征在于,包括:根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端;接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的数据集合生成的;利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤;对过滤不成功的数据进行数据连接操作。
- 根据权利要求1所述的方法,其特征在于,所述利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤之前,该方法还包括:将所述第一布隆过滤器和所述第二布隆过滤器合并,合并之后的布隆过滤器为双边布隆过滤器;所述利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤,包括:利用所述双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
- 根据权利要求2所述的方法,其特征在于,所述根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端,包括:读取本端的所述数据集合过程中,周期性地生成第一布隆过滤器并发送给所述对端;所述接收所述对端发送的第二布隆过滤器,包括:周期性地接收所述对端发送的第二布隆过滤器;所述合并所述第一布隆过滤器和所述第二布隆过滤器,包括:每接收到一个第二布隆过滤器,合并当前接收到的第二布隆过滤器与最近一次生成的第一布隆过滤器或合并当前接收到的第二布隆过滤器与当前进行布隆过滤所使用的双边布隆过滤器;所述利用合并后的布隆过滤器对本端的所述数据集合的数据进行过滤,包括:利用最新的双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
- 根据权利要求3所述的方法,其特征在于,该方法还包括:缓存过滤成功的数据;利用后续合并的双边布隆过滤器对缓存的数据再次进行过滤。
- 根据权利要求4所述的方法,其特征在于,所述利用后续合并的双边布隆过滤器对缓存的表单数据再次进行布隆过滤,包括:利用最后一次合并的双边布隆过滤器对本端的所述数据集合中的数据进行布隆过 滤。
- 根据权利要求3~5任一项所述的方法,其特征在于,该方法还包括:在读取完本端的数据集合中的全部数据,且未接收到所述对端发送的第二扫描结束指令,向所述对端发送第一扫描结束指令;在接收到所述对端发送的第二扫描结束指令后,利用最近一次生成的第一布隆过滤器对本端的所述数据集合的数据进行过滤。
- 一种分布式数据连接处理装置,其特征在于,包括:第一布隆过滤器模块,用于根据本端的数据集合生成第一布隆过滤器,并将所述第一布隆过滤器发送给对端;第二布隆过滤器模块,用于接收所述对端发送的第二布隆过滤器,所述第二布隆过滤器是由所述对端根据所述对端的数据集合生成的;布隆过滤执行模块,用于利用所述第一布隆过滤器和所述第二布隆过滤器对本端的所述数据集合中的数据进行过滤;数据连接操作模块,用于对过滤不成功的数据进行数据连接操作。
- 根据权利要求7所述的装置,其特征在于,还包括布隆过滤器合并模块,用于将所述第一布隆过滤器和所述第二布隆过滤器合并,合并之后的布隆过滤器为双边布隆过滤器;所述布隆过滤执行模块用于:利用所述双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
- 根据权利要求8所述的装置,其特征在于,所述第一布隆过滤器模块用于:读取本端的所述数据集合过程中,周期性地生成第一布隆过滤器并发送给所述对端;所述第二布隆过滤器模块用于:周期性地接收所述对端发送的第二布隆过滤器;所述布隆过滤器合并模块用于:每接收到一个第二布隆过滤器,合并当前接收到的第二布隆过滤器与最近一次生成的第一布隆过滤器或合并当前接收到的第二布隆过滤器与当前进行布隆过滤所使用的布隆过滤器;所述布隆过滤器执行模块用于:利用最新的双边布隆过滤器对本端的所述数据集合中的数据进行过滤。
- 根据权利要求9所述的装置,其特征在于,还包括缓存模块,用于:缓存过滤成功的数据;所述布隆过滤执行模块还用于:利用后续合并的双边布隆过滤器对缓存的数据再次进行过滤。
- 根据权利要求8~10任一项所述的装置,其特征在于,还包括扫描结束指令发送模块,用于在读取完本端的数据集合中的全部数据,且未接收到所述对端发送的第二扫描结束指令,向所述对端发送第一扫描结束指令;所述布隆过滤执行模块还用于:在接收到所述对端发送的第二扫描结束指令后,利用最近一次生成的第一布隆过滤器对本端的所述数据集合的数据进行过滤。
- 一种计算机设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述权利要求1~6中任一项所述的方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/085,521 US11188535B2 (en) | 2018-08-31 | 2020-10-30 | Distributed join operation processing method, apparatus, device, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015813.2 | 2018-08-31 | ||
CN201811015813.2A CN109271408B (zh) | 2018-08-31 | 2018-08-31 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/085,521 Continuation US11188535B2 (en) | 2018-08-31 | 2020-10-30 | Distributed join operation processing method, apparatus, device, and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020042813A1 true WO2020042813A1 (zh) | 2020-03-05 |
Family
ID=65187034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/096478 WO2020042813A1 (zh) | 2018-08-31 | 2019-07-18 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11188535B2 (zh) |
CN (1) | CN109271408B (zh) |
TW (1) | TWI716016B (zh) |
WO (1) | WO2020042813A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271408B (zh) | 2018-08-31 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
CN110209874B (zh) * | 2019-04-24 | 2021-08-20 | 北京奇艺世纪科技有限公司 | 信息处理方法、装置、电子设备及存储介质 |
US11386089B2 (en) * | 2020-01-13 | 2022-07-12 | The Toronto-Dominion Bank | Scan optimization of column oriented storage |
EP3852305B1 (en) * | 2020-01-17 | 2022-11-16 | Fetch.ai Limited | Transaction verification system and method of operation thereof |
US11550949B2 (en) * | 2020-07-21 | 2023-01-10 | Constella Intelligence, Inc. | Secure exchange of password presence data |
CN113360507B (zh) * | 2021-08-10 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 用于数据库表连接的过滤器传输方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库系统的数据分区方法 |
CN106372190A (zh) * | 2016-08-31 | 2017-02-01 | 华北电力大学(保定) | 实时olap查询方法和装置 |
US20170031967A1 (en) * | 2015-07-29 | 2017-02-02 | Oracle International Corporation | Tracking and maintaining expression statistics across database queries |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN108205571A (zh) * | 2016-12-20 | 2018-06-26 | 航天信息股份有限公司 | 键值数据表的连接方法及装置 |
CN109271408A (zh) * | 2018-08-31 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145806B2 (en) * | 2008-09-19 | 2012-03-27 | Oracle International Corporation | Storage-side storage request management |
US9401967B2 (en) * | 2010-06-09 | 2016-07-26 | Brocade Communications Systems, Inc. | Inline wire speed deduplication system |
US9226231B2 (en) * | 2013-01-30 | 2015-12-29 | Qualcomm Incorporated | Systems and methods for monitoring the size of a wireless network |
CN104572727B (zh) * | 2013-10-22 | 2018-09-28 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
US11265385B2 (en) * | 2014-06-11 | 2022-03-01 | Apple Inc. | Dynamic bloom filter operation for service discovery |
CN105718455B (zh) * | 2014-12-01 | 2019-06-14 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
US10248694B2 (en) * | 2015-08-31 | 2019-04-02 | International Business Machines Corporation | Bloom filter utilization for join processing |
CN105554122A (zh) * | 2015-12-18 | 2016-05-04 | 畅捷通信息技术股份有限公司 | 信息更新方法、信息更新装置、终端和服务器 |
US9372892B1 (en) * | 2015-12-28 | 2016-06-21 | International Business Machines Corporation | Bloom filter construction method for use in a table join operation portion of processing a query to a distributed database |
CN106407485B (zh) * | 2016-12-20 | 2017-12-26 | 福建六壬网安股份有限公司 | 一种基于相似度比较的url去重方法和系统 |
US10642994B1 (en) * | 2017-05-24 | 2020-05-05 | Amazon Technologies, Inc. | Probabilistic data structures for concordance management |
US10719512B2 (en) * | 2017-10-23 | 2020-07-21 | International Business Machines Corporation | Partitioned bloom filter merge for massively parallel processing clustered data management |
CN108156154A (zh) * | 2017-12-25 | 2018-06-12 | 北京工业大学 | 命名数据网络中基于加密和布隆过滤器的访问控制方法 |
US10642840B1 (en) * | 2018-03-07 | 2020-05-05 | Amazon Technologies, Inc. | Filtered hash table generation for performing hash joins |
-
2018
- 2018-08-31 CN CN201811015813.2A patent/CN109271408B/zh active Active
-
2019
- 2019-06-27 TW TW108122542A patent/TWI716016B/zh active
- 2019-07-18 WO PCT/CN2019/096478 patent/WO2020042813A1/zh active Application Filing
-
2020
- 2020-10-30 US US17/085,521 patent/US11188535B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库系统的数据分区方法 |
US20170031967A1 (en) * | 2015-07-29 | 2017-02-02 | Oracle International Corporation | Tracking and maintaining expression statistics across database queries |
CN106445944A (zh) * | 2015-08-06 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种数据查询请求的处理方法、装置及电子设备 |
CN106372190A (zh) * | 2016-08-31 | 2017-02-01 | 华北电力大学(保定) | 实时olap查询方法和装置 |
CN108205571A (zh) * | 2016-12-20 | 2018-06-26 | 航天信息股份有限公司 | 键值数据表的连接方法及装置 |
CN109271408A (zh) * | 2018-08-31 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI716016B (zh) | 2021-01-11 |
US11188535B2 (en) | 2021-11-30 |
TW202011223A (zh) | 2020-03-16 |
CN109271408B (zh) | 2020-07-28 |
CN109271408A (zh) | 2019-01-25 |
US20210049173A1 (en) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020042813A1 (zh) | 一种分布式数据连接处理方法、装置、设备及存储介质 | |
WO2021052169A1 (zh) | 分布式数据的均衡处理方法、装置、计算终端和存储介质 | |
US10769147B2 (en) | Batch data query method and apparatus | |
US7958088B2 (en) | Dynamic data reorganization to accommodate growth across replicated databases | |
US11604654B2 (en) | Effective and scalable building and probing of hash tables using multiple GPUs | |
WO2021027531A1 (zh) | 一种区块链交易记录的处理方法及装置 | |
US11301470B2 (en) | Control method for performing multi-table join operation and corresponding apparatus | |
CN110737664A (zh) | 一种区块链节点同步的方法及装置 | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
Wang et al. | Research on parallelization of Apriori algorithm in association rule mining | |
CN105956666B (zh) | 一种机器学习方法及系统 | |
TWI733390B (zh) | 在區塊鏈中同時執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
CN111177486A (zh) | 一种分布式图计算过程中的消息传递方法和装置 | |
WO2021036260A1 (zh) | 在区块链中并发执行交易的方法和装置 | |
WO2018052519A1 (en) | N-way hash join | |
CN109491934A (zh) | 一种集成计算功能的存储管理系统控制方法 | |
CN107798025B (zh) | 存储过程的运行、编译方法、装置和数据库系统 | |
CN112000649A (zh) | 一种基于map reduce的增量数据同步的方法和装置 | |
CN111861744A (zh) | 一种实现区块链交易并行化的方法及区块链节点 | |
US20150039558A1 (en) | Database management method, database system and medium | |
US20210026854A1 (en) | Transaction processing method and system, and server | |
TWI732501B (zh) | 在區塊鏈中並行執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN106933497A (zh) | 一种基于sas的管理调度装置、系统及方法 | |
CN103559263A (zh) | 对多个图片集合进行合并的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19855023 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19855023 Country of ref document: EP Kind code of ref document: A1 |