计算引擎运行结果对比方法、装置、设备及存储介质制造方法及图纸

技术编号:39036903 阅读:9 留言:0更新日期:2023-10-10 11:50
本申请提供一种计算引擎运行结果对比方法、装置、设备及存储介质,可用于数据处理领域。本方法包括:获取待计算的目标SQL语句;采用第一计算引擎及第二计算引擎分别运行待计算的目标SQL语句,并获取第一计算引擎对应的第一运行结果表及第二计算引擎对应的第二运行结果表;第一运行结果表及第二运行结果表中包括:主键列及数据列;采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值;若确定第一运行结果表及第二运行结果表中数据列标识相同对应数据列的列特征值均相同,则确定第一计算引擎及第二计算引擎对目标SQL语句的运行结果一致;避免了内存溢出并提高了数据对比效率。避免了内存溢出并提高了数据对比效率。避免了内存溢出并提高了数据对比效率。

【技术实现步骤摘要】
计算引擎运行结果对比方法、装置、设备及存储介质


[0001]本申请涉及数据处理领域,尤其涉及一种计算引擎运行结果对比方法、装置、设备及存储介质。

技术介绍

[0002]随着SQL计算引擎的发展,不仅有性能更快、功能点更丰富的同一计算引擎的新版本迭代,而且有全新的计算引擎诞生。在生产环境里,用户有一些存量SQL作业使用老的SQL计算引擎运行,用户想要变更到新的SQL计算引擎,来获得更快的计算速度。但是,由于不同的计算引擎在某些数据逻辑的处理上有变动,会导致某些作业在新的计算引擎的逻辑执行结果和旧的不一致,用户希望对这些结果不一致的作业不变更计算引擎,因此需要确定同一个SQL作业在不同计算引擎的逻辑执行结果是否一致。
[0003]目前通常用新旧两个不同的计算引擎运行同一个SQL作业,并生成两个结果表;然后将两个结果表的数据都读到内存中,再按照主键排序两个结果表;最后对于某个数据列,分别逐行比较数据的一致性。按照主键排序两个结果表的计算量较大,并且在一个结果表的数据大小可能会大于一台机器的内存,将两个结果表的数据都读到内存中时可能导致内存溢出。

技术实现思路

[0004]本申请提供一种计算引擎运行结果对比方法、装置、设备及存储介质,用以解决对比结果表时需要按照主键排序两个结果表,计算量较大,并且在一个结果表的数据大小可能会大于一台机器的内存,将两个结果表的数据都读到内存中时可能导致内存溢出的问题。
[0005]第一方面,本申请提供一种计算引擎运行结果对比方法,包括:
[0006]获取待计算的目标SQL语句;
[0007]采用第一计算引擎及第二计算引擎分别运行待计算的目标SQL语句,并获取第一计算引擎对应的第一运行结果表及第二计算引擎对应的第二运行结果表;所述第一运行结果表及第二运行结果表中包括:主键列及数据列;
[0008]采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值;
[0009]若确定第一运行结果表及第二运行结果表中数据列标识相同对应数据列的列特征值均相同,则确定第一计算引擎及第二计算引擎对目标SQL语句的运行结果一致。
[0010]第二方面,本申请提供一种计算引擎运行结果对比装置,包括:
[0011]获取模块,用于获取待计算的目标SQL语句;
[0012]运行模块,用于采用第一计算引擎及第二计算引擎分别运行待计算的目标SQL语句,并获取第一计算引擎对应的第一运行结果表及第二计算引擎对应的第二运行结果表;所述第一运行结果表及第二运行结果表中包括:主键列及数据列;
[0013]计算模块,用于采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值;
[0014]对比模块,用于若确定第一运行结果表及第二运行结果表中数据列标识相同对应数据列的列特征值均相同,则确定第一计算引擎及第二计算引擎对目标SQL语句的运行结果一致。
[0015]第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器及收发器;
[0016]所述存储器存储计算机执行指令;所述收发器用于收发数据;
[0017]所述处理器执行所述存储器存储的计算机执行指令,以实现上述任一方面所述的计算引擎运行结果对比方法。
[0018]第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述任一方面所述的计算引擎运行结果对比方法。
[0019]第五方面,本申请提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时实现上述任一方面所述的计算引擎运行结果对比方法。
[0020]本申请提供的计算引擎运行结果对比方法、装置、设备及存储介质,获取待计算的目标SQL语句;采用第一计算引擎及第二计算引擎分别运行待计算的目标SQL语句,并获取第一计算引擎对应的第一运行结果表及第二计算引擎对应的第二运行结果表;第一运行结果表及第二运行结果表中包括:主键列及数据列;采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值;若确定第一运行结果表及第二运行结果表中数据列标识相同对应数据列的列特征值均相同,则确定第一计算引擎及第二计算引擎对目标SQL语句的运行结果一致。通过计算各列的列特征值,在该列任一行数据不一致时的列特征值不一致,通过对比各列的列特征值就可以确定同一个SQL作业在不同计算引擎的逻辑执行结果是否一致,无需按照主键排序两个结果表,避免了内存溢出并提高了数据对比效率。而且基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值可以使列特征值能体现各数据列中数据的顺序,确保了数据对比的准确率。
附图说明
[0021]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0022]图1为本申请实施例提供的计算引擎运行结果对比方法流程图;
[0023]图2为本申请实施例提供的计算引擎运行结果对比示意图;
[0024]图3为本申请实施例提供的另一计算引擎运行结果对比方法流程图;
[0025]图4为本申请实施例提供的又一计算引擎运行结果对比方法流程图;
[0026]图5为本申请实施例提供的计算引擎运行结果对比装置的结构示意图;
[0027]图6为本申请实施例提供的电子设备的结构示意图。
[0028]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本大数据
技术人员说明本申请的概念。
具体实施方式
[0029]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0030]术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
[0031]首先对本专利技术所涉及的现有技术进行详细说明及分析。
[0032]在现代软件系统中,SQL计算引擎广泛应用于大数据表处理的场景。随着SQL计算引擎的发展,不仅有性能更快、功能点更丰富的同一计算引擎的新版本迭代,而且有全新的计算引擎诞生。比如在早期阶段,基于MapReduce的Hive是主要的SQL计算引擎。随后基于内存计算的Spark计算速度更快,被越来越多人使用,以及FlinkSQL流式计算引擎的出现,并被广泛使用。
[0033]在生产环境里,用户有一些存量SQL作业本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算引擎运行结果对比方法,其特征在于,包括:获取待计算的目标SQL语句;采用第一计算引擎及第二计算引擎分别运行待计算的目标SQL语句,并获取第一计算引擎对应的第一运行结果表及第二计算引擎对应的第二运行结果表;所述第一运行结果表及第二运行结果表中包括:主键列及数据列;采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值;若确定第一运行结果表及第二运行结果表中数据列标识相同对应数据列的列特征值均相同,则确定第一计算引擎及第二计算引擎对目标SQL语句的运行结果一致。2.根据权利要求1所述的方法,其特征在于,所述采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值,包括:启用两个线程并行地采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值。3.根据权利要求1所述的方法,其特征在于,所述采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值,包括:读取第一运行结果表及第二运行结果表的表结构,以获取第一运行结果表及第二运行结果表的主键列及数据列的列标识;按数据列的列标识依次采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值。4.根据权利要求3所述的方法,其特征在于,所述按数据列的列标识依次采用预设列特征值计算算法基于主键列计算第一运行结果表及第二运行结果表中各数据列的列特征值,包括:采用行特征值计算公式计算某数据列的列标识对应各行数据的行特征值;对该数据列的列标识对应各行数据的行特征值进行累加,以获取该数据列的列特征值;所述行特征值计算公式为:RF=Hash(Concat(ToStr(id),ToStr(data)))其中,RF表示该表某个数据列在某一行的行特征值,id表示该行对应的主键列的值,data表示这一行的这个数据列的值,ToStr为把某个数据类型的值转换成字符串类型的值的函数,Concat为把两个字符串连接成一个字符串的函数,Hash为把字符串映射成32位整数的函数。5.根据权利要求4所述的方法,其特征在于,所述采用行特征值计算公式计算某数据列的列标识对应各行数据的行特征值,对该数据列的列标识对应各行数据的行特征值进行累加,以获取该数据列的列特征值,包括:按序计算某数据列的列标识对应第一行数据的行特征值及第二行数据的行特征值;对第一行数据的行特征值及第...

【专利技术属性】
技术研发人员:李潇陈杰
申请(专利权)人:联通数字科技有限公司联通云数据有限公司
类型:发明
国别省市:

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

1