一种数据校验的方法和装置与流程
未命名
10-28
阅读:74
评论:0
1.本发明涉及数据校验领域,特别地,涉及一种数据校验的方法和装置。
背景技术:
2.在日常生活中常常需要进行各种数据的采集,例如在进行人口普查时需要进行人员数据的采集,在公会组织进行会员统计时需要进行会员数据的采集等等。现有技术中在进行数据采集时,大多是包括数据录入和数据校验两步。一般采用直接填表方式进行数据录入,例如将人员数据包括:姓名、身份证号码、籍贯等数据直接录入人员数据表中。在数据录入之后还要进行数据的进一步校验,主要是校验录入的格式是否正确、是否有漏填项等等。
3.现有技术中大多是人工进行校验,但是当数据量较大时,人工校验的效率较低。因此现在亟需一种数据校验的方法,能够提高数据校验的效率。
技术实现要素:
4.本文实施例的目的在于提供一种数据校验的方法,以提高数据校验的效率。
5.为达到上述目的,一方面,本文实施例提供了一种数据校验的方法,其特征在于,包括一用于提供文件存储功能的文件存储模块,一用于提供文件上传功能的文件上传模块,以及一用于进行文件处理的文件处理模块,所述方法应用于文件处理模块,包括:接收文件上传模块上传的文件,所述文件中包含有待校验数据;将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;将所述报文存储至消息队列;判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。
6.优选的,所述对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果进一步包括:若所述报文被标记,则确定所述文件中待校验数据无误,并保存所述校验结果;若所述报文未被标记,则通过指定校验方式对所述文件中待校验数据进行校验,并保存所述校验结果。
7.优选的,所述指定校验方式包括以下校验方法的一种或者多种:非空校验、数据逻辑校验和数据格式校验。
8.优选的,所述按照报文的优先级顺序获取报文对应的文件进一步包括:
当多个报文的优先级相同时,按照先进先出的顺序获取报文对应的文件。
9.优选的,所述报文优先级的确定方法包括:根据所述报文,确定所述报文对应的文件的上传方;根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级。
10.优选的,所述根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级进一步包括:根据所述历史校验结果,统计其中校验有误的错误次数;将所述错误次数除以所述上传次数,计算得到所述上传方的错误概率;提取所述上传方错误概率的十分位和百分位,得到所述报文的基准数据,其中所述错误概率的十分位作为所述基准数据的十位,所述错误概率的百分位作为所述基准数据的个位;根据所述报文的基准数据,确定所述报文优先级。
11.优选的,所述根据所述报文的基准数据,确定所述报文优先级进一步包括:若所述报文的基准数据的十位数字为0或1,则所述报文优先级为第一优先级;若所述报文的基准数据的十位数字不为0或1,则:获取所述消息队列中指定报文的基准数据,其中所述指定报文的基准数据的十位数字为所述消息队列中所有报文的基准数据的十位数字中除0和1外的最小者;将所述报文的基准数据的十位数字除以所述指定报文的基准数据的十位数字,得到报文初始优先级;若所述消息队列中存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级加1,得到所述报文优先级;若所述消息队列中不存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级作为所述报文优先级。
12.优选的,所述设定优先级的确定方法包括:获取所述消息队列中所有报文的优先级;若所述消息队列中不同报文的优先级存在不同,则选取设定报文的优先级作为设定优先级;若所述消息队列中所有报文的优先级均相同,则根据所述报文的基准数据的个位数字,重新确定所述消息队列中所有报文的优先级;根据重新确定的消息队列中所有报文的优先级,确定设定优先级。
13.优选的,所述保存该部分文件的校验结果进一步包括:判断所述部分文件中的待校验数据的校验结果是否无误;若是,则保存所述部分文件中的待校验数据;若否,则在所述部分文件中记录所述待校验数据的错误,将记录后的所述部分文件上传至文件存储模块;接收并保存文件存储模块回传的问题报文,所述问题报文中包含所述部分文件的存储地址。
14.另一方面,本说明实施例还提供了一种数据校验的装置,其特征在于,包括一用于提供文件存储功能的文件存储模块,一用于提供文件上传功能的文件上传模块,以及一用于进行文件处理的文件处理模块,所述方法应用于文件处理模块,包括:
接收子模块,用于接收文件上传模块上传的文件,所述文件中包含有待校验数据;上传子模块,用于将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;存储子模块,用于将所述报文存储至消息队列;判断子模块,用于判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;校验子模块,用于对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。
15.由以上本文实施例提供的技术方案可见,本文实施例通文件上传模块可以同时进行多个用户的文件上传,由于文件处理模块不是接收上传方的文件后即刻处理,而是将上传方的文件传递至文件存储模块先行进行保存而后再逐一进行处理,相较于前者进行同步处理的方法,本文的方法采用了异步处理,能够提高数据处理的效率。此外,通过报文数量的判断,能够对部分报文进行标记,而只需对未标记的报文进行校验,也大大提高了数据校验的效率。
16.为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
17.为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了本文实施例提供的应用于文件处理模块的一种数据校验的方法的流程示意图;图2示出了本文实施例提供的文件上传模块、文件处理模块和文件存储模块组成的系统的结构示意图;图3示出了本文实施例提供的用于对文件中至少部分文件进行校验,并保存该部分文件的校验结果的流程示意图;图4示出了本文实施例提供的报文优先级的确定方法的流程示意图;图5示出了本文实施例提供的根据上传方的历史文件上传次数和历史校验结果,确定报文优先级的流程示意图;图6示出了本文实施例提供的用于根据报文的基准数据,确定报文优先级的流程示意图;图7示出了本文实施例提供的设定优先级的确定方法的流程示意图;图8示出了本文实施例提供的保存该部分文件的校验结果的流程示意图;图9示出了本文实施例提供的一种数据校验的装置的流程示意图;图10示出了本文实施例提供的计算机设备的结构示意图。
19.附图符号说明:100、接收子模块;200、上传子模块;300、存储子模块;400、判断子模块;500、校验子模块。
具体实施方式
[0020][0021]
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
[0022]
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023]
在日常生活中常常需要进行各种数据的采集,例如在进行人口普查时需要进行人员数据的采集,在公会组织进行会员统计时需要进行会员数据的采集等等。现有技术中在进行数据采集时,大多是包括数据录入和数据校验两步。一般采用直接填表方式进行数据录入,例如将人员数据包括:姓名、身份证号码、籍贯等数据直接录入人员数据表中。在数据录入之后还要进行数据的进一步校验,主要是校验录入的格式是否正确、是否有漏填项等等。现有技术中大多是人工进行校验,但是当数据量较大时,人工校验的效率较低。
[0024]
为了解决上述问题,本文实施例提供了一种数据校验的方法。图1是本文实施例提供的一种数据校验的方法的步骤示意图。
[0025]
参照图2,在数据校验系统中包括文件上传模块、文件处理模块和文件存储模块,文件上传模块多用于数据的输入输出,文件处理模块多用于对文件上传模块输入的数据进行校验等处理,并根据文件上传模块的需求将处理结果传递给文件上传模块,文件存储模块多用于进行数据以及处理结果的存储。其中文件存储模块独立运行于文件处理模块外实现存储功能,能够保证系统的稳定性,提高数据存储的效率和安全性。
[0026]
参照图1,本文实施例提供一种数据校验的方法,包括一用于提供文件存储功能的文件存储模块,一用于提供文件上传功能的文件上传模块,以及一用于进行文件处理的文件处理模块,所述方法应用于文件处理模块,包括:s101:接收文件上传模块上传的文件,所述文件中包含有待校验数据;s102:将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;s103:将所述报文存储至消息队列;s104:判断所述消息队列的长度是否大于设定长度;s105:若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标
记优先级大于设定优先级的报文;s106:若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;s107:对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。
[0027]
文件处理模块在接收文件上传模块上传的文件时,文件可以通过文档或者表格等形式进行上传,文件中包含有待校验数据。文件处理模块接收到文件之后,将文件上传至文件存储模块,而文件处理模块本身不进行文件的存储,文件存储模块在成功接收文件后,会向文件处理模块传递报文,报文中包括文件在文件存储模块的存储地址、文件的上传方、上传时间等。文件处理模块接收到报文后先进行报文数量的判断,即判断接收到的尚未校验的报文数量是否大于设定阈值,若是,则根据存储地址,按照优先级顺序由相应存储地址中获取报文,并标记优先级大于设定优先级的报文,若否,则不按照优先级顺序获取报文,也不必标记报文。
[0028]
其中,若文件处理模块接收到文件存储模块传递的报文,则会向文件上传模块传递上传成功的提示信息,若文件处理模块未接收到文件存储模块传递的报文,则会向文件上传模块传递上传失败的提示信息。
[0029]
对文件中至少部分文件进行校验,其中至少部分含义为:不论是否对报文进行标记,都至少存在一部分必须进行校验的报文,具体的,已标记的报文无需进行校验,由于本文中设定优先级是根据报文优先级进行设定的,保证报文中有一部分的优先级大于设定优先级,其余部分的优先级小于设定优先级,因此文件中至少有部分文件需要进行校验。
[0030]
消息队列是在消息传递过程中保存消息的容器,除了消息队列外,能够实现相同功能的还有堆栈、缓存中间件等等。本文中所述的消息队列可以为rabbitmq、rocketmq或者kafka中的任意一个。文件处理模块在接收到文件存储模块传递的报文时会将报文存储至消息队列中,存储于消息队列中的报文对应的文件即为等待进行数据校验的文件。判断消息队列的长度是否大于设定长度中,消息队列的长度由消息队列中保存的文件的数量决定,保存的文件数量越多,消息队列的长度越长,在本文中,设定长度可以根据实际情况来确定,当消息队列的长度大于设定长度时,代表目前消息队列中有较多的报文堆积,处理压力较大,需要加快处理,当消息队列的长度不大于设定长度时,代表目前消息队列中报文数量适中,不存在处理压力,无需加快处理。
[0031]
若消息队列的长度大于设定长度,则文件处理模块按照报文的优先级获取报文对应的文件并标记报文,需要注意的是,本文中是按照报文的优先级获取报文对应的文件并标记优先级大于设定优先级的报文,而非按照任意顺序获取报文对应的文件后再判断该报文的优先级是否大于设定优先级并进行标记。本文是按照优先级获取文件,按照优先级获取报文即优先级越高的报文优先处理。在本文实施例中,可以将报文的优先级与报文上传方的错误可能性相联系,上传方的错误可能性越高,其对应的报文的优先级越低,而报文优先级越低的在进行报文获取和报文对应的文件处理时相对靠后,相对于优先级高的报文来说,优先级低的报文的处理速度较慢,这样会倒逼上传方仔细确认其上传的文件,提高文件的正确率从而间接提高数据校验的效率。
[0032]
若消息队列的长度不大于设定长度,则文件处理模块按照先进先出的顺序获取报文对应的文件,其中先进先出指的是先保存至消息队列的报文先由消息队列中取出进行校验。当然,本文中由于使用了消息队列作为报文存储的中间件,所以采用先进先出的方式获
取报文,若采用其他的形式的报文存储结构,则可以采取相应的顺序进行报文获取。
[0033]
本文中文件上传模块可以同时进行多个用户的文件上传,由于文件处理模块不是接收上传方的文件后即刻处理,而是将上传方的文件传递至文件存储模块先行进行保存而后再逐一进行处理,相较于前者进行同步处理的方法,本文的方法采用了异步处理,能够提高数据处理的效率。此外,通过报文数量的判断,能够对部分报文进行标记,而只需对未标记的报文进行校验,也大大提高了数据校验的效率。
[0034]
参照图3,在本文实施例中,所述对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果进一步包括:s201:若所述报文被标记,则确定所述文件中待校验数据无误,并保存所述校验结果;s202:若所述报文未被标记,则通过指定校验方式对所述文件中待校验数据进行校验,并保存所述校验结果。
[0035]
若当前报文被标记,代表消息队列的长度大于设定长度,按照报文的优先级获取报文对应的文件并标记优先级大于设定优先级的报文后,当前报文的优先级高于设定优先级,当前报文无需进行校验,默认待校验数据无误,保存校验结果为校验无误。若当前报文未被标记,代表消息队列的长度大于设定长度,按照报文的优先级获取报文对应的文件并标记优先级大于设定优先级的报文后,当前报文的优先级不高于设定优先级,或者消息队列的长度不大于设定长度,当前报文需要进行校验,按照指定校验方式对文件中待校验数据校验后保存校验结果。
[0036]
其中所述指定校验方式包括以下校验方法的一种或者多种:非空校验、数据逻辑校验和数据格式校验。
[0037]
具体可以为上述三种校验方式组合,也可以是上述任意两种校验的组合,也可以是上述任一校验方式。
[0038]
在本文实施例中,所述按照报文的优先级顺序获取报文对应的文件进一步包括:当多个报文的优先级相同时,按照先进先出的顺序获取报文对应的文件。
[0039]
多个报文的优先级相同,为了避免发生获取异常,可以按照先进先出的顺序获取报文对应的文件,当然也可以采用先进后出等其他的顺序进行报文对应文件的获取,其中多个报文并非指所有报文,而是大于或等于两个的报文。
[0040]
参照图4,在本文实施例中,所述报文优先级的确定方法包括:s301:根据所述报文,确定所述报文对应的文件的上传方;s302:根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级。
[0041]
报文中包含上传方,因此可以直接解析报文得到文件的上传方,可以通过不同的编号来唯一标定上传方,对于每一个上传方来说,其拥有唯一特定的编号,该上传方每次进行文件上传时都会通过该编号进行其身份的唯一标识。根据上传方的历史文件上传次数,以及其历史校验结果,可以进一步确定上传方上传时的错误可能性,进而得到报文优先级。需要注意的是,报文优先级可以每间隔一段时间就重新计算一次,以更新所有报文的优先级。
[0042]
参照图5,在本文实施例中,所述根据所述上传方的历史文件上传次数和历史校验
结果,确定所述报文优先级进一步包括:s401:根据所述历史校验结果,统计其中校验有误的错误次数;s402:将所述错误次数除以所述上传次数,计算得到所述上传方的错误概率;s403:提取所述上传方错误概率的十分位和百分位,得到所述报文的基准数据,其中所述错误概率的十分位作为所述基准数据的十位,所述错误概率的百分位作为所述基准数据的个位;s404:根据所述报文的基准数据,确定所述报文优先级。
[0043]
当然除了单一的通过错误次数和上传次数的比值确定错误概率之外,还可以通过其他方式来确定错误概率。例如可以根据历史校验结果,统计其中校验有误的错误次数,以及其中连续校验有误的连续数目,除了确定错误概率之外,还可以进一步通过连续数目确定上传方的报文优先级,需要说明的是,如果连续多个文件的校验有误,则该多个文件的数目即为连续校验有误的连续数目,当然连续数目可能有多个,例如连续3次上传文件的校验有误,连续5次上传文件的校验有误。
[0044]
参照图6,在本文实施例中,所述根据所述报文的基准数据,确定所述报文优先级进一步包括:s501:若所述报文的基准数据的十位数字为0或1,则所述报文优先级为第一优先级;s502:若所述报文的基准数据的十位数字不为0或1,则:获取所述消息队列中指定报文的基准数据,其中所述指定报文的基准数据的十位数字为所述消息队列中所有报文的基准数据的十位数字中除0和1外的最小者;将所述报文的基准数据的十位数字除以所述指定报文的基准数据的十位数字,得到报文初始优先级;若所述消息队列中存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级加1,得到所述报文优先级;若所述消息队列中不存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级作为所述报文优先级。
[0045]
例如所有报文的基准数据的十位数字包括:5、6、3、7,那其中除0和1外的最小者为3。将报文的基准数据的十位数字除以指定报文的基准数据的十位数字,然后取整,将取整得到的值作为报文初始优先级。需要说明的是,第一优先级最大,第二优先级次之,依序优先级逐渐减小。
[0046]
其中,参照图7,所述设定优先级的确定方法包括:s601:获取所述消息队列中所有报文的优先级;s602:若所述消息队列中不同报文的优先级存在不同,则选取设定报文的优先级作为设定优先级;s603:若所述消息队列中所有报文的优先级均相同,则根据所述报文的基准数据的个位数字,重新确定所述消息队列中所有报文的优先级;s604:根据重新确定的消息队列中所有报文的优先级,确定设定优先级。
[0047]
根据所述报文的基准数据的个位数字,重新确定所述消息队列中所有报文的优先级时,具体步骤可以参考上述步骤s501-s506,将其中十位数字替换为个位数字,以尽可能
确保消息队列中报文优先级存在差异。
[0048]
其中选取设定报文的优先级作为设定优先级中的设定报文,可以按照消息队列中所有报文优先级计算其中的众数优先级,将众数优先级对应的报文作为设定报文,也可以按照消息队列中所有报文优先级计算其中的中位数优先级,将中位数优先级对应的报文作为设定报文,还可以通过计算平均数等其他方式来确定设定报文。
[0049]
在本文另一实施例中,所述根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级进一步包括:根据所述历史校验结果,统计其中校验有误的错误次数,以及连续校验有误的连续数目;通过所述错误次数、所述连续数目和所述上传次数,确定所述上传方的报文优先级。
[0050]
在另一实施例中,通过错误次数和上传次数的商计算得到错误概率,然后通过错误概率和最大的连续数目共同确定上传方的报文优先级,其中若连续数目只有一个,则最大的连续数目为该连续数目,若连续数目有多个,则最大的连续数目为多个连续数目中最大者,连续数目的初始值为0,若上传方不存在连续上传文件的校验结果有误,则该上传方的最大的连续数目为0。
[0051]
在通过错误概率和最大的连续数目共同确定上传方的报文优先级时,若上传方的错误概率小于设定概率且最大的连续数目小于设定数目,则上传方的优先级为第一优先级,若上传方的错误概率不小于设定概率或者最大的连续数目不小于设定数目,则上传方的优先级为第二优先级,若上传方的错误概率不小于设定概率且最大的连续数目不小于设定数目,则上传方的优先级为第三优先级。其中第一优先级和第二优先级均大于所述设定优先级,第三优先级小于所述设定优先级,优先级顺序为第一优先级高于第二优先级,第二优先级高于第三优先级,设定数目可以根据实际情况确定,设定数目是大于0的数值。
[0052]
参照图8,在本文实施例中,所述保存该部分文件的校验结果进一步包括:s701:判断所述部分文件中的待校验数据的校验结果是否无误;s702:若是,则保存所述部分文件中的待校验数据;s703:若否,则在所述部分文件中记录所述待校验数据的错误,将记录后的所述部分文件上传至文件存储模块;接收并保存文件存储模块回传的问题报文,所述问题报文中包含所述部分文件的存储地址。
[0053]
判断部分文件中的待校验数据的校验结果是否无误,若是,将部分文件中的待校验数据保存至文件处理模块的数据库中,数据库在保存文件时会记录文件的上传方、上传时间等数据。若否,在文件中记录待校验数据的错误,并将有误的文件上传至文件存储模块。文件存储模块接收后会将问题报文传递至文件处理模块,问题报文中包含有误的文件的存储地址。由此可知,文件处理模块中只存储有校验无误的文件,而校验有误的文件均存储至文件存储模块。
[0054]
上传方可以通过文件上传模块查询该上传方上传的所有文件的上传结果,文件上传模块向文件处理模块发送查询请求,文件处理模块会将其上传过的所有文件的上传结果均返回至文件上传模块,对于其中校验有误的文件,文件处理模块会将文件的存储地址传递给文件上传模块,上传方可以通过点击存储地址查询具体的校验有误的文件进而查看错
误数据。
[0055]
在本文实施例中,还提供一种数据校验的方法,应用于文件上传模块,包括:获取文件,将文件上传至文件处理模块。
[0056]
除此之外,文件上传模块在将文件上传至文件处理模块后会接收到文件处理模块传递的上传成功或上传失败的提示信息。
[0057]
上传方可以通过文件上传模块查询该上传方上传的所有文件的上传结果,文件上传模块向文件处理模块发送查询请求,文件处理模块会将其上传过的所有文件的上传结果均返回至文件上传模块,对于其中校验有误的文件,文件处理模块会将文件的存储地址传递给文件上传模块,上传方可以通过点击存储地址查询具体的校验有误的文件进而查看错误数据。
[0058]
在本文实施例中,还提供一种数据校验的方法,应用于文件存储模块,包括:接收并存储文件处理模块上传的文件;生成包含文件存储地址的报文,将所述报文传递至文件处理模块。
[0059]
文件存储模块接收文件处理模块上传的文件后进行存储,将存储后的存储地址、上传方、上传时间等以报文的形式传递至文件处理模块。
[0060]
除此之外,文件存储模块会接收文件处理模块传递的校验结果有误的文件,并将有误的文件进行存储,将存储后的存储地址、上传方、上传时间等以问题报文的形式传递至文件处理模块。
[0061]
根据本文实施例中提到的上述数据校验的方法,本文另一实施例还提供一种数据校验的系统,包括:文件上传模块、文件处理模块和文件存储模块;所述文件上传模块,用于获取文件,将文件上传至文件处理模块;所述文件处理模块,用于接收文件上传模块上传的文件,所述文件中包含有待校验数据;将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;将所述报文存储至消息队列;判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果;所述文件存储模块,用于接收并存储文件处理模块上传的文件;生成包含文件存储地址的报文,将所述报文传递至文件处理模块。
[0062]
基于上述所述的一种数据校验的方法,本文实施例还提供一种数据校验的装置。所述的装置可以包括使用了本文实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本文实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本文实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0063]
具体地,图9是本文实施例提供的一种数据校验的装置一个实施例的模块结构示意图,参照图9所示,本文实施例提供的一种数据校验的装置,该装置即为本文实施例中所
述的文件处理模块,所述装置包括:接收子模块100、上传子模块200、存储子模块300、判断子模块400、校验子模块500。
[0064]
所述装置包括:接收子模块100,用于接收文件上传模块上传的文件,所述文件中包含有待校验数据;上传子模块200,用于将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;存储子模块300,用于将所述报文存储至消息队列;判断子模块400,用于判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;校验子模块500,用于对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。
[0065]
需要说明的是,本技术所涉及的用户数据(包括但不限于用户设备数据、用户个人数据等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的数据和信息。
[0066]
本实施例提供一种计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。
[0067]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0068]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0069]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0070]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0071]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器
(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0072]
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0073]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
[0074]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0075]
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0076]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
技术特征:
1.一种数据校验的方法,其特征在于,包括一用于提供文件存储功能的文件存储模块,一用于提供文件上传功能的文件上传模块,以及一用于进行文件处理的文件处理模块,所述方法应用于文件处理模块,包括:接收文件上传模块上传的文件,所述文件中包含有待校验数据;将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;将所述报文存储至消息队列;判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。2.根据权利要求1所述的数据校验的方法,其特征在于,所述对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果进一步包括:若所述报文被标记,则确定所述文件中待校验数据无误,并保存所述校验结果;若所述报文未被标记,则通过指定校验方式对所述文件中待校验数据进行校验,并保存所述校验结果。3.根据权利要求2所述的数据校验的方法,其特征在于,所述指定校验方式包括以下校验方法的一种或者多种:非空校验、数据逻辑校验和数据格式校验。4.根据权利要求1所述的数据校验的方法,其特征在于,所述按照报文的优先级顺序获取报文对应的文件进一步包括:当多个报文的优先级相同时,按照先进先出的顺序获取报文对应的文件。5.根据权利要求1所述的数据校验的方法,其特征在于,所述报文优先级的确定方法包括:根据所述报文,确定所述报文对应的文件的上传方;根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级。6.根据权利要求5所述的数据校验的方法,其特征在于,所述根据所述上传方的历史文件上传次数和历史校验结果,确定所述报文优先级进一步包括:根据所述历史校验结果,统计其中校验有误的错误次数;将所述错误次数除以所述上传次数,计算得到所述上传方的错误概率;提取所述上传方错误概率的十分位和百分位,得到所述报文的基准数据,其中所述错误概率的十分位作为所述基准数据的十位,所述错误概率的百分位作为所述基准数据的个位;根据所述报文的基准数据,确定所述报文优先级。7.根据权利要求6所述的数据校验的方法,其特征在于,所述根据所述报文的基准数据,确定所述报文优先级进一步包括:若所述报文的基准数据的十位数字为0或1,则所述报文优先级为第一优先级;若所述报文的基准数据的十位数字不为0或1,则:
获取所述消息队列中指定报文的基准数据,其中所述指定报文的基准数据的十位数字为所述消息队列中所有报文的基准数据的十位数字中除0和1外的最小者;将所述报文的基准数据的十位数字除以所述指定报文的基准数据的十位数字,得到报文初始优先级;若所述消息队列中存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级加1,得到所述报文优先级;若所述消息队列中不存在某一报文的基准数据的十位数字为0或1,则将所述报文初始优先级作为所述报文优先级。8.根据权利要求7所述的数据校验的方法,其特征在于,所述设定优先级的确定方法包括:获取所述消息队列中所有报文的优先级;若所述消息队列中不同报文的优先级存在不同,则选取设定报文的优先级作为设定优先级;若所述消息队列中所有报文的优先级均相同,则根据所述报文的基准数据的个位数字,重新确定所述消息队列中所有报文的优先级;根据重新确定的消息队列中所有报文的优先级,确定设定优先级。9.根据权利要求1所述的数据校验的方法,其特征在于,所述保存该部分文件的校验结果进一步包括:判断所述部分文件中的待校验数据的校验结果是否无误;若是,则保存所述部分文件中的待校验数据;若否,则在所述部分文件中记录所述待校验数据的错误,将记录后的所述部分文件上传至文件存储模块;接收并保存文件存储模块回传的问题报文,所述问题报文中包含所述部分文件的存储地址。10.一种数据校验的装置,其特征在于,包括一用于提供文件存储功能的文件存储模块,一用于提供文件上传功能的文件上传模块,以及一用于进行文件处理的文件处理模块,所述方法应用于文件处理模块,包括:接收子模块,用于接收文件上传模块上传的文件,所述文件中包含有待校验数据;上传子模块,用于将所述文件上传至文件存储模块,接收文件存储模块传递的报文,所述报文中包含有文件的存储地址;存储子模块,用于将所述报文存储至消息队列;判断子模块,用于判断所述消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;校验子模块,用于对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。
技术总结
本文提供了一种数据校验的方法和装置,其中方法应用于文件处理模块,包括:接收文件上传模块上传的文件,文件中包含有待校验数据;将文件上传至文件存储模块,接收文件上传模块上传的文件,文件中包含有待校验数据;将文件上传至文件存储模块,接收文件存储模块传递的报文,报文中包含有文件的存储地址;将报文存储至消息队列;判断消息队列的长度是否大于设定长度;若是,则根据所述存储地址,按照报文的优先级获取报文对应的文件,并标记优先级大于设定优先级的报文;若否,则根据所述存储地址,按照先进先出的顺序获取报文对应的文件;对所述文件中至少部分文件进行校验,并保存该部分文件的校验结果。本文能够提高数据校验的效率。率。率。
技术研发人员:杨磊 杨立东 张静普 祝力
受保护的技术使用者:四维世景科技(北京)有限公司
技术研发日:2023.09.08
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/