[发明专利]一种数据处理方法、装置、电子设备及存储介质在审
| 申请号: | 202111613360.5 | 申请日: | 2021-12-27 |
| 公开(公告)号: | CN114416771A | 公开(公告)日: | 2022-04-29 |
| 发明(设计)人: | 张雪岩;姜婧妍;黄杰;位凯志;古亮 | 申请(专利权)人: | 深信服科技股份有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 钟舒婷;张颖玲 |
| 地址: | 518055 广东省深圳市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据处理 方法 装置 电子设备 存储 介质 | ||
本发明实施例适用于数据处理技术领域,提供了一种数据处理方法、装置、电子设备及存储介质,其中,数据处理方法包括:解析查询语句,得到查询语句对应的抽象语法树;从抽象语法树中获取所述查询语句中的至少两个语法关键词的每个语法关键词的结构体数据;结构体数据表征语法关键词对应的表和/或列的描述性信息;基于结构体数据,获取至少两个语法关键词的每个语法关键词对应的列表信息;列表信息表征结构体数据中语法关键词对应的表和/或列的出现频次。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
对数据库进行SQL查询是业务场景中常见的操作,为了支持后续中间件的功能,例如读写分离、分库分表等,会有从SQL中抽取表名、列名等列表信息的需求。目前,相关技术通过Calcite、Presto等解析器抽取SQL语句的列表信息,相关技术只能抽取得到表层的列表信息,无法抽取得到深层次的列表信息。
发明内容
为了解决上述问题,本发明实施例提供了一种数据处理方法、装置、电子设备及存储介质,以至少解决相关技术解析器只能抽取得到表层的列表信息的问题。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理方法,该方法包括:
解析查询语句,得到所述查询语句对应的抽象语法树;
从所述抽象语法树中获取所述查询语句中的至少两个语法关键词的每个语法关键词的结构体数据;所述结构体数据表征语法关键词对应的表和/或列的描述性信息;
基于所述结构体数据,获取所述至少两个语法关键词的每个语法关键词对应的列表信息;所述列表信息表征结构体数据中语法关键词对应的表和/或列的出现频次。
在一实施例中,所述从所述抽象语法树中获取所述查询语句中的至少两个语法关键词的每个语法关键词的结构体数据,包括:
通过字符串匹配获取所述抽象语法树中键为语法关键词的键值对的值;
将所述抽象语法树中键为语法关键词的键值对的值,确定为对应的语法关键词的结构体数据。
在一实施例中,所述基于所述结构体数据,获取所述至少两个语法关键词的每个语法关键词对应的列表信息,包括:
基于设定数据结构获取所述结构体数据中的每个语法关键词对应的列表信息;所述列表信息包括语法关键词对应的列信息和/或表信息;所述列信息和/或表信息表征语法关键词对应的列名和/或表名的出现频次。
在一实施例中,所述列表信息表征结构体数据中每两个列名同时出现的次数;所述基于所述结构体数据,获取所述至少两个语法关键词的每个语法关键词对应的列表信息,包括:
在所述结构体数据包括至少两个列的情况下,对所述至少两个列的列名进行排列组合,得到每两个列名在所述结构体数据中同时出现的次数。
在一实施例中,所述列表信息表征结构体数据中的表连接关系;所述基于所述结构体数据,获取所述至少两个语法关键词的每个语法关键词对应的列表信息,包括:
在所述结构体数据包括相连的至少两个表的情况下,将相连的表的表名进行拼接,得到表示表连接关系的连接语句。
在一实施例中,在所述将相连的表的表名进行拼接,得到表示表连接关系的连接语句时,所述方法包括:
在所述至少两个表包括嵌套结构的第一表的情况下,解除所述第一表的嵌套结构,得到第一表中包含的至少两个第二表;
将所述至少两个第二表的表名与所述第一表相连的表的表名进行拼接,得到表示表连接关系的连接语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深信服科技股份有限公司,未经深信服科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111613360.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种屋面防水系统
- 下一篇:一种铝合金管子钳一体化生产设备





