CN108874825B - 一种异常数据的校验方法和装置 - Google Patents
一种异常数据的校验方法和装置 Download PDFInfo
- Publication number
- CN108874825B CN108874825B CN201710333240.7A CN201710333240A CN108874825B CN 108874825 B CN108874825 B CN 108874825B CN 201710333240 A CN201710333240 A CN 201710333240A CN 108874825 B CN108874825 B CN 108874825B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- stored
- data
- abnormal data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种异常数据的校验方法和装置,涉及计算机技术领域。该方法包括:获取预设数据的已存文件的信息和所述预设数据的远程源文件的信息;根据所述远程源文件的信息验证所述已存文件,并保存所述验证得到的所述已存文件的异常数据的信息,其中,验证已存文件包括:验证已存文件的数量、每个文件大小,以及验证所述已存文件是否包括空文件;读取保存的异常数据的信息,并根据所述异常数据的信息从所述远程源文件获取所述异常数据的校正数据;将所述已存文件中的所述异常数据更新为所述校正数据。能够完善数据校验逻辑,满足多种数据异常场景,出现大量数据异常时能够快速修复下载,减缓延迟,且避免和HBase客户端耦合。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种异常数据的校验方法和装置、电子设备、计算机可读介质。
背景技术
随着大数据技术的兴起,大多数业务都需要从不同的数据源采集数据(网站爬虫,其他业务系统,关系数据等)。在数据采集的过程中难免会出现各种问题,如数据丢失、数据重复等问题,因此需要有一个完善的数据质量校验解决方案。
现有的数据质量校验解决方案利用Python(一种面向对象的解释型计算机程序设计语言)调用shell(计算机壳)命令进行数据验证和补采操作,其中,在数据验证阶段只验证下载后的文件的大小,且使用shell命令方式访问保存数据验证所得异常数据的数据库(HBase),此外,在数据补采阶段采用Python单线程的方式进行数据补采。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、数据校验逻辑简单,只验证下载后的文件的大小,且验证文件大小的方式不合理;
2、Python单线程方式进行数据修复,不能满足数据量比较大的情况;
3、使用shell命令操作HBase与HBase客户端进行耦合,需要先使用HBase shell进入HBase客户端模式,才能进行相关操作。
发明内容
有鉴于此,本发明实施例提供一种异常数据的校验方法和装置、电子设备、计算机可读介质,能够完善数据校验逻辑,满足多种数据异常场景,出现大量数据异常时能够快速修复下载,减缓延迟,且避免和HBase客户端耦合。
为实现上述目的,根据本发明实施例的一个方面,提供了一种异常数据的校验方法。
一种异常数据的校验方法,包括:获取预设数据的已存文件的信息和所述预设数据的远程源文件的信息;根据所述远程源文件的信息验证所述已存文件,并保存所述验证得到的所述已存文件的异常数据的信息,其中,验证所述已存文件,包括:验证所述已存文件的数量、每个文件大小,以及验证所述已存文件是否包括空文件;读取保存的所述异常数据的信息,并根据所述异常数据的信息从所述远程源文件获取所述异常数据的校正数据;将所述已存文件中的所述异常数据更新为所述校正数据。
可选地,已存文件的信息包括所述已存文件的大小信息和数量信息,所述远程源文件的信息包括所述远程源文件的IP地址信息以及所述远程源文件的大小信息,并且,验证所述已存文件的数量,包括:比对所述已存文件的数量和所述远程源文件的IP地址数是否一致,如果一致,则验证通过,否则验证不通过;验证所述已存文件的每个文件大小,包括:判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则验证通过,否则验证不通过;验证所述已存文件是否包括空文件,包括:将所述已存文件中每个文件大小与预设值进行比对,若比对一致,则所述已存文件包括空文件,否则所述已存文件不包括空文件。
可选地,所述异常数据的信息保存在HBase数据库中,且通过curl(利用URL语法在命令行方式下工作的开源文件传输工具)命令访问所述HBase数据库以读取所述异常数据的信息。
可选地,通过多并发线程获取所述异常数据的校正数据。
可选地,保存所述验证得到的所述已存文件的异常数据的信息之后,还包括:根据所述异常数据的信息生成监控报警消息。
可选地,将所述已存文件中的所述异常数据更新为所述校正数据之前,还包括:压缩处理所述校正数据。
根据本发明实施例的另一方面,提供了一种异常数据的校验装置。
一种异常数据的校验装置,包括:获取模块,用于获取预设数据的已存文件的信息和所述预设数据的远程源文件的信息;验证模块,用于根据所述远程源文件的信息验证所述已存文件,并保存所述验证得到的所述已存文件的异常数据的信息,其中,验证所述已存文件,包括:验证所述已存文件的数量、每个文件大小,以及验证所述已存文件是否包括空文件;下载模块,用于读取保存的所述异常数据的信息,并根据所述异常数据的信息从所述远程源文件获取所述异常数据的校正数据;校正模块,用于将所述已存文件中的所述异常数据更新为所述校正数据。
可选地,已存文件的信息包括所述已存文件的大小信息和数量信息,所述远程源文件的信息包括所述远程源文件的IP地址信息以及所述远程源文件的大小信息,并且,所述验证模块还用于:比对所述已存文件的数量和所述远程源文件的IP地址数是否一致,如果一致,则所述已存文件的数量验证通过,否则验证不通过;判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则所述已存文件的每个文件大小验证通过,否则验证不通过;将所述已存文件中每个文件大小与预设值进行比对,若比对一致,则所述已存文件包括空文件,否则所述已存文件不包括空文件。
可选地,所述验证模块还用于:将所述异常数据的信息保存在HBase数据库中,且所述下载模块还用于:通过curl命令访问所述HBase数据库以读取所述异常数据的信息。
可选地,所述下载模块还用于:通过多并发线程获取所述异常数据的校正数据。
可选地,还包括监控模块:用于根据所述异常数据的信息生成监控报警消息。
可选地,还包括压缩模块:用于压缩处理所述校正数据。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现异常数据的校验方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现异常数据的校验方法。
上述发明中的一个实施例具有如下优点或有益效果:根据远程源文件的信息验证已存文件,其中,验证已存文件包括验证已存文件的数量、每个文件大小,以及验证已存文件是否包括空文件,能够完善数据校验逻辑,实现文件验证和自动补采,满足多种数据异常场景;通过多并发线程获取异常数据的校正数据,使得在出现大量数据异常时能够快速修复下载,充分利用服务器资源,减缓延迟;通过curl命令访问HBase数据库以读取异常数据的信息,可避免和HBase客户端耦合。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例可以应用于其中的示例性系统架构图;
图2是根据本发明实施例的异常数据的校验方法的主要步骤示意图;
图3是根据本发明实施例的异常数据的校验方法的优选流程示意图示意图;
图4是根据本发明实施例的异常数据的校验装置的主要模块示意图示意图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本发明实施例的异常数据的校验方法或异常数据的校验装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送数据等。终端设备101、102、103上可以安装有各种数据校验应用,例如数据采集应用、数据压缩应用等。
终端设备101、102、103可以是具有显示屏并且支持数据校验的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103校验的数据提供支持的后台管理服务器。后台管理服务器可以对接收到的数据校验请求等数据进行处理,并将处理结果(例如补采的数据)反馈给终端设备。
需要说明的是,本发明实施例所提供的异常数据的校验方法一般由服务器105执行,相应地,异常数据的校验装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2是根据本发明实施例的异常数据的校验方法的主要步骤示意图。
如图2所示,本发明实施例的异常数据的校验方法主要包括如下的步骤S201至步骤S204。
步骤S201:获取预设数据的已存文件的信息和预设数据的远程源文件的信息。
其中,已存文件的信息可以包括已存文件的大小信息和数量信息,远程源文件的信息可以包括远程源文件的IP地址信息以及远程源文件的大小信息。
预设数据的已存文件可以是存储在HDFS(Hadoop分布式文件系统)中的预设数据文件。
已存文件的信息还可以包括预设数据的已存文件的HDFS文件路径、文件压缩标识、文件下载粒度等信息。
远程源文件的信息还可以包括远程源文件的文件名、远程文件路径等信息。
已存文件的信息和远程源文件的信息均可以根据预先保存的配置文件获取,该配置文件主要配置远程源文件所在IP地址、文件名、远程文件路径,以及已存文件的HDFS文件路径、文件压缩标识、文件下载粒度。通过远程源文件所在IP地址、文件名、远程文件路径可以获取该预设IP地址的预设远程文件路径下对应一预设文件名的远程源文件的大小信息。通过已存文件的HDFS文件路径、文件压缩标识可以获取预设HDFS文件路径下对应预设文件压缩标识的已存文件的大小信息。文件下载粒度表示下载文件的时间单位,文件下载粒度可以为小时或分钟等,以文件下载粒度为小时为例,表示按照小时下载文件,根据不同的业务场景可使用不同的下载粒度,以充分利用系统资源。
步骤S202:根据远程源文件的信息验证已存文件,并保存验证得到的已存文件的异常数据的信息,其中,验证已存文件,包括:验证已存文件的数量、每个文件大小,以及验证已存文件是否包括空文件。
验证该已存文件除了得到已存文件的异常数据的信息,还可以得到该已存数据的正常数据的信息,并且,在保存验证得到的已存文件的异常数据的信息的同时,还可以保存该验证得到的已存数据的正常数据的信息。
该正常数据的信息和异常数据的信息分别包括该正常数据和异常数据对应的远程源文件的IP地址、文件名,远程文件路径等信息。
具体地,验证已存文件的数量,具体可以包括:比对已存文件的数量和远程源文件的IP地址数是否一致,如果一致,则验证通过,否则验证不通过。
远程源文件的每个IP地址在一定时间内产生文件的个数通常与文件下载粒度相关,例如,文件下载粒度为小时,那么每个IP地址每小时产生一个文件,在进行文件下载时从每个IP地址相应可以下载一个文件,因此,在文件下载正常的情况下,已存文件的数量和远程源文件的IP地址数一致,通过IP地址数可以验证已存文件的数量是否正确。
验证已存文件的每个文件大小,具体可以包括:判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则验证通过,否则验证不通过。由于从远程下载文件之后,在将下载到本地的文件上传到HDFS之前需要对下载到本地文件做LZO压缩(Lempel-Ziv-Oberhumer压缩,一种数据压缩算法),因此,现有技术仅根据已存文件与远程源文件之间做文件大小比较来验证每个文件大小是否正确是不合理的,本发明实施例使用两个预设阈值(大预设阈值和小预设阈值)来控制远程源文件的大小与已存文件的大小的比值在预设的区间范围内,当该比值落在该预设的区间范围内,则该文件大小正确。用于表示预设的区间范围的两个预设阈值可以根据需要自行设定,其中,大预设阈值可以设置为大于1的值,例如5;小预设阈值可以设置为小于1的值,例如0.5;相应地,预设的区间范围例如为[0.5~5]。通常情况下,采用LZO压缩后的文件的大小小于被压缩之前的文件大小,因此大预设阈值可以设置为大于1的值。当已存文件为空或者已存文件过小(例如小于42字节,该42字节为LZO压缩空文件后的文件大小)时,已存文件压缩后的大小可能大于被压缩之前的大小,例如,5字节的已存文件被压缩后的大小达到超过42字节,因此,小预设阈值可以设置为小于1的值。
验证已存文件是否包括空文件,具体可以包括:将已存文件中每个文件大小与预设值进行比对,若比对一致,则已存文件包括空文件,否则已存文件不包括空文件。
具体地,LZO压缩空文件后的文件大小通常为42字节左右,因此预设值可以设置为42字节,验证已存文件是否包括空文件则可以将已存文件中每个文件大小与该42字节(预设值)进行比对,若比对一致,则已存文件包括空文件,否则已存文件不包括空文件。
根据远程源文件的信息验证已存文件,得到已存文件的正常数据的信息和异常数据的信息,该正常数据的信息和异常数据的信息可以保存在HBase数据库中,HBase是分布式的列式数据库,HBase中异常数据的信息可设置状态为1(失败状态),正常数据的信息可设置状态为0(成功状态),例如,某一个小时的文件下载有缺失,那么就会把缺失的文件信息记录到HBase数据库中,并且记录状态为1。
保存已存文件的异常数据的信息之后,还可以根据异常数据的信息生成监控报警消息。
步骤S203:读取保存的异常数据的信息,并根据异常数据的信息从远程源文件获取异常数据的校正数据。
其中,通过curl命令访问HBase数据库以读取异常数据的信息。curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl命令调用HBase Restful(表述性状态传递)API(应用程序编程接口),可以通过网络访问的方式(例如访问HBase的http地址或端口)访问HBase数据库,从而能够避免和HBase客户端耦合。根据row_key(行主键)查询HBase中状态为1的数据,可读取异常数据的信息,例如该异常数据对应的远程源文件的IP地址、文件名,远程文件路径等信息。
异常数据的校正数据为按照异常数据对应的远程源文件的IP地址、文件名,远程文件路径等信息重新从远程数据源下载的数据。
步骤S204:将已存文件中的异常数据更新为校正数据。
可以根据远程源文件的IP地址列表,通过多并发线程获取异常数据的校正数据。
将已存文件中的异常数据更新为校正数据之前,还可以压缩处理该校正数据。具体地可以采用LZO压缩(Lempel-Ziv-Oberhumer压缩,一种数据压缩算法)的方式压缩该校正数据。
将已存文件中的异常数据更新为校正数据,具体地,可以将校正数据上传到HDFS(Hadoop分布式文件系统),以替换HDFS中保存的该下载的异常数据。
图3是根据本发明实施例的异常数据的校验方法的优选流程示意图示意图。
如图3所示,本发明实施例的异常数据的校验方法的优选流程包括如下的步骤S301至步骤S309。
步骤S301:读取保存的配置文件,以通过配置文件获取预设数据的已存文件的信息和预设数据的远程源文件的信息。
配置文件可以包括远程源文件所在IP地址、文件名、远程文件路径,以及已存文件的HDFS文件路径、文件压缩标识、文件下载粒度。已存文件的信息可以包括已存文件的大小信息和数量信息,远程源文件的信息可以包括远程源文件的IP地址信息以及远程源文件的大小信息。已存文件的信息还可以包括预设数据的已存文件的HDFS文件路径、文件压缩标识、文件下载粒度等信息。通过配置文件可以读取到远程源文件和已存文件的相关信息,且该远程源文件和已存文件的相关信息还可按照配置的文件下载粒度来读取,以文件下载粒度为小时为例,需读取当前小时之前的所有小时内下载的已存文件的信息和对应的远程源文件的信息。
步骤S302:判断已存文件是否异常,若是,则执行步骤S303,若否,则执行步骤S305。
步骤S303:将已存文件的异常数据的信息发送到HBase数据库。
步骤S304:根据异常数据的信息生成监控报警消息,然后执行步骤S306。
步骤S305:生成数据验证成功的标识,然后结束流程。
步骤S306:读取保存的异常数据的信息。
步骤S307:根据异常数据的信息从远程数据源重新下载异常数据对应的文件,以得到异常数据的校正数据。
具体地,根据异常数据的信息(如远程源文件的IP地址、文件名,远程文件路径等信息),调用文件下载程序从远程服务器重新下载异常数据对应的文件,已得到异常数据的校正数据。
步骤S308:压缩处理该异常数据的校正数据。
步骤S309:将压缩后的校正数据上传到HDFS,以更新HDFS中保存的异常数据,然后结束流程。
上述优选流程中,可以通过配置定时任务,定时从HBase中读取下载异常的文件信息(异常数据),从这些异常数据中解析出远程源文件的IP地址、文件名,远程文件路径等信息,然后调用文件下载程序从远程服务器上重新下载异常数据对应的文件,上传该重新下载的文件到HDFS之后,在下一个定时任务启动时,数据验证程序还可再次校验HDFS中的该文件,验证成功后,会将异常数据的失败状态(状态为1)更新成成功状态(状态为0)。
图4是根据本发明实施例的异常数据的校验装置的主要模块示意图示意图。
如图4所示,本发明实施例的异常数据的校验装置400主要包括:获取模块401、验证模块402、下载模块403、校正模块404。
获取模块401,用于获取预设数据的已存文件的信息和预设数据的远程源文件的信息。
已存文件的信息可以包括已存文件的大小信息和数量信息,远程源文件的信息包括远程源文件的IP地址信息以及远程源文件的大小信息。
验证模块402,用于根据远程源文件的信息验证已存文件,并保存验证得到的已存文件的正常数据的信息和异常数据的信息,其中,验证已存文件,包括:验证已存文件的数量、每个文件大小,以及验证已存文件是否包括空文件。
验证模块402还可以用于:比对已存文件的数量和远程源文件的IP地址数是否一致,如果一致,则已存文件的数量验证通过,否则验证不通过;
判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则已存文件的每个文件大小验证通过,否则验证不通过;
将已存文件中每个文件大小与预设值进行比对,若比对一致,则已存文件包括空文件,否则已存文件不包括空文件。
验证模块402还可以用于:将异常数据的信息保存在HBase数据库中。
异常数据的校验装置400还可以包括监控模块,该监控模块用于根据异常数据的信息生成监控报警消息。
下载模块403,用于读取保存的异常数据的信息,并根据异常数据的信息从远程源文件获取异常数据的校正数据。
下载模块403还可以用于通过curl命令访问HBase数据库以读取异常数据的信息。
下载模块403还可以用于通过多并发线程获取异常数据的校正数据。
异常数据的校验装置400还可以包括压缩模块,该压缩模块用于压缩处理校正数据。
校正模块404,用于将已存文件中的异常数据更新为校正数据。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文异常数据的校验方法的主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行异常数据的校验方法的主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤示意图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,主要步骤示意图中的每个方框、以及主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块401、验证模块402、下载模块403、校正模块404。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块401还可以被描述为“用于获取预设数据的已存文件的信息和预设数据的远程源文件的信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取预设数据的已存文件的信息和预设数据的远程源文件的信息;根据远程源文件的信息验证已存文件,并保存验证得到的已存文件的异常数据的信息,其中,验证已存文件,包括:验证已存文件的数量、每个文件大小,以及验证已存文件是否包括空文件;读取保存的异常数据的信息,并根据异常数据的信息从远程源文件获取异常数据的校正数据;将已存文件中的异常数据更新为校正数据。
根据本发明实施例的技术方案,根据远程源文件的信息验证已存文件,其中,验证已存文件包括验证已存文件的数量、每个文件大小,以及验证已存文件是否包括空文件,能够完善数据校验逻辑,实现文件验证和自动补采,满足多种数据异常场景;通过多并发线程获取异常数据的校正数据,使得在出现大量数据异常时能够快速修复下载,充分利用服务器资源,减缓延迟;通过curl命令访问HBase数据库以读取异常数据的信息,可避免和HBase客户端耦合。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种异常数据的校验方法,其特征在于,包括:
获取预设数据的已存文件的信息和所述预设数据的远程源文件的信息;所述已存文件的信息包括所述已存文件的大小信息和数量信息,所述远程源文件的信息包括所述远程源文件的IP地址信息以及所述远程源文件的大小信息;
根据所述远程源文件的信息验证所述已存文件,并保存所述验证得到的所述已存文件的异常数据的信息,其中,验证所述已存文件,包括:验证所述已存文件的数量、每个文件大小,以及验证所述已存文件是否包括空文件;验证所述已存文件的数量,包括:比对所述已存文件的数量和所述远程源文件的IP地址数是否一致,如果一致,则验证通过,否则验证不通过,其中每个IP地址在一定时间内产生文件的个数与配置的文件下载粒度相关;验证所述已存文件的每个文件大小,包括:判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则验证通过,否则验证不通过;验证所述已存文件是否包括空文件,包括:将所述已存文件中每个文件大小与预设值进行比对,若比对一致,则所述已存文件包括空文件,否则所述已存文件不包括空文件;
通过配置定时任务定时读取保存的所述异常数据的信息,并根据所述异常数据的信息从所述远程源文件获取所述异常数据的校正数据;
将所述已存文件中的所述异常数据更新为所述校正数据,并在下一个定时任务启动时再次校验所述校正数据。
2.根据权利要求1所述的方法,其特征在于,所述异常数据的信息保存在HBase数据库中,且通过curl命令访问所述HBase数据库以读取所述异常数据的信息。
3.根据权利要求1所述的方法,其特征在于,通过多并发线程获取所述异常数据的校正数据。
4.根据权利要求1所述的方法,其特征在于,保存所述验证得到的所述已存文件的异常数据的信息之后,还包括:根据所述异常数据的信息生成监控报警消息。
5.根据权利要求1所述的方法,其特征在于,将所述已存文件中的所述异常数据更新为所述校正数据之前,还包括:压缩处理所述校正数据。
6.一种异常数据的校验装置,其特征在于,包括:
获取模块,用于获取预设数据的已存文件的信息和所述预设数据的远程源文件的信息;所述已存文件的信息包括所述已存文件的大小信息和数量信息,所述远程源文件的信息包括所述远程源文件的IP地址信息以及所述远程源文件的大小信息;
验证模块,用于根据所述远程源文件的信息验证所述已存文件,并保存所述验证得到的所述已存文件的异常数据的信息,其中,验证所述已存文件,包括:验证所述已存文件的数量、每个文件大小,以及验证所述已存文件是否包括空文件;验证所述已存文件的数量,包括:比对所述已存文件的数量和所述远程源文件的IP地址数是否一致,如果一致,则验证通过,否则验证不通过,其中每个IP地址在一定时间内产生文件的个数与配置的文件下载粒度相关;验证所述已存文件的每个文件大小,包括:判断远程源文件的大小与已存文件的大小的比值是否在预设的区间范围内,若是,则验证通过,否则验证不通过;验证所述已存文件是否包括空文件,包括:将所述已存文件中每个文件大小与预设值进行比对,若比对一致,则所述已存文件包括空文件,否则所述已存文件不包括空文件;
下载模块,用于通过配置定时任务定时读取保存的所述异常数据的信息,并根据所述异常数据的信息从所述远程源文件获取所述异常数据的校正数据;
校正模块,用于将所述已存文件中的所述异常数据更新为所述校正数据,并在下一个定时任务启动时再次校验所述校正数据。
7.根据权利要求6所述的装置,其特征在于,所述验证模块还用于:将所述异常数据的信息保存在HBase数据库中,
且所述下载模块还用于:通过curl命令访问所述HBase数据库以读取所述异常数据的信息。
8.根据权利要求6所述的装置,其特征在于,所述下载模块还用于:
通过多并发线程获取所述异常数据的校正数据。
9.根据权利要求6所述的装置,其特征在于,还包括监控模块:用于根据所述异常数据的信息生成监控报警消息。
10.根据权利要求6所述的装置,其特征在于,还包括压缩模块:用于压缩处理所述校正数据。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710333240.7A CN108874825B (zh) | 2017-05-12 | 2017-05-12 | 一种异常数据的校验方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710333240.7A CN108874825B (zh) | 2017-05-12 | 2017-05-12 | 一种异常数据的校验方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874825A CN108874825A (zh) | 2018-11-23 |
CN108874825B true CN108874825B (zh) | 2021-11-02 |
Family
ID=64319549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710333240.7A Active CN108874825B (zh) | 2017-05-12 | 2017-05-12 | 一种异常数据的校验方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874825B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832259B (zh) * | 2019-04-12 | 2023-09-12 | 中国联合网络通信集团有限公司 | Json数据生成方法及设备 |
CN110096402B (zh) * | 2019-05-06 | 2023-08-22 | 苏州盛科通信股份有限公司 | 对芯片数据异常处理逻辑的验证装置和方法 |
CN113076283B (zh) * | 2021-04-06 | 2022-02-18 | 中移(上海)信息通信科技有限公司 | 文件一致性验证方法、装置及电子设备 |
CN113645198B (zh) * | 2021-07-23 | 2023-12-26 | 天津航远信息技术有限公司 | 一种计算机网络信息安全监护方法 |
CN114756012B (zh) * | 2022-06-15 | 2022-09-06 | 杭州康吉森自动化科技有限公司 | 一种控制系统组态信息校验方法及控制系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761162A (zh) * | 2014-01-11 | 2014-04-30 | 深圳清华大学研究院 | 分布式文件系统的数据备份方法 |
CN104361437A (zh) * | 2014-10-31 | 2015-02-18 | 北京思特奇信息技术股份有限公司 | 一种多样化数据接口质量检查管理的方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060133410A (ko) * | 2005-06-20 | 2006-12-26 | 엘지전자 주식회사 | 복합 미디어 장치에서 파일 검색 및 파일 데이터베이스관리 방법 |
CN101216834B (zh) * | 2007-12-29 | 2012-09-05 | 腾讯科技(深圳)有限公司 | 一种文件下载方法、系统、装置与服务器 |
CN102752326B (zh) * | 2011-04-19 | 2016-05-25 | 腾讯科技(深圳)有限公司 | 在下载文件时处理数据的方法、服务器和系统 |
CN103646082B (zh) * | 2013-12-12 | 2017-04-05 | 北京奇安信科技有限公司 | 一种文件校验的方法及装置 |
US8924429B1 (en) * | 2014-03-18 | 2014-12-30 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
CN104462562B (zh) * | 2014-12-29 | 2018-05-18 | 浪潮软件集团有限公司 | 一种基于数据仓库自动化的数据迁移系统及方法 |
CN104699771B (zh) * | 2015-03-02 | 2019-09-20 | 北京京东尚科信息技术有限公司 | 数据同步方法和集群节点 |
CN104991790B (zh) * | 2015-06-09 | 2018-05-25 | 北京奇虎科技有限公司 | 一种文件的升级发布方法和装置 |
CN106649056B (zh) * | 2015-07-16 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 一种数据检测方法和装置 |
CN106227668B (zh) * | 2016-07-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
-
2017
- 2017-05-12 CN CN201710333240.7A patent/CN108874825B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761162A (zh) * | 2014-01-11 | 2014-04-30 | 深圳清华大学研究院 | 分布式文件系统的数据备份方法 |
CN104361437A (zh) * | 2014-10-31 | 2015-02-18 | 北京思特奇信息技术股份有限公司 | 一种多样化数据接口质量检查管理的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108874825A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874825B (zh) | 一种异常数据的校验方法和装置 | |
CN110716895B (zh) | 目标数据归档方法、装置、计算机设备及介质 | |
CN111198813B (zh) | 一种接口测试方法和装置 | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN109756568B (zh) | 文件的处理方法、设备及计算机可读存储介质 | |
US20190012138A1 (en) | Method and apparatus for providing speech service | |
CN112596920A (zh) | 一种消息处理的方法、装置、电子设备和存储介质 | |
US10938773B2 (en) | Method and apparatus for synchronizing contact information and medium | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN116737662A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN112084254A (zh) | 一种数据同步方法和系统 | |
CN112149392A (zh) | 一种富文本编辑方法和装置 | |
CN107547437B (zh) | 应用识别方法及装置 | |
CN112948195A (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN112306723B (zh) | 一种应用于小程序的运行信息获取方法和装置 | |
CN112333262A (zh) | 数据更新提示方法、装置、计算机设备及可读存储介质 | |
CN112463616A (zh) | 一种面向Kubernetes容器平台的混沌测试方法和装置 | |
CN113094211B (zh) | 一种备份数据处理的方法和装置 | |
CN111949472A (zh) | 一种记录应用日志的方法及装置 | |
CN111179097B (zh) | 保单批改的方法、装置、电子设备和存储介质 | |
CN109388536B (zh) | 一种数据收集的方法和装置 | |
CN113821248B (zh) | 车机端软件的服务方法、车机端软件及其相关设备 | |
CN113760587B (zh) | 一种处理数据的方法和装置 | |
CN115794165A (zh) | 一种应用升级方法、装置、eps及介质 | |
CN110011767B (zh) | 用于tcp连接备份的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |