【技术实现步骤摘要】
分布式数据库动态过滤方法、装置、计算机设备及介质
[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的右表的节点逐级下推,包括:针对生成过滤器的第一节点,将过滤器信息存入该第一节点;当生成过滤器的第二节点为跨网络的通信节点时,将过滤器发送至与该通信节点相关联的节点;当生成过滤器的第二节点为除跨网络的通信节点...
【专利技术属性】
技术研发人员:王勇,杜佳伦,杨谕黔,姚延栋,高小明,翁岩青,于宁,唐鹏洲,王昊,白洁,
申请(专利权)人:北京四维纵横数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。