System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种解析方法及设备技术_技高网

一种解析方法及设备技术

技术编号:41228758 阅读:4 留言:0更新日期:2024-05-09 23:45
本发明专利技术实施例提供了一种解析方法及设备,该方法包括:接收第一指令,第一指令包括待执行的第一SQL语句及第一SQL语句对应的第一处理引擎类型,第一指令用于指示解析装置在第一SQL语句执行前按照第一解析需求对第一SQL语句进行解析;响应于第一指令,对第一SQL语句进行预处理操作,并将经过预处理操作后的第一SQL语句输入至第一处理引擎类型对应的目标解析器,生成第一解析树;根据第一解析树,获取第一预设需求对应的第一解析结果,并输出第一解析结果。该方法中,对待执行的第一SQL语句进行事前解析,获得第一预设需求对应的第一解析结果,从而可以满足用户在第一SQL语句执行之前提取所需信息的解析需求。

【技术实现步骤摘要】

本专利技术实施例涉及大数据分析处理,尤其涉及一种解析方法及设备


技术介绍

1、在大数据时代,无时无刻不在产生大量数据。在数据库管理系统中,经常会用到结构化查询语言(structured query language,sql),使用sql语句可以对数据库进行数据的创建、修改、删除、查询等操作。

2、目前,很多人对执行后的sql语句解析进行了探索,例如对被执行后的sql语句进行血缘解析,获取表或字段的血缘情况,这是一种事后解析的方案,但是仍不能满足用户对sql的问题快速定位的需求,而且现有技术中也没有在执行sql语句之前进行事前解析的相关研究,所以现有的解析方案并不能满足用户在不同场景下对sql语句的解析需求。


技术实现思路

1、本专利技术实施例提供了一种解析方法及设备,用以满足用户在不同场景下对sql语句的解析需求。

2、第一方面,本专利技术实施例提供了一种解析方法,该方法由解析装置执行,该方法包括:接收第一指令,第一指令包括待执行的第一sql语句以及第一sql语句对应的第一处理引擎类型,第一指令用于指示解析装置在第一sql语句执行前按照第一解析需求对第一sql语句进行解析;响应于第一指令,对第一sql语句进行预处理操作,并将经过预处理操作后的第一sql语句输入至第一处理引擎类型对应的目标解析器,生成第一解析树;根据第一解析树,获取第一预设需求对应的第一解析结果;输出第一解析结果。

3、通过该方案,在执行第一sql语句之前,解析装置可以对第一sql语句进行事前解析,获得第一预设需求对应的第一解析结果,从而可以满足用户在第一sql语句执行之前提取所需信息的解析需求。

4、可选地,预处理操作包括以下至少一项:格式化;裁剪;去除转义符。通过预处理操作可以加快解析速度,以满足执行第一sql语句之前进行解析的时效性要求。

5、可选地,解析装置包括基于antlr生成的至少一个预设处理引擎类型对应的解析器;将经过预处理操作后的第一sql语句输入至第一处理引擎类型对应的目标解析器,生成第一解析树之前,该方法还包括:根据所述第一指令包括的第一处理引擎类型,从至少一个预设类型的解析器中,确定出第一处理引擎类型对应的目标解析器。由于解析器的版本有多种,根据第一处理引擎类型确定出目标解析器,直接采用目标解析器对经过预处理操作后的第一sql语句进行解析,如此,可以不用将经过预处理操作后的第一sql语句,依次输入各种处理引擎类型对应的解析器去试错,从而可以节省解析时间。

6、可选地,第一sql语句用于从源表向目标表插入数据,第一解析需求包括提取目标表的表名;根据第一解析树,获取第一解析需求对应的第一解析结果,包括:从第一解析树中提取目标表的表名。如此,可以通过解析装置快速提取表名,可避免用户自行复制粘贴表名而导致出错的情况。

7、可选地,第一sql语句包括用于创建目标表,第一解析需求包括输出目标表对应的表名以及建表信息;根据第一解析树,获取第一解析需求对应的第一解析结果,包括:从第一解析树中提取目标表对应的表名以及建表信息;输出目标表对应的表名以及建表信息。如此,解析装置可以将表名以及建表信息返回在前端进行展示,用户可以更直观地看到自己设计的目标表对应的表名以及建表信息,也方便用户进行信息调整。

8、可选地,第一sql语句包括用于从源表向目标表插入数据,第一解析需求包括确定当前用户是否具有读取源表的权限以及向目标表进行写操作的权限;根据第一解析树,获取第一解析需求对应的第一解析结果,包括:从第一解析树中提取源表的表名以及目标表的表名;确定源表的表名对应的用户权限信息以及目标表的表名对应的权限信息。如此,可以及时向用户反馈是否具有对表进行读写操作的权限。

9、可选地,第一解析需求包括确定第一sql语句的健康程度;根据第一解析树,获取第一解析需求对应的第一解析结果,包括:根据第一解析树,确定第一sql语句是否存在预设项;根据第一sql语句是否存在预设项,确定第一sql语句对应的健康分,健康分表征第一sql语句的健康程度。通过该方式,可以对第一sql语句进行评估和优化,有效防止sql语句慢执行,提高执行效率和性能。

10、第二方面,本专利技术实施例提供了一种解析方法,该方法由解析装置执行,该方法包括:接收第二指令,第二指令包括已被执行过的第二sql语句,第二指令用于指示解析装置对第二sql语句进行血缘解析;响应于第二指令,确定第二sql语句对应的血缘信息,血缘信息包括第一映射关系和/或第二映射关系,第一映射关系包括第二sql语句对应的表信息与任务调度信息之间的映射关系,第二映射关系包括第二sql语句对应的字段信息与任务调度信息之间的映射关系;输出第二sql语句对应的血缘信息。

11、基于上述方案,解析专职可以已被执行过的第二sql语句进行事后解析,获取的血缘信息中将表血缘信息/字段血缘信息与任务调度信息进行绑定,可以满足用户对问题和任务的快速定位需求。

12、可选地,第二sql语句在被执行前已经过解析装置的解析;第二sql语句对应第二处理引擎类型;确定第二sql语句对应的血缘信息,包括:获取第二sql语句对应的第二解析树,第二解析树为将第二sql语句进行预处理操作后,输入至第二处理引擎类型对应的解析器进行解析生成的;根据第二解析树、sql元数据库、任务调度数据库,确定第二sql语句对应的血缘信息。通过该方式,对于已经过解析装置的解析、且已执行的第二sql语句,直接使用事前解析结果中的第二解析树,生成sql语句对应的血缘信息,从而可以加快事后解析速度。

13、可选地,第二sql语句在被执行前未经过解析装置的解析;第二指令还包括第二sql语句对应的第二处理引擎类型;响应于第二指令,确定第二sql语句对应的血缘信息,包括:响应于第二指令,将第二sql语句输入至第二处理引擎类型对应的解析器,生成第二解析树;根据第二解析树、sql元数据库、任务调度数据库,确定第二sql语句对应的血缘信息。通过该方式,对于未经过解析装置的解析、且已执行的第二sql语句,通过将第二sql语句输入至第二处理引擎类型对应的解析器进行解析,再根据解析结果中的第二解析树,生成sql语句对应的血缘信息。

14、可选地,根据第二解析树、sql元数据库、任务调度数据库,确定第二sql语句对应的血缘信息,包括:从调度任务数据库获取第二sql语句对应的任务调度信息;根据第二解析树,确定第二sql语句对应的表血缘关系,从sql元数据库获取表血缘关系对应的表信息;根据表血缘关系对应的表信息和任务调度信息,生成第一映射关系;和/或,根据第二解析树,确定第二sql语句对应的字段血缘关系,从sql元数据库获取字段血缘关系对应的字段信息;根据字段血缘关系对应的字段信息和任务调度信息,生成第二映射关系。通过该方式将任务调度信息与表信息或字段信息绑定,便于从表/字段向任务方向以及从任务向相关的表/字段方向的信息双向查找。

15、第三方面,本专利技术本文档来自技高网...

【技术保护点】

1.一种解析方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述预处理操作包括以下至少一项:

3.如权利要求1所述的方法,其特征在于,所述解析装置包括基于ANTLR生成的至少一个预设处理引擎类型对应的解析器;所述将经过预处理操作后的第一SQL语句输入至所述第一处理引擎类型对应的目标解析器,生成第一解析树之前,还包括:

4.如权利要求1-3任一项所述的方法,其特征在于,所述第一SQL语句用于从源表向目标表插入数据,所述第一解析需求包括提取所述目标表的表名;

5.如权利要求1-3任一项所述的方法,其特征在于,所述第一SQL语句用于创建目标表,所述第一解析需求包括输出所述目标表对应的表名以及建表信息;

6.如权利要求1-3任一项所述的方法,其特征在于,所述第一SQL语句用于从源表向目标表插入数据,所述第一解析需求包括确定当前用户是否具有读取源表的权限以及向目标表进行写操作的权限;

7.如权利要求1-3任一项所述的方法,其特征在于,所述第一解析需求包括确定所述第一SQL语句的健康程度;

8.一种解析方法,其特征在于,所述方法还包括:

9.如权利要求8所述的方法,其特征在于,所述第二SQL语句在被执行前已经过所述解析装置的解析;所述第二SQL语句对应第二处理引擎类型;

10.如权利要求8所述的方法,其特征在于,所述第二SQL语句在被执行前未经过所述解析装置的解析;所述第二指令还包括所述第二SQL语句对应的第二处理引擎类型;

11.如权利要求9或10所述的方法,其特征在于,所述根据所述第二解析树、SQL元数据库、任务调度数据库,确定所述第二SQL语句对应的血缘信息,包括:

12.一种计算设备,其特征在于,包括:

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至11任一项所述的方法。

14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被计算机执行时,执行如权利要求1至11任一项所述的方法。

...

【技术特征摘要】

1.一种解析方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述预处理操作包括以下至少一项:

3.如权利要求1所述的方法,其特征在于,所述解析装置包括基于antlr生成的至少一个预设处理引擎类型对应的解析器;所述将经过预处理操作后的第一sql语句输入至所述第一处理引擎类型对应的目标解析器,生成第一解析树之前,还包括:

4.如权利要求1-3任一项所述的方法,其特征在于,所述第一sql语句用于从源表向目标表插入数据,所述第一解析需求包括提取所述目标表的表名;

5.如权利要求1-3任一项所述的方法,其特征在于,所述第一sql语句用于创建目标表,所述第一解析需求包括输出所述目标表对应的表名以及建表信息;

6.如权利要求1-3任一项所述的方法,其特征在于,所述第一sql语句用于从源表向目标表插入数据,所述第一解析需求包括确定当前用户是否具有读取源表的权限以及向目标表进行写操作的权限;

7.如权利要求1-3任一项所述的方法,其特征在于,所述第一解析需求包括确定所述第一...

【专利技术属性】
技术研发人员:梁晓楠贾海良刘文武王玉翔
申请(专利权)人:海南上湖信息技术有限公司
类型:发明
国别省市:

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

1