一种SQL语句处理方法及装置制造方法及图纸

技术编号:30045454 阅读:24 留言:0更新日期:2021-09-15 10:46
本发明专利技术提供了一种SQL语句处理方法及装置,其中,该方法包括:解析SQL语句语义,得到多个子句;采用有向无环图的方式构建该多个子句的子句依赖关系;基于该子句依赖关系构建该多个子句的逻辑执行计划;通过本地数据节点执行该逻辑执行计划,得到执行结果,可以解决相关技术中从数据库节点抽取大量数据通过单一计算节点进行计算,计算节点的配置成为数据库集群的性能瓶颈,容易导致严重的网络流量拥塞,同样可能影响数据库集群生产运行的稳定性的问题,通过尽可能利用本地数据节点进行join运算,确保分布式数据库高效地执行join运算的同时避免单计算节点资源瓶颈和巨量数据的网络抽取,实现了数据库集群运行的高效与稳定。实现了数据库集群运行的高效与稳定。实现了数据库集群运行的高效与稳定。

【技术实现步骤摘要】
一种SQL语句处理方法及装置


[0001]本专利技术涉及数据处理领域,具体而言,涉及一种SQL语句处理方法及装置。

技术介绍

[0002]集中式join,需要将结构化查询语句(Structured Quevy Language,简称为SQL)语句join相关的数据从数据存储层都抽取到数据库的计算节点/计算层的内存中,而后采用传统数据库的内存join算法,例如常规nest

loop join,进行join运算。这样做的好处是join的实现方式简单,可以直接复用传统内存join算法,各类复杂join的支持比较容易。但这种方法的实现方式通常有如下弊端:
[0003]负责join的计算节点/协调节点需要缓存所有或大部分数据,容易限制join计算的规模,让单个计算节点的配置成为数据库集群的性能瓶颈,同时也大幅限制了该SQL语句可以进行的并发计算规模,并且存在出现OOM影响数据库集群稳定性的风险。
[0004]从数据库节点抽取大量数据进行单一计算节点,容易导致严重的网络流量拥塞,同样可能影响数据库集群生产运行的稳定性。
[0005]针对相关技术中从数据库节点抽取大量数据通过单一计算节点进行计算,计算节点的配置成为数据库集群的性能瓶颈,容易导致严重的网络流量拥塞,同样可能影响数据库集群生产运行的稳定性的问题,尚未提出解决方案。

技术实现思路

[0006]本专利技术实施例提供了一种SQL语句处理方法及装置,以至少解决相关技术中从数据库节点抽取大量数据通过单一计算节点进行计算,计算节点的配置成为数据库集群的性能瓶颈,容易导致严重的网络流量拥塞,同样可能影响数据库集群生产运行的稳定性的问题。
[0007]根据本专利技术的一个实施例,提供了一种SQL语句处理方法,包括:
[0008]解析SQL语句语义,得到多个子句;
[0009]采用有向无环图的方式构建所述多个子句的子句依赖关系;
[0010]基于所述子句依赖关系构建所述多个子句的逻辑执行计划;
[0011]通过本地数据节点执行所述逻辑执行计划,得到执行结果。
[0012]可选地,基于所述子句依赖关系构建所述多个子句的逻辑执行计划包括:
[0013]基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组;
[0014]分别根据所述多个子句的分组生成所述本地数据节点sep node,得到多个sep node,以构建所述多个子句的逻辑执行计划,其中,一个分组对应一个sep node,所述多个sep node中的每个sep node用于完成本地join运算任务并将用于下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node。
[0015]可选地,基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到
所述多个子句的分组包括:
[0016]基于所述子句依赖关系,根据数据分布方式相同的原则将子句所涉及的表进行分组,并将所述多个子句中的表join关系转换为分组的join关系,得到所述多个子句的分组,其中,同一组的所有表在数据存储上数据分布方式相同,所述数据分布方式相同包括数据节点相同、数据分片sharding算法相同、存在属于AND的分片列的查询条件均为分片列。
[0017]可选地,所述通过本地数据节点执行所述逻辑执行计划,得到执行结果包括:
[0018]对所述多个sep node执行调度,得到子句输出结果;
[0019]基于所述子句输出结果,触发对所述逻辑执行计划进行实例化构建,以执行所述逻辑执行计划,得到所述执行结果。
[0020]可选地,对所述多个sep node执行调度,得到所述子句输出结果包括:
[0021]对所述每个sep node完成本地join运算任务并将用于所述下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node;
[0022]基于临时表池创建所述临时表的执行任务;
[0023]对所述下一个sep node结合所述临时表完成本地join运算任务,得到所述子句输出结果。
[0024]可选地,基于所述子句输出结果,触发对所述逻辑执行计划进行实例化构建,以执行所述逻辑执行计划,得到所述执行结果包括:
[0025]将所述子句输出结果作为一个常量值或一个分组用于驱动下一个子句的执行计划;
[0026]对无依赖关系的子句进行并行执行计划,得到所述执行结果。
[0027]根据本专利技术的另一个实施例,还提供了一种SQL语句处理装置,包括:
[0028]解析模块,用于解析SQL语句语义,得到多个子句;
[0029]第一构建模块,用于采用有向无环图的方式构建所述多个子句的子句依赖关系;
[0030]第二构建模块,用于基于所述子句依赖关系构建所述多个子句的逻辑执行计划;
[0031]执行模块,用于通过本地数据节点执行所述逻辑执行计划,得到执行结果。
[0032]可选地,所述第二构建模块包括:
[0033]分组子模块,用于基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组;
[0034]生成子模块,用于分别根据所述多个子句的分组生成本地数据节点sep node,得到多个sep node,以构建所述多个子句的逻辑执行计划,其中,一个分组对应一个sep node,所述多个sep node中的每个sep node用于完成本地join运算任务并将用于下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node。
[0035]可选地,所述分组子模块,还用于
[0036]基于所述子句依赖关系,根据数据分布方式相同的原则将子句所涉及的表进行分组,并将所述多个子句中的表join关系转换为分组的join关系,得到所述多个子句的分组,其中,同一组的所有表在数据存储上数据分布方式相同,所述数据分布方式相同包括数据节点相同、数据分片sharding算法相同、存在属于AND的分片列的查询条件均为分片列。
[0037]可选地,所述执行模块包括:
[0038]调度子模块,用于对所述多个sep node执行调度,得到子句输出结果;
[0039]执行子模块,用于基于所述子句输出结果,触发对所述逻辑执行计划进行实例化构建,以执行所述逻辑执行计划,得到所述执行结果。
[0040]可选地,所述调度子模块,还用于
[0041]对所述每个sep node完成本地join运算任务并将用于所述下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node;
[0042]基于临时表池创建所述临时表的执行任务;
[0043]对所述下一个sep node结合所述临时表完成本地join运算任务,得本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SQL语句处理方法,其特征在于,包括:解析结构化查询语句SQL语句语义,得到多个子句;采用有向无环图的方式构建所述多个子句的子句依赖关系;基于所述子句依赖关系构建所述多个子句的逻辑执行计划;通过本地数据节点执行所述逻辑执行计划,得到执行结果。2.根据权利要求1所述的方法,其特征在于,基于所述子句依赖关系构建所述多个子句的逻辑执行计划包括:基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组;分别根据所述多个子句的分组生成所述本地数据节点sep node,得到多个sep node,以构建所述多个子句的逻辑执行计划,其中,一个分组对应一个sep node,所述多个sep node中的每个sep node用于完成本地join运算任务并将用于下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node。3.根据权利要求2所述的方法,其特征在于,基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组包括:基于所述子句依赖关系,根据数据分布方式相同的原则将子句所涉及的表进行分组,并将所述多个子句中的表join关系转换为分组的join关系,得到所述多个子句的分组,其中,同一组的所有表在数据存储上数据分布方式相同,所述数据分布方式相同包括数据节点相同、数据分片sharding算法相同、存在属于AND的分片列的查询条件均为分片列。4.根据权利要求2所述的方法,其特征在于,所述通过本地数据节点执行所述逻辑执行计划,得到执行结果包括:对所述多个sep node执行调度,得到子句输出结果;基于所述子句输出结果,触发对所述逻辑执行计划进行实例化构建,以执行所述逻辑执行计划,得到所述执行结果。5.根据权利要求4所述的方法,其特征在于,对所述多个sep node执行调度,得到所述子句输出结果包括:对所述每个sep node完成本地join运算任务并将用于所述下一个sep ...

【专利技术属性】
技术研发人员:王莉莉史晨阳丁永建向小佳彭晓史黎王志刚吴海洋赵振海王忠璐高孝鑫龙禹
申请(专利权)人:光大科技有限公司北京万里开源软件有限公司
类型:发明
国别省市:

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

1