用于数据库表连接的过滤器传输方法、装置及系统制造方法及图纸

技术编号:29984739 阅读:25 留言:0更新日期:2021-09-08 10:24
本说明书的实施例提供用于分布式数据库的表连接的过滤器传输方法,表连接所涉及的被驱动表存储在至少两个被驱动表存储节点处。各个表连接节点将各自的局部Bloom过滤器分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点,各个被驱动表存储节点分组通过对至少两个被驱动表存储节点进行节点分组得到。各个被驱动表存储节点对所获取的局部Bloom过滤器进行第一过滤器合并,得到第一合并局部Bloom过滤器。在同一被驱动表存储节点分组中的各个被驱动表存储节点之间共享各自的第一合并局部Bloom过滤器。各个被驱动表存储节点对所获取的第一合并局部Bloom过滤器以及本地具有的第一合并局部Bloom过滤器进行第二过滤器合并,得到完整Bloom过滤器。得到完整Bloom过滤器。得到完整Bloom过滤器。

【技术实现步骤摘要】
用于数据库表连接的过滤器传输方法、装置及系统


[0001]本说明书实施例通常涉及数据库领域,尤其涉及用于分布式数据库的表连接的过滤器传输方法、过滤器传输装置以及分布式数据库系统。

技术介绍

[0002]在数据库中进行表连接时,优化器会根据代价选择表连接过程中是否使用布隆过滤器(Bloom Filter)。在表连接过程具有较高的过滤性时,使用Bloom过滤器可以有效提升表连接性能。在分布式数据库中,需要按照分布式执行的方式执行表连接。在分布式执行中,Bloom过滤器需要广播给表连接节点右侧所有参与表连接的被驱动表存储节点,这些被驱动表存储节点部署在不同的设备处。在数据规模较大且数据库集群规模也较大时,将Bloom过滤器广播给表连接节点右侧所有参与表连接的被驱动表存储节点会占用大量网络带宽,从而造成Bloom过滤器的发送时间较长,最终导致表连接节点右侧参与表连接的被驱动表存储节点迟迟收不到Bloom过滤器,进而影响表连接执行性能。

技术实现思路

[0003]鉴于上述,本说明书实施例提供用于分布式数据库的表连接的过滤器传输方法、过滤器传输装置及分布式数据库系统。利用该过滤器传输方法及装置,通过基于分组传输来将表连接节点的Bloom Filter传输到各个被驱动表存储节点,可以有效地减少Bloom Filter的网络传输数据量,降低Bloom Filter的传输耗时,从而提升表连接的执行性能。
[0004]根据本说明书实施例的一个方面,提供一种用于分布式数据库的表连接的过滤器传输方法,所述表连接的被驱动表存储在至少两个被驱动表存储节点处,所述Bloom过滤器传输方法由一个被驱动表存储节点执行,所述过滤器传输方法包括:基于分组传输获取至少两个表连接节点中的部分表连接节点的局部Bloom过滤器,各个表连接节点的局部Bloom过滤器分别基于驱动表的部分行数据创建,所述分组传输包括第一分组传输,在第一分组传输时,各个被驱动表存储节点被分组为至少两个被驱动表存储节点分组,并且各个表连接节点的局部Bloom过滤器被分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点;对基于所述分组传输获取的局部Bloom过滤器进行第一过滤器合并,得到第一合并局部Bloom过滤器;与同一被驱动表存储节点分组中的其余被驱动表存储节点,彼此共享各自的第一合并局部Bloom过滤器,所述其余被驱动表存储节点处的第一合并局部Bloom过滤器通过对基于分组传输获取的局部Bloom过滤器进行第一过滤器合并得到;以及对从所述其余被驱动表存储节点获取的第一合并局部Bloom过滤器以及本地具有的第一合并局部Bloom过滤器进行第二过滤器合并,生成完整Bloom过滤器。
[0005]可选地,在上述方面的一个示例中,在第一分组传输时,所述各个表连接节点对各自的局部Bloom过滤器经过过滤器分割后得到Bloom过滤器分块,并且将所述Bloom过滤器分块中的每个Bloom过滤器分块分别传输到各个对应的被驱动表存储节点分组中的一个被驱动表存储节点。基于分组传输获取至少两个表连接节点中的部分表连接节点的局部
Bloom过滤器可以包括:基于第一分组传输获取至少两个表连接节点中的部分表连接节点的Bloom过滤器分块;以及对从同一表连接节点获取的Bloom过滤器分块进行分块级联合并,得到从该表连接节点获取的局部Bloom过滤器。
[0006]可选地,在上述方面的一个示例中,所述分组传输还包括多层级第二分组传输,所述第一分组传输和所述多层级第二分组传输组成多层级级联传输。在每一层级第二分组传输时,所述过滤器传输方法可以包括:对上一层级分组传输所获取的局部Bloom过滤器进行过滤器合并,得到当前层级的局部Bloom过滤器;以及将当前层级的局部Bloom过滤器分别传输到与所述被驱动表存储节点在上一层级分组传输时所属的第一被驱动表存储节点分组对应的各个第二被驱动表存储节点分组中的一个被驱动表存储节点,所述第二被驱动表存储节点分组通过对上一层级分组传输所得到的各个第一被驱动表存储节点分组进一步分组得到,其中,所述同一被驱动表存储节点分组包括最后层级第二分组传输时的同一被驱动表存储节点分组。
[0007]可选地,在上述方面的一个示例中,在每一层级第二分组传输时,在将当前层级的局部Bloom过滤器分别传输到与所述被驱动表存储节点在上一层级分组传输时所属的第一被驱动表存储节点分组对应的各个第二被驱动表存储节点分组中的一个被驱动表存储节点之前,所述过滤器传输方法还可以包括:对当前层级的局部Bloom过滤器进行过滤器分割得到Bloom过滤器分块。此外,在每一层级第二分组传输时,在对上一层级分组传输所获取的局部Bloom过滤器进行过滤器合并之前,所述过滤器传输方法还可以包括:对从同一被驱动表存储节点获取的Bloom过滤器分块进行分块级联合并,得到从该被驱动表存储节点获取的局部Bloom过滤器。
[0008]可选地,在上述方面的一个示例中,所述过滤器分割包括下述过滤器分割中的一种:基于指定大小的过滤器分割,基于指定个数的过滤器分割,或者自适应过滤器分割。
[0009]可选地,在上述方面的一个示例中,所述多层级第二分组传输中的层级数目可以根据下述参数中的一个参数决定:所述多个被驱动表存储节点的节点递归分组的分组层次;指定第二分组传输层次;或者表连接代价。
[0010]可选地,在上述方面的一个示例中,所述被驱动表存储节点的节点分组可以基于下述过程实现:基于给定函数确定出节点分组的分组数目,其中,N为被驱动表存储节点的节点总数;以及为每个节点分组分配被驱动表存储节点。
[0011]可选地,在上述方面的一个示例中,为每个节点分组分配被驱动表存储节点可以包括:基于负载均衡策略来为每个节点分组分配被驱动表存储节点。
[0012]根据本说明书的实施例的另一方面,提供一种用于分布式数据库的表连接的过滤器传输方法,所述表连接的被驱动表存储在至少两个被驱动表存储节点处,所述过滤器传输方法包括:经由各个表连接节点,将各自的局部Bloom过滤器分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点,各个表连接节点的局部Bloom过滤器由各个表连接节点分别基于驱动表的部分行数据创建,各个被驱动表存储节点分组通过对所述至少两个被驱动表存储节点进行节点分组得到;经由各个被驱动表存储节点,对所获取的局部Bloom过滤器进行第一过滤器合并,得到第一合并局部Bloom过滤器;在同一被驱动表存储节点分组中的各个被驱动表存储节点之间,彼此共享各自的第一合并局部Bloom过滤器;以及在各个被驱动表存储节点处,对从所述其余被驱动表存储节点获取的第一合并局部
Bloom过滤器以及本地具有的第一合并局部Bloom过滤器进行第二过滤器合并,得到完整Bloom过滤器。
[0013]可选地,在上述方面的一个示例中,经由各个表连接节点,将各自的局部Bloom过滤器分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点可以包括:经由各个表连接节点,对各自的局部Bloom过滤器进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于分布式数据库的表连接的过滤器传输方法,所述表连接的被驱动表存储在至少两个被驱动表存储节点处,所述Bloom过滤器传输方法由一个被驱动表存储节点执行,所述过滤器传输方法包括:基于分组传输获取至少两个表连接节点中的部分表连接节点的局部Bloom过滤器,各个表连接节点的局部Bloom过滤器分别基于驱动表的部分行数据创建,所述分组传输包括第一分组传输,在第一分组传输时,各个被驱动表存储节点被分组为至少两个被驱动表存储节点分组,并且各个表连接节点的局部Bloom过滤器被分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点;对基于所述分组传输获取的局部Bloom过滤器进行第一过滤器合并,得到第一合并局部Bloom过滤器;与同一被驱动表存储节点分组中的其余被驱动表存储节点,彼此共享各自的第一合并局部Bloom过滤器,所述其余被驱动表存储节点处的第一合并局部Bloom过滤器通过对基于分组传输获取的局部Bloom过滤器进行第一过滤器合并得到;以及对从所述其余被驱动表存储节点获取的第一合并局部Bloom过滤器以及本地具有的第一合并局部Bloom过滤器进行第二过滤器合并,生成完整Bloom过滤器。2.如权利要求1所述的过滤器传输方法,其中,在第一分组传输时,各个表连接节点对各自的局部Bloom过滤器经过过滤器分割后得到Bloom过滤器分块,并且将所述Bloom过滤器分块中的每个Bloom过滤器分块分别传输到各个对应的被驱动表存储节点分组中的一个被驱动表存储节点,基于分组传输获取至少两个表连接节点中的部分表连接节点的局部Bloom过滤器包括:基于第一分组传输获取至少两个表连接节点中的部分表连接节点的Bloom过滤器分块;以及对从同一表连接节点获取的Bloom过滤器分块进行分块级联合并,得到从该表连接节点获取的局部Bloom过滤器。3.如权利要求1所述的过滤器传输方法,其中,所述分组传输还包括多层级第二分组传输,所述第一分组传输和所述多层级第二分组传输组成多层级级联传输,在每一层级第二分组传输时,所述过滤器传输方法包括:对上一层级分组传输所获取的局部Bloom过滤器进行过滤器合并,得到当前层级的局部Bloom过滤器;以及将当前层级的局部Bloom过滤器分别传输到与所述被驱动表存储节点在上一层级分组传输时所属的第一被驱动表存储节点分组对应的各个第二被驱动表存储节点分组中的一个被驱动表存储节点,所述第二被驱动表存储节点分组通过对上一层级分组传输所得到的各个第一被驱动表存储节点分组进一步分组得到,其中,所述同一被驱动表存储节点分组包括最后层级第二分组传输时的同一被驱动表存储节点分组。4.如权利要求3所述的过滤器传输方法,其中,在每一层级第二分组传输时,在将当前层级的局部Bloom过滤器分别传输到与所述被驱动表存储节点在上一层级分组传输时所属的第一被驱动表存储节点分组对应的各个第二被驱动表存储节点分组中的一个被驱动表
存储节点之前,所述过滤器传输方法还包括:对当前层级的局部Bloom过滤器进行过滤器分割得到Bloom过滤器分块,在每一层级第二分组传输时,在对上一层级分组传输所获取的局部Bloom过滤器进行过滤器合并之前,所述过滤器传输方法还包括:对从同一被驱动表存储节点获取的Bloom过滤器分块进行分块级联合并,得到从该被驱动表存储节点获取的局部Bloom过滤器。5.如权利要求2或4所述的过滤器传输方法,其中,所述过滤器分割包括下述过滤器分割中的一种:基于指定大小的过滤器分割;基于指定个数的过滤器分割;或者自适应过滤器分割。6.如权利要求3所述的过滤器传输方法,其中,所述多层级第二分组传输中的层级数目根据下述参数中的一个参数决定:所述多个被驱动表存储节点的节点递归分组的分组层次;指定第二分组传输层次;或者表连接代价。7.如权利要求1或3所述的过滤器传输方法,其中,所述被驱动表存储节点的节点分组基于下述过程实现:基于给定函数确定出节点分组的分组数目,其中,N为被驱动表存储节点的节点总数;以及为每个节点分组分配被驱动表存储节点。8.如权利要求7所述的过滤器传输方法,其中,为每个节点分组分配被驱动表存储节点包括:基于负载均衡策略来为每个节点分组分配被驱动表存储节点。9.一种用于分布式数据库的表连接的过滤器传输方法,所述表连接的被驱动表存储在至少两个被驱动表存储节点处,所述过滤器传输方法包括:经由各个表连接节点,将各自的局部Bloom过滤器分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点,所述表连接节点的局部Bloom过滤器由各个表连接节点分别基于驱动表的部分行数据创建,所述各个被驱动表存储节点分组通过对所述至少两个被驱动表存储节点进行节点分组得到;经由各个被驱动表存储节点,对所获取的局部Bloom过滤器进行第一过滤器合并,得到第一合并局部Bloom过滤器;在同一被驱动表存储节点分组中的各个被驱动表存储节点之间,彼此共享各自的第一合并局部Bloom过滤器;以及在各个被驱动表存储节点处,对从所述其余被驱动表存储节点获取的第一合并局部Bloom过滤器以及本地具有的第一合并局部Bloom过滤器进行第二过滤器合并,得到完整Bloom过滤器。10.如权利要求9所述的过滤器传输方法,其中,经由各个表连接节点,将各自的局部Bloom过滤器分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点包括:
经由各个表连接节点,对各自的局部Bloom过滤器进行过滤器分割后得到Bloom过滤器分块;以及经由各个表连接节点,将各自的Bloom过滤器分块中的每个Bloom过滤器分块分别传输到各个被驱动表存储节点分组中的一个被驱动表存储节点,在经由各个被驱动表存储节点,对所获取的局部Bloom过滤器进行第一过滤器合并之前,所述过滤器传输方法还包括:经由各个被驱动表存储节点,对从同一表连接节点获取的Bloom过滤器分块进行分块级联合并,得到从该表连接节点获取的局部Bloom过滤器。11.如权利要求9所述的过滤器传输方法,其中,在经由各个被驱动表存储节点对所获取的局部Bloom过滤器进行第一过滤器合并之前,所述过滤器传输方法还包括:经由各个被驱动表存储节点,对从表连接节点获取的局部Bloom过滤器进行第三过滤器合并;以及经由各个被驱动表存储节点,基于多层级分组传输来将各自经过第三过滤器合并得到的局部Bloom过滤器传输到对应的被驱动表存储节点,在每一层级分组传输时,所述过滤器传输方法包括:对上一层级分组传输所获取的局部Bloom过滤器进行过滤器合并,得到当前层级的局部Bloom过滤器;以及将当前层级的局部Bloom过滤器分别传输到与所述被驱动表存储节点在上一层级分组传输时所属的第一被驱动表存储节点分组对应的各个第二被驱动表存储节点分组中的一个被驱动表存储节点,所述第二被驱动表存储节点分组通过对上一层级分组传输所得到的各个第一被驱动表存储节点分组进一步分组得到,其中,所述同一被驱动表存储节点分组包括最后层级分组传输时的同一被驱动表存储节点分组。12.如权...

【专利技术属性】
技术研发人员:唐铭豆刘彬余璜潘毅
申请(专利权)人:蚂蚁金服杭州网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1