CN110647526B - 批量数据处理方法、装置、计算机设备及存储介质 - Google Patents
批量数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110647526B CN110647526B CN201910755609.2A CN201910755609A CN110647526B CN 110647526 B CN110647526 B CN 110647526B CN 201910755609 A CN201910755609 A CN 201910755609A CN 110647526 B CN110647526 B CN 110647526B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- item
- exception
- abnormality
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种批量数据处理方法、装置、计算机设备及存储介质。所述方法包括:将批量数据划分为若干个片段化数据;自运行状态记录表中选取运行记录时间的数值最大的历史运行记录项并将其记录为最末成功运行项;获取创建时间在最末成功运行项的运行记录时间与当前时间之间的所有异常信息,从获取的所有异常信息中确定最末位置的结束值,确定最末位置的结束值所属的异常信息的创建时间;在确认最末位置的结束值所属的异常信息的创建时间大于最末成功运行项的运行记录时间时,根据最末位置的结束值确定批量数据中下一个待处理的片段化数据。通过本发明提供的方法可以实现批量数据的数据高可用性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种批量数据处理方法、装置、计算机设备及存储介质。
背景技术
目前处理批量数据的方法包括通过增加服务器、建立集群、引入消息中间件、引入成熟jar包、使用流行框架和现有的项目系统等各种方式;但通过增加服务器方法会增加设备投入成本和公司系统的运营维护成本;建立集群的方式对于具体的逻辑来说,消息中间组件只能保证数据传递的高可用,对于前后逻辑来说,还需额外设计完整的逻辑方案来确保业务运行的高可用;通过引入成熟jar包方法对于不同的批量数据处理的逻辑都不一样(即应用场景不一样),因此需要准备多个不同应用场景的jar包,或需要对jar包功能详细了解才能更加自如地接入,因此存在适用性局限和接入学习成本高的问题;使用流行框架对于老旧的系统来说,流行框架并不适用于老旧的系统;而现有的项目系统代码冗余量较大。因此,亟需一种可以解决上述问题的批量数据处理方法。
发明内容
基于此,有必要针对上述技术问题,提供一种批量数据处理方法、装置、计算机设备及存储介质,可以实现批量数据在数据处理过程中的数据高可用性。
一种批量数据处理方法,包括:
接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
一种批量数据处理装置,包括:
划分模块,用于接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
第一获取模块,用于自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
选取模块,用于检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
确定模块,用于获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
插入模块,用于在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述批量数据处理方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述批量数据处理方法。
上述批量数据处理方法、装置、计算机设备及存储介质,相比之前的数据处理方法,本发明只需从创建的错误信息记录表和运行状态记录表中来进行批量数据分析、批量数据处理、批量数据记录等,无需增加多余的服务器,也无需搭建集群等,因此可大大节省资源配置和能耗,本发明也无需接入过多的系统性能(即无需准备多个与不同应用场景相适应的jar包等),并且对于新旧的系统来说都很轻易接上,本发明也解决了宕机等意外现象造成的数据不连续性的问题,实现整体数据处理流程中数据的高可用性(如运行状态记录表中的历史运行记录项和错误信息记录表中的异常信息在后续的数据处理过程中,可对宕机等意外现象进行确定,并解决由于宕机等意外现象造成的错误信息记录表中数据不准确的问题等),本方案也将批量数据中异常信息的查询过程与异常处理过程分不同线程同时进行,相互不干涉,如此,提升了查询和异常处理效率,也可以节省服务器内存的占用。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中批量数据处理方法的一应用环境示意图;
图2是本发明一实施例中批量数据处理方法的一流程图;
图3是本发明一实施例中批量数据处理方法的步骤S40之后的流程示意图;
图4是本发明一实施例中批量数据处理方法的步骤S60的流程示意图;
图5是本发明一实施例中批量数据处理方法的步骤S602的流程示意图;
图6是本发明一实施例中批量数据处理方法的步骤S40之后和步骤S60之前的流程示意图;
图7是本发明一实施例中批量数据处理装置的结构示意图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的批量数据处理方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务器进行通信。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种批量数据处理方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10,接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
具体地,通过预设的获取方式获取批量数据,该批量数据按照预设的划分队列将被划分为多个片段化数据,其中,预设的获取方式包括接口拉取形式、从表中直接获取形式和被推送形式,其中被推送形式方式依赖对方的推送策略,同时也可以将对方推送来的批量数据先存储至表格,然后从表格中直接获取批量数据;划分队列是指将一个批量数据的数据量划分为均等大小数据量的若干个片段化数据。在本实施例中,可通过多种获取方式获取到所需的批量数据,保证了多种数据来源。
在一实施例中,单次最大处理量的大小等于一个片段化数据(分页)的数据量大小;每一个片段化数据存在一个初始数据和最末数据,其中,初始数据为此片段化数据的最开始的序列值(即可以指序号)对应的数据,最末数据为此片段化数据的结束的序列值(比如一个片段化数据为1000至2000,1000为初始数据,2000为最末数据)所对应的数据;且单次最大处理量的数据量大小是由计算机的运算性能所决定的,因此可以根据计算机的运算性能设定单次最大处理量,其中,计算机的运算性能越好,单次最大处理量就越大,从而可以提高分页处理过程(也即将批量数据分为若干个片段化数据并对其进行数据处理的过程,数据处理包括数据异常查询、异常处理等)的效率,节约对整个批量数据进行数据处理过程(也即批量数据的运行)的总时长。
进一步地,所述步骤S10之前,还包括:
自预设的数据源中获取所述批量数据,且所述批量数据在所述数据源中被禁止执行限制操作。可理解地,预设的数据源中的数据,一定不能进行增删操作,只能进行更新操作(此说明将被作为实施本发明时的前提条件)。在本实施例中,通过限制了预设的数据源中的数据的操作,从而可以保证不会影响到容错时获取数据的幂等性。
S20,自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
历史运行记录表中的历史运行记录项包括但不限于一个批量数据对应的以下表格属性:第一服务类型(一个服务名称,可用字母、数字等进行命名)、运行状态(通过Y和N表示,Y代表运行成功,N代表运行失败)、运行记录时间、第一数据效力状态(代表批量数据的有效状态,开启或停止分别用q和t表示)和错误日志(记录问题的日志,问题可以包括数据库连接失败或远程接口连接失败等原因)。
可理解地,获取错误信息记录表的形式可以有多种,比如通过预设接口(根据该预设接口的接口地址以及所需要获取的错误信息表的唯一标识)获取或其他端口数据源,或者直接从数据库获取,且所述错误信息记录表可以从其他数据(比如数据库表)中提取,此时需要首先获取该错误信息记录表中的异常信息所对应的表格属性。
错误信息记录表记录的异常信息中包括但不限于一项片段化数据对应的以下表格属性:第二服务类型(一个服务名称,可用字母、数字等进行命名)、起始值(可为异常信息对应的片段化数据中的初始数据时间戳或序列值)、结束值(可为异常信息对应的片段化数据中的最末数据时间戳或序列值)、页码(一个批量数据被划分为多个片段化数据,且每个片段化数据可代表页码其中的一页,可按照划分队列中的顺序为其定义页码,其中,第一个片段化数据可以定义为第一页,以此类推)、数据异常(通过Y和N表示,Y代表不存在数据异常,N代表存在数据异常)、异常原因(记录分页查询或片段化数据异常查询过程中抛出的异常或其他过程中主动抛出的特殊异常,例如:数据重复等)、附加字段(其他程序特殊功能需要特殊备注的信息,但是通常为空)和第二数据效力状态(代表片段化数据的有效状态,开启或停止分别用q和t表示)。
可理解地,通过预设接口获取的错误信息记录表记录的异常信息中可能还包括以下表格属性:接口拉取参数(通过接口拉取批量数据传递的JSON参数,即拉取批量数据的条件数据)、接口地址(获取批量数据的接口地址)。
可理解地,错误信息记录表中每一项异常信息关联一个创建时间,且异常信息的创建时间是指一项异常信息对应的一个片段化数据运行完毕之后被记录在错误信息记录表中的一个时间点,且异常信息包括与存在数据异常的片段化数据对应的异常信息和与不存在数据异常的片段化数据对应的异常信息。
在本实施例中,预设数据库中获取错误信息记录表和运行状态记录表,可直接反映出在接收到分段处理指令之前,对于批量数据的获取以及数据处理过程中的具体运行状态或者片段化数据的数据异常查询过程中具体的数据异常状态,如此,一方面为后续对与本次分段处理指令对应的批量数据中的片段化数据进行数据处理(数据异常查询或者异常处理等)提供数据参照,另一方面也可以便于对上述运行失败的运行状态或者异常信息中存在的数据异常进行及时处理。
S30,检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
可理解地,每一个批量数据全部处理完都在运行状态记录表中关联一个历史运行记录项,在一个批量数据成功运行完毕之后,会在运行状态记录表中记录一个历史运行记录项。在本实施例中,从所有运行状态为运行成功的历史运行记录项中选取一个运行记录时间的数值最大的历史运行记录项并将其记录为最末成功运行项。
可理解地,一方面,在对批量数据运行的过程中,由于宕机等意外现象导致该批量数据的运行过程中止,此后,服务器会重新启动(后续简称为宕机重启)运行过程,此时,在重新启动之后,服务器会接收到上述启动指令;另一方面,在批量数据的正常的运行过程中(未发生过宕机等意外现象),对一个批量数据的运行过程完毕并关闭与运行相关的应用程序之后,此时,服务器也会重新启动(简称为正常启动)运行过程,此时,在重新启动之后,服务器也会接收到上述启动指令。
S40,获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
可理解地,每个异常信息中都包含一个结束值(可为异常信息对应的片段化数据中的最末数据),且每一个异常信息都会与一个创建时间(是指一个片段化数据运行完毕之后将其对应信息作为一项异常信息记录在错误信息记录表中的时间点)关联;而最末位置的结束值是指所有异常信息中的结束值之中,排列在划分队列中(按照执行时间或者序号排序)的最末一位的结束值。
在本实施例中,只获取创建时间在最末成功运行项的运行记录时间与当前时间之间的错误信息记录表中的所有异常信息,因此,异常信息(包括划分队列中最末位置的结束值)的创建时间是大于或等于最末成功运行项的运行记录时间。
在错误信息记录表中是记录每一个片段化数据的异常信息,而在运行状态表记录中是记录一个批量数据的历史运行记录项,因此,在发生宕机等意外现象时,一个批量数据并未运行完毕,且当前正在进行数据处理(数据异常查询)的片段化数据也并未运行(数据异常查询)完毕;此时,对应于该片段化数据不会生成异常信息,且由于该批量数据也并未运行完毕,因此也不会在运行状态记录表中记录一个历史运行记录项;在并未发生宕机等意外现象时,则在运行记录状态表中运行完一个批量数据(此时其运行状态也为运行成功)之后,运行状态表记录中是记录一个批量数据的历史运行记录项(也即最末成功运行项),错误信息记录表中最后一个片段化数据的异常信息,此时,最后一个片段化数据对应的异常信息的创建时间是等于最末成功运行项的运行记录时间。
可理解地,如上述,在接收到启动指令时,若检测到错误信息记录表中记录的片段化数据存在对应的异常信息关联的创建时间是大于最末成功运行项(位于运行状态表中的一项历史运行记录项)的运行记录时间(运行记录时间是上一个批量数据对应的最末成功运行项的运行记录时间,不为本次批量数据对应的最末成功运行项的运行记录时间),则可以认定其为宕机重启。同理,在接收到启动指令时,若检测到错误信息记录表中的最后一个片段化数据的异常信息关联的创建时间是等于最末成功运行项的运行记录时间;此时,可以认为该启动指令的发送是在不发生宕机等意外现象时(即正常的运行过程中)的正常启动。
上述实施例中,通过步骤S40对比确定其是否为宕机等意外现象之后的宕机重启,从而为宕机重启之后的批量数据的运行和片段化数据的数据处理过程提供依据,且本实施例中,只获取创建时间在最末成功运行项的运行记录时间与当前时间之间的错误信息记录表中的所有异常信息,可减少服务器获取过多无用的对比数据,减轻了服务器负载,提升了服务器的处理效率。
S50,在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
可理解地,在确认最末位置的结束值所属的异常信息的创建时间大于最末成功运行项的所述运行记录时间时,则可以说明对上一个片段化数据进行数据处理过程中出现宕机等意外现象(接收到的启动指令是宕机重启之后发出的)。因此,宕机等意外现象将导致对上一个片段化数据进行数据处理过程被直接终止,且错误信息记录表中不会记录任何与上一个片段化数据进行数据处理过程相关的数据。但在步骤S10中对批量数据中的片段化数据进行获取时,本次分段处理指令对应的片段化数据可借助上一次分段处理指令对应且已进行数据处理的最后一个片段化数据(发生宕机等意外现象之前最后一个被记录在错误信息记录表中的片段化数据)来确定(即通过上一次分段处理指令对应的且已进行数据处理的最后一个片段化数据的异常信息关联的最末位置的结束值来进行确定,比如划分队列中的数据按照序号由小到大排列,一个最后一个片段化数据的结束值的序号为2000,且单次最大处理量为1000,则本次启动指令对应的下一个待处理片段化数据的开始值和结束值分别为3001至4000,其中2001至3000的片段数据直接按照错误信息记录到错误信息记录表中)。
具体地,上述对下一个待处理的片段化数据进行数据处理,是指包含但不限于检测片段化数据中是否存在数据重复等数据异常等业务处理流程,在出现处理异常后,生成一项包含数据异常的异常原因的异常信息(同时该异常信息被标记为数据异常),并将该项异常信息插入错误信息记录表中;同理,在处理成功后,生成一项被标记不存在数据异常的异常信息,并将该项异常信息插入错误信息记录表中。
在本实施例中,将下一个待处理的片段化数据作为一项异常信息插入错误信息记录表中,一方面在该异常信息为存在数据异常时可以对其中的异常数据进行异常处理,另一方面,还可以根据该异常信息确定该异常信息之后的下一个待处理的片段化数据。在本实施例中,在由于宕机等意外现象导致宕机重启时,根据最末位置的结束值确定批量数据中下一个待处理的片段化数据,可以解决由于宕机等意外现象造成的错误信息记录表中数据不准确的问题(也即由于宕机等意外现象造成的数据不连续的问题),也实现批量数据在数据处理过程中的数据高可用性。
其中,将片段化数据直接插入到错误信息记录表中,而不是直接对其进行步骤S60中的异常处理,使得异常处理过程可以在主流程(对应于步骤S10-S50,S70-S80)之外的其他流程中进行,如此可以减少主流程的负担,另一方面,如果出现对应于一个或多个片段化数据的异常信息的异常处理逻辑无法通过服务器自行处理,此时,在需要人为干预的情况下,只需要异常处理方检验错误信息记录表中的记录即可,减少异常数据排查范围,同时,提高异常处理的效率。
进一步地,所述步骤S50之后,还包括:
在下一个待处理的所述片段化数据所属的所述批量数据中的所有所述片段化数据已全部完成数据异常查询后,将与所述批量数据对应的一项所述历史运行记录项记录在所述运行状态记录表中。在本实施例中,一个批量数据运行完毕之后,可以在运行状态记录表中下一个待处理片段化数据所属的批量数据生成一个该批量数据对应的历史运行记录项,且该历史运行记录项中对应于该批量数据的运行状态记录为运行成功,运行记录时间记录为运行完毕之后的当前时间。
进一步地,如图3所示,所述步骤S40之后,还包括:
S60,获取所述错误信息记录表中各项所述异常信息的异常原因,并根据与各所述异常原因关联的异常处理方法对各项所述异常信息进行异常处理。
可理解地,解决上述宕机等意外现象后,需解决的是针对异常信息的异常原因进行异常处理的问题(异常原因包括数据重复、数据缺失和数据乱码等问题),并根据与异常原因关联且预先设置的异常处理方法对异常信息进行异常处理。
在本实施例中,在查询出与片段化数据对应的异常信息之后(即在,每一个片段化数据的数据处理完成之后进行查询,或单独运行定时任务,定时查询是否存在未进行异常处理的异常信息),可以根据错误信息记录表中记录的异常原因对各项异常信息(按照每一个异常信息对应的片段化数据的页码顺序)进行异常处理(查询出每一个片段化数据的异常原因,就根据与异常原因关联的异常处理方法对异常信息进行异常处理,若没有查询到一个片段化数据的异常原因就跳到下一个片段化数据进行查询,按照每一个异常信息对应的片段化数据的页码顺序进行查询直至所有页码的片段化数据对应的异常信息均被查询处理完),且异常信息的查询过程与异常处理过程可以分不同线程同时进行,相互不干涉,如此,提升了查询和异常处理效率,也可以节省服务器内存的占用。
在一实施例中,如图4所示,所述步骤S60包括:
S601,获取所述错误信息记录表中尚未进行异常处理的各项所述异常信息,并对获取的各项所述异常信息进行分页查询,确定每一项所述异常信息对应的所述片段化数据中是否存在数据异常;
S602,在所述异常信息对应的所述片段化数据中存在数据异常时,获取存在数据异常的所述片段化数据的所述异常原因,根据存在数据异常的该所述片段化数据的所述异常原因确定与其关联的异常处理方法,并根据所述异常处理方法对存在数据异常的所述片段化数据对应的所述异常信息进行异常处理;
S603,在所述异常信息对应的所述片段化数据中不存在数据异常时,将不存在数据异常的所述片段化数据对应的所述异常信息从所述错误信息记录表中删除。
也即,在错误信息记录表中获取异常信息之后,由于每一个片段化数据的异常原因可能都不相同(受到某些影响而导致异常原因,如病毒的干扰等),因此,可以通过分页查询(也即一个片段化数据作为一页,按照页码顺序分别进行查询)的方式对所有异常信息进行查询以确定每一个片段化数据的数据异常情况(数据异常或者不存在数据异常),并根据数据异常情况分别进行步骤S602与S603中的不同处理。如此,存在数据异常的异常信息得到快速高效的处理,同时无需对不存在数据异常的每一各片段化数据进行异常处理,直接删除即可,因此,进一步提升了查询和异常处理效率,节省服务器内存的占用。
进一步地,如图5所示,所述步骤S602中,所述根据存在数据异常的该所述片段化数据的所述异常原因确定与其关联的异常处理方法,包括:
S6021,在所述错误信息记录表中确定与数据异常的该所述片段化数据存在相同所述异常原因的其他异常信息,判断是否对已对存在相同所述异常原因的所述其他异常信息成功完成异常处理;
S6022,若已对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则将所述其他异常信息的所述异常处理方法记录为与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法;
S6023,若并未对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则接收并存储在异常处理界面中录入的与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法。
本实施例中,若成功完成过对具有相同异常原因的其他异常信息的异常处理,此时可以直接获取与存在相同异常原因的异常信息关联的异常处理方法,而无需在异常处理界面中录入与其对应的异常处理方法;仅有在此前并未成功完成过对具有相同异常原因的其他异常信息的异常处理时,才需要在异常处理界面中人工录入与其对应的异常处理方法。如此,可以防止服务器做无效工作,进而提升了工作效率。
在一实施例中,所述错误信息记录表中的所述异常信息包括数据效力状态;所述步骤S60之后,包括:
若对一项所述异常信息进行异常处理成功,则将所述错误信息记录表该项所述异常信息的所述数据效力状态由开启切换到停用;
若对一项所述异常信息进行异常处理失败,则保持该项所述异常信息的所述数据效力状态为开启;
在该实施例中,上述步骤S6021中,判断是否对已对存在相同所述异常原因的所述其他异常信息成功完成异常处理,包括:
判断存在相同所述异常原因的所述其他异常信息的所述数据效力状态是否为开启;在为开启时,确认存在相同所述异常原因的所述其他异常信息已成功完成异常处理;在为停用时,确认并未对存在相同所述异常原因的所述其他异常信息成功完成异常处理。
本实施例中,根据错误信息记录表中的异常信息的数据效力状态可以直接确认是否成功完成过对存在相同所述异常原因的其他异常信息的异常处理,若成功完成对存在相同所述异常原因的其他异常信息的异常处理,此时可以将其数据效力状态由开启切换到停用(数据效力状态由开启切换到停用代表异常信息对应的数据为失效状态),此时可以直接获取与该相同异常原因关联的异常处理方法(也即对存在相同异常原因的其他异常信息进行成功异常处理的异常处理方法)。如此,后续的查询过程中无需每次查询所有的其他异常信息中的所有内容(仅需查询存在相同所述异常原因的其他异常信息的数据效力状态即可),即可获知存在相同所述异常原因的其他异常信息的异常处理状态(是否已成功完成异常处理),提升了检测效率。
进一步地,如图6所示,所述步骤S40之后,所述步骤S60之前,还包括:
S70,在确认最末位置的所述结束值所属的所述异常信息的创建时间等于所述最末成功运行项的所述运行记录时间时,获取下一个批量数据,并将所述下一个批量数据按照预设的划分队列划分为若干个片段化数据之后,对所述下一个批量数据中的各所述片段化数据分页进行数据异常查询;
可理解地,在确认最末位置的所述结束值所属的异常信息的创建时间等于最末成功运行项的运行记录时间时,则可以说明批量数据中的各个片段化数据经过数据处理完毕,即此次数据处理过程是一个正常的运行过程;此时可以对下一个批量数据进行运行,也即会接收到新的分段处理指令,也即首先将下一个批量数据按照预设的划分队列划分为若干个片段化数据之后,对下一个批量数据中的各片段化数据分页进行数据异常查询,上述数据异常查询过程可以参照上述步骤S50中对下一个待处理的所述片段化数据的数据异常查询过程,在此不再赘述,且每一个片段化数据在数据异常查询完毕之后,均会生成一项异常信息插入错误信息记录表中(数据异常或不存在数据异常,参照步骤S50中说明)。同时,在下一个批量数据中的所有片段化数据已全部完成数据异常查询后,将与下一个批量数据对应的一项历史运行记录项记录在运行状态记录表中。在本实施例中,下一个批量数据运行完毕之后,可以在运行状态记录表中生成与下一个批量数据对应的历史运行记录项;在运行过程正常完成时,该历史运行记录项中对应于该批量数据的运行状态记录为运行成功;可理解地,若下一个批量数据运行完成之后,中间出现系统原因导致的运行失败,此时也会将该历史运行记录项中对应于该批量数据的运行状态记录为运行失败,历史运行记录项中的运行记录时间记录为运行完毕之后的时间。
可理解地,一个批量数据可包括多个片段化数据(即多页片段化数据);根据片批量数据的数据量大小(也即单次最大数据处理量)可以确定批量数据中每一个片段化数据的页码,比如,单次处理量等于单次最大处理量的数据量,则说明批量数据的总页码只有一页,仅有的一个片段化数据的页码也为1;单次处理量的数据量与单次最大处理量的数据量之间的比例关系为1比5,则说明批量数据的总页码有5页,5个片段化数据的页码分为1-5。
可理解地,数据异常包括系统原因(服务器系统中病毒等原因)导致一页片段化数据的查询失败或者对该片段化数据查询出数据错误(比如数据重复、数据缺失和数据乱码等错误)。在本实施例中,在创建时间等于最末成功运行项的运行记录时间时,可以说明在对上一次分段处理指令对应的批量数据中的各个片段化数据进行数据处理的过程中并未发生宕机等意外现象,此时,可以直接对本次接收到的分段处理指令对应的批量数据中的各页片段化数据进行数据处理;也即,对获取的批量数据中的各页片段化数据分页进行数据异常查询,确定批量数据中的各页片段化数据中是否存在数据异常,并将存在数据异常和不存在数据异常的每一页片段化数据均作为一项异常信息插入错误信息记录表中。此时,在步骤S60中对获取错误信息记录表中各项异常信息的异常原因,并根据与各异常原因关联的异常处理方法对各项异常信息进行异常处理之前,需要首先删除其中不存在数据异常的各项异常信息(优选为在对本次接收到的分段处理指令对应的片段化数据所属的批量数据运行完毕之后,即对上述不存在数据异常的各项异常信息进行删除),而只保留数据异常的异常信息对其进行异常处理,进而减少对无用的数据进行异常处理造成的服务器的负担和数据干扰。
进一步地,所述步骤S50,所述步骤S70之后,还包括:
定时或实时检测所述错误信息记录表中是否有所述异常信息插入,在有所述异常信息插入时,通过预设的发送途径发送提示信息至异常处理方。
可理解地,预设的发送途径包括但不限于邮件形式、企业微信和短信等;且通过预设的发送途径发送提示信息至异常处理方,是为了及时提醒异常处理方关注异常信息。
S80,在对所述下一个批量数据中的所有所述片段化数据分页进行数据异常查询完毕之后,将分页查询完毕的时间记录为所述下一个批量数据的所述运行记录时间,并在确定所述下一个批量数据的所述运行状态之后,将所述下一个批量数据的所述运行状态和所述下一个批量数据的所述运行记录时间关联存储至所述历史运行记录项之后,将所述历史运行记录项插入所述运行状态记录表中。
也即,下一个批量数据中的所有片段化数据已全部完成数据异常查询后,将与批量数据对应的一项所述历史运行记录项记录在所述运行状态记录表中。
可理解地,通过新的数据(包括分页查询完毕的时间和所述下一个批量数据的运行状态)更新运行状态记录表中的历史运行记录项进行更新,也即,根据分页查询完毕的时间和下一个批量化数据的运行状态生成一项新的历史运行记录项,并将生成的新的历史运行记录项插入运行状态记录表中;从而将该项新的历史运行记录项作为下一次接收到分段处理指令时可供参考的有效数据(新的历史运行记录项可能为下一次接收到分段处理指令时所能获取到的最末成功运行项)。
在一实施例中,所述步骤S10,也即所述接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;包括:
接收所述分段处理指令,根据所述分段处理指令中包含的划分维度获取与所述划分维度关联的划分队列,确定所述划分队列中的处于最先位置的序列值;
根据所述划分队列中的处于最先位置的所述序列值和所述单次最大处理量确定各所述片段化数据的初始数据和最末数据。
可理解地,批量数据可被按照划分维度(包括时间维度或序列维度)放置在划分队列中(对应于时间维度或序列维度,划分队列包括时间队列和序列队列)划分为一个或多个片段化数据。也即,在本实施例的一方面,批量数据中的每一个数据均与其待执行时间关联,且批量数据中的每一个数据均以该待执行时间的先后顺序排列在时间队列中(此时,序列值是指待执行时间对应的时间点);在本实施例的另一方面,批量数据中的每一个数据均以序号递增或递减的形式排列在序列队列中(此时,序列值是指序号),比如,批量数据中的数据排列在序列队列中,单次最大处理量为1000,序列值为2000,此时,第一个片段化数据的初始数据为2001,最末数据为3000;第二片段化数据的初始数据为3001,最末数据为4000,依次类推,直至该批量数据被全部划分为片段化数据。
在本实施例中,步骤S10中,在服务器接收到分段处理指令后,将批量数据按照预设的划分队列划分为若干个片段化数据后,需要进过步骤S20-S60中的数据处理过程,在一些实施例中同时也包括步骤S70-S80的数据处理过程;且在对每一个批量数据运行完毕之后,均会在下述的运行状态记录表中记录其运行状态(运行状态包括运行成功或者运行失败),因此,可理解地,在步骤S10中获取该批量数据时,需要在接收到本次分段处理指令之前,首先从所有完成运行的批量数据的运行状态确定最末一个运行状态为运行成功的批量数据(也即最末成功运行项对应的批量数据);最终根据最末一个运行状态为运行成功的批量数据以及划分队列,确定本次分段处理指令对应的若干个片段化数据。由于在本实施例中仅根据划分队列中处于最先位置的序列值和单次最大处理量去确定与分段处理指令对应的片段化数据,因此,运行失败的批量数据会被继续在步骤S10中被获取并进行运行,避免了批量数据运行失败时,便不再对其进行处理的情况出现,保证了运行过程的完整性,避免了运行过程的错漏情况。
进一步地,所述步骤S10之后,还包括:
若获取所述批量数据异常,则将所述分段处理指令对应的所述批量数据的所述运行状态记录为运行失败,并将所述分段处理指令对应的所述批量数据的所述运行状态作为一项所述历史运行记录项插入所述运行状态记录表中。
可理解地,由于数据库连接失败或远程接口连接失败等原因,会导致批量数据出现数据异常进而导致的无法从划分队列中获取批量数据中的数据问题;此时,可以将分段处理指令对应的批量数据的运行状态记录为运行失败,并将分段处理指令对应的批量数据的运行状态作为一项历史运行记录项插入运行状态记录表中;进而可以指示异常处理方对运行状态记录表中的该历史运行记录项的运行失败情况进行及时处理,且在处理完毕之后,依旧可以再次获取运行失败的该批量数据继续进行运行,并不会因为本次数据异常而导致不再对运行失败的该批量数据进行运行的情况出现。
综上所述,上述提供了一种批量数据处理方法,接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。本发明提供的批量数据处理方法,相比之前的数据处理方法,本发明只需从创建的错误信息记录表和运行状态记录表中来进行批量数据分析、批量数据处理、批量数据记录等,无需增加多余的服务器,也无需搭建集群等,因此可大大节省资源配置和能耗,本发明也无需接入过多的系统性能(即无需准备多个与不同应用场景相适应的jar包等),并且对于新旧的系统来说都很轻易接上,本发明也解决了宕机等意外现象造成的数据不连续性的问题,实现整体数据处理流程中数据的高可用性(如运行状态记录表中的历史运行记录项和错误信息记录表中的异常信息在后续的数据处理过程中,可对宕机等意外现象进行确定,并解决由于宕机等意外现象造成的错误信息记录表中数据不准确的问题等),本方案也将批量数据中异常信息的查询过程与异常处理过程分不同线程同时进行,相互不干涉,如此,提升了查询和异常处理效率,也可以节省服务器内存的占用。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种批量数据处理装置,该批量数据处理装置与上述实施例中批量数据处理方法一一对应。如图7所示,该批量数据处理装置包括划分模块11、第一获取模块12、选取模块13、确定模块14和插入模块15。各功能模块详细说明如下:
划分模块11,用于接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
第一获取模块12,用于自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
选取模块13,用于检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
确定模块14,用于获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
插入模块15,用于在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
进一步地,所述批量数据处理装置还包括:
第二获取模块,用于自预设的数据源中获取所述批量数据,且所述批量数据在所述数据源中被禁止执行限制操作。
进一步地,所述批量数据处理装置还包括:
第三获取模块,用于获取所述错误信息记录表中各项所述异常信息的异常原因,并根据与各所述异常原因关联的异常处理方法对各项所述异常信息进行异常处理。
进一步地,所述第三获取模块包括:
第一确定子模块,用于获取所述错误信息记录表中尚未进行异常处理的各项所述异常信息,并对获取的各项所述异常信息进行分页查询,确定每一项所述异常信息对应的所述片段化数据中是否存在数据异常;
异常处理子模块,用于在所述异常信息对应的所述片段化数据中存在数据异常时,获取存在数据异常的所述片段化数据的所述异常原因,根据存在数据异常的该所述片段化数据的所述异常原因确定与其关联的异常处理方法,并根据所述异常处理方法对存在数据异常的所述片段化数据对应的所述异常信息进行异常处理;
删除子模块,用于在所述异常信息对应的所述片段化数据中不存在数据异常时,将不存在数据异常的所述片段化数据对应的所述异常信息从所述错误信息记录表中删除。
进一步地,所述异常处理子模块包括:
判断单元,用于在所述错误信息记录表中确定与数据异常的该所述片段化数据存在相同所述异常原因的其他异常信息,判断是否对已对存在相同所述异常原因的所述其他异常信息成功完成异常处理;
记录单元,用于若已对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则将所述其他异常信息的所述异常处理方法记录为与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法;
接收单元,用于若并未对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则接收并存储在异常处理界面中录入的与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法。
进一步地,所述批量数据处理装置还包括:
数据异常查询模块,用于在确认最末位置的所述结束值所属的所述异常信息的创建时间等于所述最末成功运行项的所述运行记录时间时,获取下一个批量数据,并将所述下一个批量数据按照预设的划分队列划分为若干个片段化数据之后,对所述下一个批量数据中的各所述片段化数据分页进行数据异常查询;
记录模块,用于在对所述下一个批量数据中的所有所述片段化数据分页进行数据异常查询完毕之后,将分页查询完毕的时间记录为所述下一个批量数据的所述运行记录时间,并在确定所述下一个批量数据的所述运行状态之后,将所述下一个批量数据的所述运行状态和所述下一个批量数据的所述运行记录时间关联存储至所述历史运行记录项之后,将所述历史运行记录项插入所述运行状态记录表中。
进一步地,所述划分模块包括:
第二确定子模块,用于接收所述分段处理指令,根据所述分段处理指令中包含的划分维度获取与所述划分维度关联的划分队列,确定所述划分队列中的处于最先位置的序列值;
第三确定子模块,用于根据所述划分队列中的处于最先位置的所述序列值和所述单次最大处理量确定各所述片段化数据的初始数据和最末数据。
关于批量数据处理装置的具体限定可以参见上文中对于批量数据处理方法的限定,在此不再赘述。上述批量数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储批量数据处理方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种批量数据处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中批量数据处理方法的步骤,例如图2所示的步骤S10至步骤S50。或者,处理器执行计算机程序时实现上述实施例中批量数据处理装置的各模块/单元的功能,例如图7所示模块11至模块15的功能。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中批量数据处理方法的步骤,例如图2所示的步骤S10至步骤S50。或者,计算机程序被处理器执行时实现上述实施例中批量数据处理装置的各模块/单元的功能,例如图7所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种批量数据处理方法,其特征在于,包括:
接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
2.根据权利要求1所述的批量数据处理方法,其特征在于,所述接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据之前,还包括:
自预设的数据源中获取所述批量数据,且所述批量数据在所述数据源中被禁止执行限制操作。
3.根据权利要求1所述的批量数据处理方法,其特征在于,所述获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间之后,还包括:
获取所述错误信息记录表中各项所述异常信息的异常原因,并根据与各所述异常原因关联的异常处理方法对各项所述异常信息进行异常处理。
4.根据权利要求3所述的批量数据处理方法,其特征在于,所述获取所述错误信息记录表中各项所述异常信息的异常原因,并根据与各所述异常原因关联的异常处理方法对各项所述异常信息进行异常处理,包括:
获取所述错误信息记录表中尚未进行异常处理的各项所述异常信息,并对获取的各项所述异常信息进行分页查询,确定每一项所述异常信息对应的所述片段化数据中是否存在数据异常;
在所述异常信息对应的所述片段化数据中存在数据异常时,获取存在数据异常的所述片段化数据的所述异常原因,根据存在数据异常的该所述片段化数据的所述异常原因确定与其关联的异常处理方法,并根据所述异常处理方法对存在数据异常的所述片段化数据对应的所述异常信息进行异常处理;
在所述异常信息对应的所述片段化数据中不存在数据异常时,将不存在数据异常的所述片段化数据对应的所述异常信息从所述错误信息记录表中删除。
5.根据权利要求4所述的批量数据处理方法,其特征在于,所述根据存在数据异常的该所述片段化数据的所述异常原因确定与其关联的异常处理方法,包括:
在所述错误信息记录表中确定与数据异常的该所述片段化数据存在相同所述异常原因的其他异常信息,判断是否对已对存在相同所述异常原因的所述其他异常信息成功完成异常处理;
若已对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则将所述其他异常信息的所述异常处理方法记录为与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法;
若并未对存在相同所述异常原因的所述其他异常信息成功完成异常处理,则接收并存储在异常处理界面中录入的与数据异常的该所述片段化数据的所述异常原因关联的所述异常处理方法。
6.根据权利要求3所述的批量数据处理方法,其特征在于,所述获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间之后,所述获取所述错误信息记录表中各项所述异常信息的异常原因,并根据与各所述异常原因关联的异常处理方法对各项所述异常信息进行异常处理之前,还包括:
在确认最末位置的所述结束值所属的所述异常信息的创建时间等于所述最末成功运行项的所述运行记录时间时,获取下一个批量数据,并将所述下一个批量数据按照预设的划分队列划分为若干个片段化数据之后,对所述下一个批量数据中的各所述片段化数据分页进行数据异常查询;
在对所述下一个批量数据中的所有所述片段化数据分页进行数据异常查询完毕之后,将分页查询完毕的时间记录为所述下一个批量数据的所述运行记录时间,并在确定所述下一个批量数据的所述运行状态之后,将所述下一个批量数据的所述运行状态和所述下一个批量数据的所述运行记录时间关联存储至所述历史运行记录项之后,将所述历史运行记录项插入所述运行状态记录表中。
7.根据权利要求1所述的批量数据处理方法,其特征在于,所述将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量,包括:
接收所述分段处理指令,根据所述分段处理指令中包含的划分维度获取与所述划分维度关联的划分队列,确定所述划分队列中的处于最先位置的序列值;
根据所述划分队列中的处于最先位置的所述序列值和所述单次最大处理量确定各所述片段化数据的初始数据和最末数据。
8.一种批量数据处理装置,其特征在于,包括:
划分模块,用于接收分段处理指令,将批量数据按照预设的划分队列划分为若干个片段化数据;每一个所述片段化数据中的数据量均包括自初始数据开始并至最末数据结束的单次最大处理量;
第一获取模块,用于自数据库中获取错误信息记录表和运行状态记录表;所述运行状态记录表中包括至少一项历史运行记录项,每一项所述历史运行记录项包括完成一个所述批量数据的运行后的运行状态和运行记录时间,所述运行状态包括运行成功和运行失败,所述错误信息记录表中包括至少一项异常信息;一个所述片段化数据运行完毕之后生成一项所述异常信息,且每一项所述异常信息均与该异常信息的创建时间关联;
选取模块,用于检测是否接收到启动指令,在接收到所述启动指令时,自所述运行状态记录表中所有所述运行状态为运行成功的所述历史运行记录项中,选取所述运行记录时间的数值最大的所述历史运行记录项并将其记录为最末成功运行项;
确定模块,用于获取创建时间在所述最末成功运行项的所述运行记录时间与当前时间之间的所有所述异常信息,从获取的所有所述异常信息中确定排列在所述划分队列中最末位置的结束值,并确定最末位置的所述结束值所属的所述异常信息的创建时间;
插入模块,用于在确认最末位置的所述结束值所属的所述异常信息的创建时间大于所述最末成功运行项的所述运行记录时间时,根据最末位置的所述结束值确定所述批量数据中下一个待处理的所述片段化数据,对下一个待处理的所述片段化数据进行数据处理,并在下一个待处理的所述片段化数据的数据处理完毕之后生成一项所述异常信息并将其插入所述错误信息记录表中。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述批量数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述批量数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755609.2A CN110647526B (zh) | 2019-08-15 | 2019-08-15 | 批量数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755609.2A CN110647526B (zh) | 2019-08-15 | 2019-08-15 | 批量数据处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647526A CN110647526A (zh) | 2020-01-03 |
CN110647526B true CN110647526B (zh) | 2023-06-16 |
Family
ID=69009565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910755609.2A Active CN110647526B (zh) | 2019-08-15 | 2019-08-15 | 批量数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647526B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874644A (zh) * | 2018-06-06 | 2018-11-23 | 平安科技(深圳)有限公司 | 数据监控方法、装置、计算机设备及存储介质 |
CN109325865A (zh) * | 2018-08-13 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 异常处理方法、装置、计算机设备及存储介质 |
CN109344974A (zh) * | 2018-08-15 | 2019-02-15 | 广东蓄能发电有限公司 | 电气设备开关量记录快速纠错方法 |
-
2019
- 2019-08-15 CN CN201910755609.2A patent/CN110647526B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874644A (zh) * | 2018-06-06 | 2018-11-23 | 平安科技(深圳)有限公司 | 数据监控方法、装置、计算机设备及存储介质 |
CN109325865A (zh) * | 2018-08-13 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 异常处理方法、装置、计算机设备及存储介质 |
CN109344974A (zh) * | 2018-08-15 | 2019-02-15 | 广东蓄能发电有限公司 | 电气设备开关量记录快速纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110647526A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509585B2 (en) | Data synchronization method, apparatus, and system | |
US11385830B2 (en) | Data storage method, apparatus and system, and server, control node and medium | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN112035472B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111835467A (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN113612814B (zh) | 一种会话信息的筛选方法、装置、终端及存储介质 | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN112632375B (zh) | 会话信息处理方法、服务器及存储介质 | |
TW201510995A (zh) | 維護電腦系統之檔案系統的方法 | |
WO2024078015A1 (zh) | 基于镜像对的故障注入方法、装置、设备和存储介质 | |
CN110647526B (zh) | 批量数据处理方法、装置、计算机设备及存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
WO2021012562A1 (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
WO2021259109A1 (zh) | 补丁加载方法、网元及计算机可读存储介质 | |
CN110489208B (zh) | 虚拟机配置参数核查方法、系统、计算机设备和存储介质 | |
CN115883533A (zh) | 文件同步方法、装置、计算机设备及存储介质 | |
CN112564980B (zh) | 一种基于微服务架构的服务监控方法及系统 | |
CN112395057B (zh) | 基于定时任务的数据处理方法、装置、计算机设备 | |
CN111475335B (zh) | 一种数据库快速恢复的方法、系统、终端及存储介质 | |
CN111324668B (zh) | 数据库数据同步处理方法、装置及存储介质 | |
CN111045787B (zh) | 一种快速继续实验方法及系统 | |
CN113448758A (zh) | 处理任务的方法、装置及终端设备 | |
US10489239B2 (en) | Multiplexing system, multiplexing method, and computer program product |
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 |