一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据导入校验方法、设备及介质与流程

2021-10-27 21:49:00 来源:中国专利 TAG:数据处理 校验 介质 导入 方法


1.本技术涉及数据处理技术领域,尤其涉及一种数据导入校验方法、设备及介质。


背景技术:

2.应用系统中涉及大量数据导入校验时,通常会引出性能瓶颈的问题,如果数据量问题没有处理好,可能会出现内存溢出和响应超时的现象。
3.其中,如果待校验数据量很少,可以直接循环遍历即可,并且如果校验数据源数据量较小,一次全部加装到内存,也可以减少频繁的sql(结构化查询语言,structured query language)请求。
4.但是,对于大型应用系统,通常校验的数据量比较多,校验所依赖的数据源更多,导致出现系统不响应甚至崩溃的情况,从而影响其他功能模块。


技术实现要素:

5.本技术实施例提供一种数据导入校验方法、设备及介质,用于解决应用系统在大量数据导入时,校验性能低的问题。
6.本技术实施例采用下述技术方案:
7.一方面,本技术实施例提供了一种数据导入校验方法,该方法包括:获取待校验数据列,并确定所述待校验数据列依赖的源数据库;分批加载所述待校验数据列中预设行数的待校验数据,并判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配;若否,则通过结构化查询语言sql脚本,在所述源数据库中对所述待校验数据进行检索,确定检索结果集;将所述检索结果集合并至所述第一缓存变量,并通过所述第一缓存变量中合并后的缓存数据对所述待校验数据进行校验。
8.一个示例中,所述获取待校验数据列,并确定所述待校验数据列依赖的源数据库,具体包括:获取帮助类型的数据列集合;在所述数据列集合中,确定待校验数据列;确定所述待校验数据列依赖的所述源数据库,并根据所述帮助类型对应的元数据,确定所述待校验数据列向所述源数据库的访问方式。
9.一个示例中,所述判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配,具体包括:通过数据主键加载所述预设行数的待校验数据;判断所述第一缓存变量的缓存数据中是否存在所述待校验数据。
10.一个示例中,所述并通过sql脚本,在所述源数据库中对所述待校验数据进行检索,确定检索结果集,具体包括:将所述待校验数据缓存至第二缓存变量;将所述第二缓存变量的键值转换为数组或list集合;将所述数组或list集合作为参数,通过组织所述sql脚本的in操作,在所述源数据库中对所述待校验数据进行检索,确定所述检索结果集。
11.一个示例中,所述将所述检索结果集合并至所述第一缓存变量,具体包括:确定所述检索结果集的主键值和数据实体为key

value方式;通过所述key

value方式,将所述检索结果集合并至所述第一缓存变量中。
12.一个示例中,所述并通过所述第一缓存变量中合并后的缓存数据对所述待校验数据进行校验,具体包括:通过所述待校验数据的主键值判断所述待校验数据是否存在于所述合并后的缓存数据中,并通过rowindex定位所述待校验数据的数据行在所述待校验数据列中的位置,以标记校验结果。
13.一个示例中,所述并判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配,具体包括:若是,则获取所述第一缓存变量中对应的校验扩展规则;通过所述校验扩展规则,判断所述待校验数据是否合法;若是,则确定所述待校验数据通过校验。
14.一个示例中,所述分批加载所述待校验数据列中预设行数的待校验数据,并判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配,具体包括:分批加载所述待校验数据列中预设行数的待校验数据;按照逐行取值的方式,判断各数据行对应的待校验数据与所述第一缓存变量的缓存数据是否匹配。
15.另一方面,本技术实施例提供了一种数据导入校验设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取待校验数据列,并确定所述待校验数据列依赖的源数据库;分批加载所述待校验数据列中预设行数的待校验数据,并判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配;若否,则通过结构化查询语言sql脚本,在所述源数据库中对所述待校验数据进行检索,确定检索结果集;将所述检索结果集合并至所述第一缓存变量,并通过所述第一缓存变量中合并后的缓存数据对所述待校验数据进行校验。
16.另一方面,本技术实施例提供了一种数据导入校验非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:获取待校验数据列,并确定所述待校验数据列依赖的源数据库;分批加载所述待校验数据列中预设行数的待校验数据,并判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配;若否,则通过结构化查询语言sql脚本,在所述源数据库中对所述待校验数据进行检索,确定检索结果集;将所述检索结果集合并至所述第一缓存变量,并通过所述第一缓存变量中合并后的缓存数据对所述待校验数据进行校验。
17.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
18.本技术实施例通过首先获取待校验数据列,然后按列分批加载数据行,能够实现对待校验数据进行批量校验。进一步地,通过判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配,能够对待校验数据进行去重处理,并且通过在源数据库中检索是否存在,并把检索结果集做内存缓存处理,能够减少大幅db的访问次数问题,同时也将减少了内存占用量,提高系统的并发性与吞吐量,优化了应用系统的数据导入校验性能。
附图说明
19.为了更清楚地说明本技术的技术方案,下面将结合附图来对本技术的部分实施例进行详细说明,附图中:
20.图1为本技术实施例提供的一种数据导入校验方法的流程示意图;
21.图2为本技术实施例提供的一种数据导入校验的实施方案示意图;
22.图3为本技术实施例提供的一种数据导入校验设备的结构示意图。
具体实施方式
23.为使本技术的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本技术的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.下面参照附图来对本技术的一些实施例进行详细说明。
25.图1为本技术实施例提供的一种数据导入校验方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、公务业务领域等。该流程可以由相应领域的计算设备执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
26.本技术实施例涉及的分析方法的实现可以为终端设备,也可以为服务器,本技术对此不作特殊限制。为了方便理解和描述,以下实施例均以服务器为例进行详细描述。
27.需要说明的是,该服务器可以是单独的一台设备,可以是有多台设备组成的系统,即,分布式服务器,本技术对此不做具体限定。
28.图1中的流程具体包括以下步骤:
29.s101:获取待校验数据列,并确定待校验数据列依赖的源数据库。
30.具体地,服务器预先获取帮助类型的数据列集合,并定义为arraylist<column>结构的变量columnarray,然后在数据列集合中,确定待校验数据列,并确定待校验数据列依赖的源数据库,最后通过帮助类型对应的元数据,获取对源数据库的数据访问方式,并组织所有需要校验的数据列及依赖的源数据库。
31.s102:分批加载待校验数据列中预设行数的待校验数据,并判断待校验数据与内存中第一缓存变量的缓存数据是否匹配。
32.具体地,服务器预先定义第一缓存变量checkmap,第一缓存变量存放键为sring类型、值为object类型的数据,比如,hashmap<string,object>。通过引入hashmap以校验数据为key,减少重复数据的冗余存储。
33.然后,服务器通过数据主键分批加载待校验数据列中预设行数的待校验数据,也就是说,循环取出需要校验的预设行数据值,并且按照逐行取值的方式,判断各数据行对应的待校验数据与第一缓存变量的缓存数据是否匹配。
34.若匹配,则获取第一缓存变量中对应的校验扩展规则,并且通过校验扩展规则,判断待校验数据是否合法,若合法,则说明待校验数据通过校验。若不合法,则说明待校验数据不通过校验。也就是说,即使在第一缓存变量的缓存数据中存在待校验数据,但是并不合法,也无法通过校验。
35.s103:若否,则通过结构化查询语言sql脚本,在源数据库中对待校验数据进行检索,确定检索结果集。sql的选择操作一次加载,减少逐行处理的请求次数。
36.具体地,服务器预先定义第二缓存变量todomap,第二缓存变量存放键为sring类型、值为roeindex类型的数据,比如,hashmap<string,rowindex>。
37.若待校验数据与第一缓存变量的缓存数据不匹配时,服务器则将待校验数据缓存至第二缓存变量,将第二缓存变量的键值转换为数组或list集合,比如,将hashmap<string,rowindex>的键值转换为数组或list集合,然后将数组或list集合作为参数,通过
组织sql脚本的in操作,在源数据库中对待校验数据进行检索,确定检索结果集。其中,若源数据库包括待校验数据,则将待校验数据存入检索结果集。
38.比如,待校验的10行数据与第一缓存变量的缓存数据不匹配,则在源数据库中对10行数据值进行检索,此时,有8行数据可以在源数据库检索到,另外2行数据并未在源数据库检索到,则将该8行数据存入检索结果集中,另外2行数据不存入检索结果集中。
39.s104:将检索结果集合并至第一缓存变量,并通过第一缓存变量中合并后的缓存数据对待校验数据进行校验。
40.具体地,服务器确定所述检索结果集的主键值和数据实体为key

value方式,通过key

value方式,将检索结果集追加至第一缓存变量中,循环第二缓存变量中待校验的数据,然后通过待校验数据的主键值判断待校验数据是否存在于合并后的缓存数据中,若存在,则获取第一缓存变量中对应的校验扩展规则,并且通过校验扩展规则,判断待校验数据是否合法,若合法,则说明待校验数据通过校验。若不合法,则说明待校验数据不通过校验,最后通过rowindex定位待校验数据的数据行在待校验数据列中的位置,以标记校验结果。
41.最后,迭代计算所有分批结果集与所有待校验的数据列。
42.需要说明的是,虽然本技术实施例是参照图1来对步骤s101至步骤s104依次进行介绍说明的,但这并不代表步骤s101至步骤s104必须按照严格的先后顺序执行。本技术实施例之所以按照图1中所示的顺序对步骤s101至步骤s104依次进行介绍说明,是为了方便本领域技术人员理解本技术实施例的技术方案。换句话说,在本技术实施例中,步骤s101至步骤s104之间的先后顺序可以根据实际需要进行适当调整。
43.通过图1中的方法及相关内容,本技术实施例通过首先获取待校验数据列,然后按列分批加载数据行,能够实现对待校验数据进行批量校验。进一步地,通过判断所述待校验数据与内存中第一缓存变量的缓存数据是否匹配,能够对待校验数据进行去重处理,并且通过在源数据库中检索是否存在,并把检索结果集做内存缓存处理,能够减少大幅db的访问次数问题,同时也将减少了内存占用量,提高系统的并发性与吞吐量,优化了应用系统的数据导入校验性能。
44.基于此,本技术实施例还提供了一种数据导入校验的具体实施方案,应用于图1中的方法中。
45.如图2所示,s201:获取定义为帮助类型的数据列,定义缓存变量checkmap。
46.s202:存在待校验数据列。
47.s203:取出数据列cn的100行待校验数据。
48.s204:checkmap中是否匹配。
49.具体地,服务器按照逐行取值的方式,判断各数据行对应的待校验数据与第一缓存变量的缓存数据是否匹配,若是,执行步骤s203,若否,则执行步骤s205。
50.s205:组织todomap,批量sql请求。
51.具体地,服务器则将待校验数据缓存至第二缓存变量todomap,将第二缓存变量的键值转换为数组或list集合,比如,将hashmap<string,rowindex>的键值转换为数组或list集合,然后将数组或list集合作为参数,通过组织sql脚本的in操作,在源数据库中对待校验数据进行检索,确定检索结果集。
52.s206:检索结果集合并至checkmap。
53.具体地,服务器确定检索结果集的主键值和数据实体为key

value方式,通过key

value方式,将检索结果集追加至第一缓存变量checkmap中。
54.s207:对todomap中的待校验行数据进行二次内存校验,根据todomap定位原始数据行。
55.具体地,服务器通过待校验数据的主键值判断待校验数据是否存在于合并后的缓存数据中,若存在,则获取第一缓存变量中对应的校验扩展规则,并且通过校验扩展规则,判断待校验数据是否合法,若合法,则说明待校验数据通过校验。若不合法,则说明待校验数据不通过校验,最后通过rowindex定位待校验数据的数据行在待校验数据列中的位置,以标记校验结果。
56.基于同样的思路,本技术的一些实施例还提供了上述方法对应的设备和非易失性计算机存储介质。
57.图3为本技术实施例提供的一种数据导入校验设备的结构示意图,包括:
58.至少一个处理器;以及,
59.与所述至少一个处理器通信连接的存储器;其中,
60.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
61.获取待校验数据列,并确定待校验数据列依赖的源数据库;
62.分批加载待校验数据列中预设行数的待校验数据,并判断待校验数据与内存中第一缓存变量的缓存数据是否匹配;
63.若否,则通过结构化查询语言sql脚本,在源数据库中对待校验数据进行检索,确定检索结果集;
64.将检索结果集合并至第一缓存变量,并通过第一缓存变量中合并后的缓存数据对待校验数据进行校验。
65.本技术的一些实施例提供的一种数据导入校验非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
66.获取待校验数据列,并确定待校验数据列依赖的源数据库;
67.分批加载待校验数据列中预设行数的待校验数据,并判断待校验数据与内存中第一缓存变量的缓存数据是否匹配;
68.若否,则通过结构化查询语言sql脚本,在源数据库中对待校验数据进行检索,确定检索结果集;
69.将检索结果集合并至第一缓存变量,并通过第一缓存变量中合并后的缓存数据对待校验数据进行校验。
70.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
71.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
72.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
73.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
74.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
75.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
76.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
77.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
78.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
79.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
80.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术技术原理之内所作的任何修改、等同替
换、改进等,均应落入本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜