System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种sql一致性检测方法、装置、存储介质及程序产品。
技术介绍
1、在现代软件系统中,计算引擎迭代的时候,需要将原始计算引擎中的结构化查询语言(structured query language,sql)作业迁移到新的计算引擎中,由于不同的计算引擎在数据处理的逻辑上存在差异,可能导致相同的sql作业在不同的计算引擎上计算的结果不一致。因此,需要准确的检测sql作业在不同的计算引擎中运行结果的一致性。
2、现有技术中,计算引擎中sql作业运行一致性检测的方式为,通过开发人员编辑配置文件人工定义检测规则。为了避免易变性函数导致的运行结果不一致的情况,开发人员会在配置文件中设定相应的异变性函数处理规则,特定处理易变性函数有关的结果。
3、因此,现有技术中存在sql在不同的计算引擎中运行结果一致性检测准确性低的技术问题。
技术实现思路
1、本申请实施例提供sql一致性检测方法、装置、存储介质及程序产品,用以达到sql在不同计算引擎中运行结果的一致性检测准确性的效果。
2、第一方面,本申请实施例提供一种sql一致性检测方法,包括:
3、获取待处理sql;
4、将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql;
5、将改造sql输入至多个待检测计算引擎中,并获取每个待检测计算引擎的运行结果,多个待检测计算引擎连接到同一个数据库实例;
6
7、在一种可能的实施方式中,将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
8、在易变性函数属于第一类型时,将易变性函数替换为易变性函数对应的预设稳定值,生成替换之后的改造sql;
9、其中,第一类型的异变性函数的返回结果未经过排序并且返回结果包含的结果值不固定。
10、在一种可能的实施方式中,在易变性函数属于第一类型时,将易变性函数替换为易变性函数对应的预设稳定值,生成替换之后的改造sql,包括:
11、在易变性函数属于第一类型时,若易变性函数用于生成随机值时,则将易变性函数替换为预设随机值;
12、若易变性函数用于获取当前时间时,则将易变性函数替换为预设时间值;
13、若易变性函数用于获取历史时长时,则将易变性函数替换为预设时长;预设随机值、预设时间值、预设时长均属于预设稳定值。
14、在一种可能的实施方式中,将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
15、在易变性函数属于第二类型时,将易变性函数外新增一个固定函数,生成对应的稳定函数;
16、将易变性函数替换为对应的稳定函数,生成替换之后的改造sql;
17、其中,第二类型的易变性函数的返回结果为一个数组或者序列,并且返回结果包含的结果值的排序是随机的;固定函数用于对返回结果按照预设排序顺序进行排列。
18、在一种可能的实施方式中,将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
19、在易变性函数属于第三类型时,将易变性函数替换为固定排名函数,生成替换之后的改造sql;
20、其中,第三类型的易变性函数的返回结果中键相同的结果值的排序是随机的,固定排名函数用于对键相同的结果值配置相同的排序,固定排名函数属于稳定函数。
21、在一种可能的实施方式中,将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
22、在易变性函数属于第四类型时,将易变性函数替换为固定长度函数,生成替换之后的改造sql;
23、其中,第四类型的易变性函数的返回结果包括浮点数,固定长度函数用于将返回结果的浮点数的长度修改为预设长度;固定长度函数属于稳定函数。
24、第二方面,本申请实施例提供一种sql一致性检测装置,包括:
25、获取模块,用于获取待处理sql;
26、第一处理模块,用于将待处理sql中的易变性函数替换为易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql;
27、第二处理模块,用于将改造sql输入至多个待检测计算引擎中,并获取每个待检测计算引擎的运行结果,多个待检测计算引擎连接到同一个数据库实例;
28、第三处理模块,用于将多个待检测计算引擎的运行结果进行对比,获取改造sql的一致性检测结果。
29、在一种可能的实施方式中,第一处理模块还用于:
30、在易变性函数属于第一类型时,将易变性函数替换为易变性函数对应的预设稳定值,生成替换之后的改造sql;
31、其中,第一类型的异变性函数的返回结果未经过排序并且返回结果包含的结果值不固定。
32、在一种可能的实施方式中,第一处理模块还用于:
33、在易变性函数属于第一类型时,若易变性函数用于生成随机值时,则将易变性函数替换为预设随机值;
34、若易变性函数用于获取当前时间时,则将易变性函数替换为预设时间值;
35、若易变性函数用于获取历史时长时,则将易变性函数替换为预设时长;预设随机值、预设时间值、预设时长均属于预设稳定值。
36、在一种可能的实施方式中,第一处理模块还用于:
37、在易变性函数属于第二类型时,将易变性函数外新增一个固定函数,生成对应的稳定函数;
38、将易变性函数替换为对应的稳定函数,生成替换之后的改造sql;
39、其中,第二类型的易变性函数的返回结果为一个数组或者序列,并且返回结果包含的结果值的排序是随机的;固定函数用于对返回结果按照预设排序顺序进行排列。
40、在一种可能的实施方式中,第一处理模块还用于:
41、在易变性函数属于第三类型时,将易变性函数替换为固定排名函数,生成替换之后的改造sql;
42、其中,第三类型的易变性函数的返回结果中键相同的结果值的排序是随机的,固定排名函数用于对键相同的结果值配置相同的排序,固定排名函数属于稳定函数。
43、在一种可能的实施方式中,第一处理模块还用于:
44、在易变性函数属于第四类型时,将易变性函数替换为固定长度函数,生成替换之后的改造sql;
45、其中,第四类型的易变性函数的返回结果包括浮点数,固定长度函数用于将返回结果的浮点数的长度修改为预设长度;固定长度函数属于稳定函数。
46、第三方面,本申请实施例提供一种电子设备,包括:存储器,处理器;
47、存储器存储计算机执行本文档来自技高网...
【技术保护点】
1.一种SQL一致性检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将待处理SQL中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造SQL,包括:
3.根据权利要求2所述的方法,其特征在于,所述在所述易变性函数属于第一类型时,将所述易变性函数替换为所述易变性函数对应的所述预设稳定值,生成替换之后的改造SQL,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将待处理SQL中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造SQL,包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将待处理SQL中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造SQL,包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述将待处理SQL中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造SQL,包括:
7.一种计算引擎运行一致性的检测装置,其
8.一种电子设备,其特征在于,包括:存储器,处理器;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
...【技术特征摘要】
1.一种sql一致性检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将待处理sql中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
3.根据权利要求2所述的方法,其特征在于,所述在所述易变性函数属于第一类型时,将所述易变性函数替换为所述易变性函数对应的所述预设稳定值,生成替换之后的改造sql,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将待处理sql中的易变性函数替换为所述易变性函数对应的预设稳定值或者稳定函数,生成替换之后的改造sql,包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将待处理sql中的易变性函数替换为所述易...
【专利技术属性】
技术研发人员:李潇,朱振华,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。