分布式数据库动态过滤方法、装置、计算机设备及介质制造方法及图纸

技术编号:38162456 阅读:32 留言:0更新日期:2023-07-13 09:36
本发明专利技术实施例提供了一种分布式数据库动态过滤方法、装置、计算机设备及介质,涉及数据查询技术领域,该方法包括以下步骤:遍历查询计划树,找到HashJoin;在右表中识别需要生成过滤器的节点,并生成过滤器标识,过滤器标识记录在左表中;将带有过滤器标识的查询计划树分发至分布式数据库的各服务器上;在执行HashJoin的过程中根据左表记录的过滤器标识生成过滤器;将生成的过滤器沿着HashJoin的右表的节点逐级下推;建立过滤器发送端与过滤器接收端的通信链路,完成过滤器发送和接收;使用过滤器进行过滤。由于该方案通过根据HashJoin的右表生成一个过滤条件,并作用于右表的过滤,提高了数据查询效率。提高了数据查询效率。提高了数据查询效率。

【技术实现步骤摘要】
分布式数据库动态过滤方法、装置、计算机设备及介质


[0001]本专利技术涉及数据查询
,特别涉及一种分布式数据库动态过滤方法、装置、计算机设备及介质。

技术介绍

[0002]PostgreSQL(对象关系型数据库管理系统)因为强大的功能、优异的性能和可靠性,成为了使用广泛的开源数据库,有非常好的生态。很多面向特定领域的数据库,以及分布式数据库都是基于它来实现的。比如 Greenplum这一开源数据库,是Gartner统计中,并列世界第三的数据仓库。虽然有很多新的分析型数据库,但它们的架构和PosgreSQL相差很多,以至于在很多功能的实现方法上有很大区别。
[0003]作为一项重要的加速技术,基于HashJoin的动态过滤有着较多的实现,但在PostgreSQL和Greenplum上尚未有公开实现。这主要是因为其进程模型,使得跨进程的通信更为复杂和容易出错,难度更大。以 Greenplum为例,它实现了单边的通信模式,即数据总是从查询计划的下游向上游进程发送数据,而上游仅在必要时发送极少量的控制消息。限于简陋的网络实现和测试的缺少本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库动态过滤方法,其特征在于,包括:遍历分布式数据库的查询计划树,找到HashJoin;在HashJoin的右表中识别需要生成过滤器的节点,并对所述节点生成过滤器标识,将所述过滤器标识记录在所述HashJoin的左表中;将带有过滤器标识的查询计划树分发至分布式数据库的各服务器上;在各服务器上执行HashJoin,并在执行HashJoin的过程中根据所述左表中记录的所述过滤器标识生成过滤器;将生成的过滤器沿着HashJoin的右表的节点逐级下推;建立过滤器发送端与过滤器接收端的通信链路,完成过滤器的发送和接收;使用过滤器对分布式数据库进行过滤。2.如权利要求1所述分布式数据库动态过滤方法,其特征在于,所述在HashJoin的右表中识别需要生成过滤器的节点,并对所述节点生成过滤器标识,包括:在HashJoin的右表中,递归的遍历各个节点,查找需要使用过滤器的第一节点并生成过滤器标识,所述第一节点为scan节点或append节点;查找是否存在需要增加过滤器的第二节点,若存在所述第二节点则对所述第二节点生成过滤器标识,所述第二节点为所述左表的上游节点中包含的聚集节点、跨网络的通信节点或者右表中具有过滤效果的节点,所述具有过滤效果的节点为右表的输出行数和join的结果行数的比值超过第一阈值的节点。3.如权利要求2所述分布式数据库动态过滤方法,其特征在于,所述在执行HashJoin的过程中根据所述左表中记录的所述过滤器标识生成过滤器,包括:根据所述过滤器标识,对每一条所述左表上的记录按照hash值生成过滤器或更新过滤器;若所述第二节点为所述左表的上游节点中包含的聚集节点,则根据所述过滤器标识,生成所述第二节点的过滤器;更新该第二节点的过滤器,同时统计该第二节点的记录行数,如果所述记录行数超过第二阈值,则将该第二节点的过滤器设置为空。4.如权利要求2所述分布式数据库动态过滤方法,其特征在于,所述将生成的过滤器沿着HashJoin的右表的节点逐级下推,包括:针对生成过滤器的第一节点,将过滤器信息存入该第一节点;当生成过滤器的第二节点为跨网络的通信节点时,将过滤器发送至与该通信节点相关联的节点;当生成过滤器的第二节点为除跨网络的通信节点...

【专利技术属性】
技术研发人员:王勇杜佳伦杨谕黔姚延栋高小明翁岩青于宁唐鹏洲王昊白洁
申请(专利权)人:北京四维纵横数据技术有限公司
类型:发明
国别省市:

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

1