本技术涉及数据处理,尤其是涉及一种查询语句相似度的确定方法、执行方法及装置。
背景技术:
1、随着数据存储和处理的需求越来越大,数据库管理和优化变得越来越重要。在数据库管理和优化的过程中,相似度判断是一个重要的问题,例如在数据集成、数据清洗、数据分析等领域,需要对数据进行相似度匹配,以便更好地进行数据集成、清洗和分析;并且,在数据库查询优化中,相似度判断也是一个重要的问题,可以借助于不同sql查询语句之间的相似度,更好地对数据库进行查询和优化。
2、目前,通常采取文本匹配方式,利用sql查询语句的文本字符串,实现不同sql查询语句之间相似度计算,但是,文本匹配的方式计算量较大,无形中增加了终端设备的数据处理量,给终端设备带来了较大的数据处理压力。
技术实现思路
1、有鉴于此,本技术的目的在于提供一种查询语句相似度的确定方法、执行方法及装置,可以解决查询语句相似度计算过程中,终端设备数据处理量以及数据处理压力较大的问题。
2、本技术实施例提供了一种查询语句相似度的确定方法,所述确定方法包括:
3、获取查询项目的数据查询需求;
4、基于所述数据查询需求,通过调用查询语句生成框架的数据接口,生成项目查询语句;其中,所述项目查询语句用于获取所述查询项目所需查询结果;
5、通过解析所述项目查询语句,从所述项目查询语句中提取出运算操作数据,确定所述项目查询语句的运算操作向量;
6、基于所述运算操作向量,从多个候选查询语句中确定出与所述项目查询语句相匹配的目标查询语句;
7、基于所述项目查询语句的运算操作向量和所述目标查询语句的目标操作向量,确定所述项目查询语句与所述目标查询语句之间的相似度分值。
8、在一种可能的设施方式中,所述通过解析所述项目查询语句,从所述项目查询语句中提取出运算操作数据,确定所述项目查询语句的运算操作向量,包括:
9、将所述项目查询语句解析为抽象语法树;
10、对所述抽象语法树进行深度优先遍历,从所述抽象语法树中提取出运算操作数据,并将所述运算操作数据记录为一维向量;其中,所述一维向量中记录有所述项目查询语句所涉及的运算符和/或列操作值;所述一维向量用于反映所述项目查询语句的复杂程度;
11、在深度优先遍历过程完成后,将所述一维向量确定为所述项目查询语句的运算操作向量。
12、在一种可能的设施方式中,所述对所述抽象语法树进行深度优先遍历,从所述抽象语法树中提取出运算操作数据,包括:
13、通过对所述抽象语法树进行深度优先遍历,确定所述项目查询语句中所涉及的运算符和列操作值;
14、将所述运算符和所述列操作值确定为运算操作数据,并提取出所述运算符和所述列操作值。
15、在一种可能的设施方式中,所述基于所述运算操作向量,从多个候选查询语句中确定出与所述项目查询语句相匹配的目标查询语句,包括:
16、基于所述运算操作向量,确定所述项目查询语句与向量数据库中每个候选查询语句之间的相似度;
17、按照所述相似度对所述多个候选查询语句进行排序,将位于前预设位的候选查询语句确定为与所述项目查询语句相匹配的目标查询语句。
18、在一种可能的设施方式中,所述基于所述运算操作向量,确定所述项目查询语句与向量数据库中每个候选查询语句之间的相似度,包括:
19、调用所述向量数据库的搜索接口,通过比对所述运算操作向量与每个候选查询语句的候选操作向量,确定所述项目查询语句与每个候选查询语句之间的相似度。
20、在一种可能的设施方式中,所述基于所述项目查询语句的运算操作向量和所述目标查询语句的目标操作向量,确定所述项目查询语句与所述目标查询语句之间的相似度分值,包括:
21、利用预设算法参数,确定所述运算操作向量与所述目标查询语句的目标操作向量之间的向量距离,并将所述向量距离确定为所述项目查询语句与所述目标查询语句之间的相似度分值。
22、本技术实施例还提供了一种基于相似度的查询语句的执行方法,所述执行方法包括:基于项目查询语句与目标查询语句之间的相似度分值以及所述目标查询语句的复杂度,确定所述项目查询语句的复杂度;其中,所述相似度分值通过上述的查询语句相似度的确定方法得到;
23、结合所述项目查询语句的复杂度,确定所述项目查询语句的语句类型;
24、基于所述语句类型,确定所述项目查询语句的执行方式;
25、按照所述执行方式,执行所述项目查询语句。
26、在一种可能的设施方式中,所述基于所述语句类型,确定所述项目查询语句的执行方式,包括:
27、若所述语句类型为简单查询语句,则确定所述项目查询语句的执行方式为实时执行;
28、若所述语句类型为复杂查询语句,则确定所述项目查询语句的执行方式为延时执行。
29、在一种可能的设施方式中,当所述执行方式为延时执行时,所述执行方法还包括:
30、响应于线程配置操作,配置执行所述项目查询语句的执行线程及所述执行线程的执行时间;
31、所述按照所述执行方式,执行所述项目查询语句,包括:
32、按照所述执行时间,调用所述执行线程,执行所述项目查询语句。
33、本技术实施例还提供了一种查询语句相似度的确定装置,所述确定装置包括:
34、数据获取模块,用于获取查询项目的数据查询需求;
35、语句生成模块,用于基于所述数据查询需求,通过调用查询语句生成框架的数据接口,生成项目查询语句;其中,所述项目查询语句用于获取所述查询项目所需查询结果;
36、数据提取模块,用于通过解析所述项目查询语句,从所述项目查询语句中提取出运算操作数据,确定所述项目查询语句的运算操作向量;
37、语句搜索模块,用于基于所述运算操作向量,从多个候选查询语句中确定出与所述项目查询语句相匹配的目标查询语句;
38、相似度确定模块,用于基于所述项目查询语句的运算操作向量和所述目标查询语句的目标操作向量,确定所述项目查询语句与所述目标查询语句之间的相似度分值。
39、在一种可能的实施方式中,所述数据提取模块在用于通过解析所述项目查询语句,从所述项目查询语句中提取出运算操作数据,确定所述项目查询语句的运算操作向量,所述数据提取模块用于:
40、将所述项目查询语句解析为抽象语法树;
41、对所述抽象语法树进行深度优先遍历,从所述抽象语法树中提取出运算操作数据,并将所述运算操作数据记录为一维向量;其中,所述一维向量中记录有所述项目查询语句所涉及的运算符和/或列操作值;所述一维向量用于反映所述项目查询语句的复杂程度;
42、在深度优先遍历过程完成后,将所述一维向量确定为所述项目查询语句的运算操作向量。
43、在一种可能的实施方式中,所述数据提取模块在用于对所述抽象语法树进行深度优先遍历,从所述抽象语法树中提取出运算操作数据时,所述数据提取模块用于:
44、通过对所述抽象语法树进行深度优先遍历,确定所述项目查询语句中所涉及的运算符和列操作值;
45、将所述运算符和所述列操作值确定为运算操作数据,并提取出所述运算符和所述列操作值。
46、在一种可能的实施方式中,所述语句搜索模块在用于基于所述运算操作向量,从多个候选查询语句中确定出与所述项目查询语句相匹配的目标查询语句时,所述语句搜索模块用于:
47、基于所述运算操作向量,确定所述项目查询语句与向量数据库中每个候选查询语句之间的相似度;
48、按照所述相似度对所述多个候选查询语句进行排序,将位于前预设位的候选查询语句确定为与所述项目查询语句相匹配的目标查询语句。
49、在一种可能的实施方式中,所述语句搜索模块在用于基于所述运算操作向量,确定所述项目查询语句与向量数据库中每个候选查询语句之间的相似度时,所述语句搜索模块用于:
50、调用所述向量数据库的搜索接口,通过比对所述运算操作向量与每个候选查询语句的候选操作向量,确定所述项目查询语句与每个候选查询语句之间的相似度。
51、在一种可能的实施方式中,所述相似度确定模块在用于基于所述运算操作向量与所述目标查询语句的目标操作向量,确定所述项目查询语句与所述目标查询语句之间的相似度分值时,所述相似度确定模块用于:
52、利用预设算法参数,确定所述运算操作向量与所述目标查询语句的目标操作向量之间的向量距离,并将所述向量距离确定为所述项目查询语句与所述目标查询语句之间的相似度分值。
53、本技术实施例还提供了一种基于相似度的查询语句的执行装置,所述执行装置包括:
54、复杂度确定模块,用于基于项目查询语句与目标查询语句之间的所述相似度分值以及所述目标查询语句的复杂度,确定所述项目查询语句的复杂度;其中,所述相似度分值通过权利要求10所述的查询语句相似度的确定装置得到;
55、语句类型确定模块,用于结合所述项目查询语句的复杂度,确定所述项目查询语句的语句类型;
56、执行方式确定模块,用于基于所述语句类型,确定所述项目查询语句的执行方式;
57、语句执行模块,用于按照所述执行方式,执行所述项目查询语句。
58、在一种可能的实施方式中,所述执行方式确定模块在用于基于所述语句类型,确定所述项目查询语句的执行方式时,所述执行方式确定模块用于:
59、若所述语句类型为简单查询语句,则确定所述项目查询语句的执行方式为实时执行;
60、若所述语句类型为复杂查询语句,则确定所述项目查询语句的执行方式为延时执行。
61、在一种可能实施方式中,当所述执行方式为延时执行时,所述确定装置还包括配置模块,所述配置模块用于:
62、响应于线程配置操作,配置执行所述项目查询语句的执行线程及所述执行线程的执行时间;
63、所述语句执行模块在用于按照所述执行方式,执行所述项目查询语句时,所述语句执行模块用于:
64、按照所述执行时间,调用所述执行线程,执行所述项目查询语句。
65、本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的查询语句相似度的确定方法和/或上述的基于相似度的查询语句的执行方法的步骤。
66、本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的查询语句相似度的确定方法的步骤和/或上述的基于相似度的查询语句的执行方法。
67、本技术实施例提供的一种查询语句相似度的确定方法、执行方法及装置,获取查询项目的数据查询需求;基于所述数据查询需求,通过调用查询语句生成框架的数据接口,生成项目查询语句;其中,所述项目查询语句用于获取所述查询项目所需查询结果;通过解析所述项目查询语句,从所述项目查询语句中提取出运算操作数据,确定所述项目查询语句的运算操作向量;基于所述运算操作向量,从多个候选查询语句中确定出与所述项目查询语句相匹配的目标查询语句;基于所述项目查询语句的运算操作向量和所述目标查询语句的目标操作向量,确定所述项目查询语句与所述目标查询语句之间的相似度分值。这样,便可以借助于查询语句所涉及的运算操作数据,实现查询语句相似度分值的确定,相较于采用查询语句的文本字符串进行相似度计算,可以减少相似度确定过程中所涉及的数据处理量,有助于提高相似度分值的确定效率,还可以降低终端设备的数据处理压力;并且,在形成项目查询语句的运算操作向量的过程中,通过将项目查询语句的运算操作数据映射为一维向量的形式,以通过降维的方式,进一步地降低计算的复杂程度,提高计算效率。
68、为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。