[发明专利]一种SQL语句处理方法及装置在审
申请号: | 202110649927.8 | 申请日: | 2021-06-10 |
公开(公告)号: | CN113392123A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 王莉莉;史晨阳;丁永建;向小佳;彭晓;史黎;王志刚;吴海洋;赵振海;王忠璐;高孝鑫;龙禹 | 申请(专利权)人: | 中国光大银行股份有限公司;光大科技有限公司;北京万里开源软件有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/27 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 张秀英 |
地址: | 100033 北京市西城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 处理 方法 装置 | ||
1.一种SQL语句处理方法,其特征在于,包括:
解析结构化查询语句SQL语句语义,得到多个子句;
采用有向无环图的方式构建所述多个子句的子句依赖关系;
基于所述子句依赖关系构建所述多个子句的逻辑执行计划;
通过本地数据节点执行所述逻辑执行计划,得到执行结果。
2.根据权利要求1所述的方法,其特征在于,基于所述子句依赖关系构建所述多个子句的逻辑执行计划包括:
基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组;
分别根据所述多个子句的分组生成所述本地数据节点sep node,得到多个sep node,以构建所述多个子句的逻辑执行计划,其中,一个分组对应一个sep node,所述多个sepnode中的每个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 node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node;
基于临时表池创建所述临时表的执行任务;
对所述下一个sep node结合所述临时表完成本地join运算任务,得到所述子句输出结果。
6.根据权利要求5所述的方法,其特征在于,基于所述子句输出结果,触发对所述逻辑执行计划进行实例化构建,以执行所述逻辑执行计划,得到所述执行结果包括:
将所述子句输出结果作为一个常量值或一个分组用于驱动下一个子句的执行计划;
对无依赖关系的子句进行并行执行计划,得到所述执行结果。
7.一种SQL语句处理装置,其特征在于,包括:
解析模块,用于解析结构化查询语句SQL语句语义,得到多个子句;
第一构建模块,用于采用有向无环图的方式构建所述多个子句的子句依赖关系;
第二构建模块,用于基于所述子句依赖关系构建所述多个子句的逻辑执行计划;
执行模块,用于通过本地数据节点执行所述逻辑执行计划,得到执行结果。
8.根据权利要求7所述的装置,其特征在于,所述第二构建模块包括:
分组子模块,用于基于所述子句依赖关系,分别将所述多个子句所涉及的表进行分组,得到所述多个子句的分组;
生成子模块,用于分别根据所述多个子句的分组生成本地数据节点sep node,得到多个sep node,以构建所述多个子句的逻辑执行计划,其中,一个分组对应一个sep node,所述多个sep node中的每个sep node用于完成本地join运算任务并将用于下一个sep node的join运算任务所需的驱动表数据通过临时表的方式发送给所述下一个sep node。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国光大银行股份有限公司;光大科技有限公司;北京万里开源软件有限公司,未经中国光大银行股份有限公司;光大科技有限公司;北京万里开源软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110649927.8/1.html,转载请声明来源钻瓜专利网。