数据处理方法及装置与流程

文档序号:12123398阅读:223来源:国知局
数据处理方法及装置与流程

本发明涉及数据处理技术,尤其涉及一种数据处理方法及装置。



背景技术:

在数据处理系统中,特别是在分布式、每天百亿级的海量数据处理的情况下,数据一致性的问题成为了亟待解决的问题。

目前,数据一致性的方案可以基于数据库的事务机制来实现。基于数据库的事务机制,可以充分利用数据库的事务能力,确保数据要么全部成功,要么全部不成功,从而有限解决数据库类的数据一致性问题。

但是,基于数据库的事务机制,只能处理单个数据库的数据一致性问题,当需要数据库和文件系统的数据保持一致时,现有技术的方案难以保证数据库和文件系统的数据一致性。



技术实现要素:

本发明提供一种数据处理方法及装置,用以解决现有技术难以保持数据库和文件系统的数据一致性的问题。

本发明提供一种数据处理方法,包括:

读取文件系统中的文件;

对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚;

整个文件处理完成后,获取最终处理结果,将所述最终处理结果存入所述数据库;

在所述最终处理结果成功存入数据库之后,将所述最终处理结果存入所述文件系统。

进一步地,所述方法还包括:

在对所述文件中的每一步骤进行处理后,判断所述步骤的处理结果是否被其它文件需要;

若是,则将所述步骤的处理结果存入数据库中;

相应的,所述根据所述回滚数据对数据库进行回滚,包括:

判断数据库中当前是否已存入所述文件的至少一个步骤的处理结果;

若有,则根据所述回滚数据对所述数据库进行回滚。

进一步地,所述方法还包括:

在所述文件的处理过程中或者在将所述最终处理结果存入所述数据库的过程中,若所述数据库出现异常,则将所述文件置为未处理状态;

将所述回滚数据保存至专用文件系统中。

进一步地,在所述最终处理结果成功存入数据库之后,还包括:

若所述文件系统出现异常导致所述处理结果无法存入文件系统,则将所述最终处理结果存入专用文件系统。

进一步地,所述读取文件系统中的文件,包括:

判断所述专用文件系统中是否有最终处理结果和/或回滚数据;

若有最终处理结果,则将所述最终处理结果存入所述文件系统中,并读取所述最终处理结果对应文件的下一文件;

若有回滚数据,则根据所述回滚数据对数据库进行回滚,并读取所述回滚数据对应的文件;

若没有最终处理结果和回滚数据,则直接读取所述文件系统中的未处理的文件。

本发明还提供一种数据处理装置,包括:

读取模块,用于读取文件系统中的文件;

处理模块,用于对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚;

第一存入模块,用于在整个文件处理完成后,获取最终处理结果,将所述最终处理结果存入所述数据库;

第二存入模块,用于在所述最终处理结果成功存入数据库之后,将所述最终处理结果存入所述文件系统。

进一步地,所述第一存入模块还用于:

在对所述文件中的每一步骤进行处理后,判断所述步骤的处理结果是否被其它文件需要;若是,则将所述步骤的处理结果存入数据库中;

相应的,所述处理模块,具体用于:

对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则判断数据库中当前是否已存入所述文件的至少一个步骤的处理结果,若有,则根据所述回滚数据对所述数据库进行回滚。

进一步地,所述第二存入模块还用于:

在所述文件的处理过程中或者在将所述最终处理结果存入所述数据库的过程中,若所述数据库出现异常,则将所述文件置为未处理状态;

将所述回滚数据保存至专用文件系统中。

进一步地,所述第二存入模块还用于:

在所述最终处理结果成功存入数据库之后,若所述文件系统出现异常导致所述处理结果无法存入文件系统,则将所述最终处理结果存入专用文件系统。

进一步地,所述读取模块,具体用于:

判断所述专用文件系统中是否有最终处理结果和/或回滚数据;

若有最终处理结果,则将所述最终处理结果存入所述文件系统中,并读取所述最终处理结果对应文件的下一文件;

若有回滚数据,则根据所述回滚数据对数据库进行回滚,并读取所述回滚数据对应的文件;

若没有最终处理结果和回滚数据,则直接读取所述文件系统中的未处理的文件。

本发明提供的数据处理方法及装置,通过读取文件系统中的文件,对所述文件进行处理,同时生成回滚数据,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚,若没有出现异常,则将所述处理结果存入所述数据库,并在存入数据库成功之后,将所述最终处理结果存入所述文件系统,能够有效保证数据库和文件系统的一致性。

附图说明

图1为本发明实施例一提供的数据处理方法的流程图;

图2为本发明实施例二提供的数据处理方法的流程图;

图3为本发明实施例三提供的数据处理装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

实施例一

本发明实施例一提供一种数据处理方法。图1为本发明实施例一提供的数据处理方法的流程图。如图1所示,本实施例中的方法,可以包括:

步骤101、读取文件系统中的文件。

本实施例中的数据处理方法,可以应用于分布式数据系统中,尤其是需要数据库和文件系统的数据保持一致的场景。

文件系统把数据组织成相互独立的文件,实现了记录内的结构性,方便用户操作,但整体无结构,数据冗余度大,浪费存储空间。而数据库实现整体数据的结构化,数据可以被多个用户、多个应用共享使用,有效减少了数据冗余。

所述文件系统中可以包括多个文件,对于每一个文件,都可以利用本实施例中步骤101至步骤104提供的方法对该文件进行处理。本步骤中,当需要对文件进行处理时,可以首先读取该文件。

步骤102、对读取的文件进行处理,生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚。

对所述文件进行处理,可以包括:按照预定规则对所述文件的各个步骤进行处理,获取各个步骤对应的处理结果和回滚数据。

具体地,所述文件中可以包括多个步骤,每个步骤可以用一行数据来表示。因此,对所述文件中的各个步骤进行处理,也可以说是:对所述文件中的各行数据进行处理。

例如,本实施例中的方法可以应用在计费系统中,则所述文件系统可以为话单系统,所述文件系统中的文件可以为话单文件,所述话单文件中可以包括多行数据,每一行数据可以用于表示:生成或读取上网记录、通话记录、短信记录、账单,或类似操作。

在对所述文件系统的一个步骤进行处理后,可以获取该步骤对应的处理结果和回滚数据。对于某些步骤而言,对应的处理结果可能为空。

在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚。生成回滚数据和根据回滚数据对数据库进行回滚的方法均属于现有技术,本实施例中不再赘述。

在对数据库进行回滚之后,可以停止对文件进行处理,并将文件置为未处理状态,待数据库正常之后、或者下次对文件系统进行操作时,重新处理该文件。

进一步地,本实施例中的方法还包括:在对所述文件中的每一步骤进行处理后,判断所述步骤的处理结果是否被其它文件需要,若是,则将所述步骤的处理结果存入数据库中。

例如,A文件中的第L行数据对应的处理结果为话费记录,而另一文件B在处理时需要用到该话费记录,则在对A文件中的第L行数据处理完成后,将第L行数据对应的处理结果存入数据库中。

若某一步骤的处理结果没有其它文件会用到,则不存入数据库中。

相应的,所述根据所述回滚数据对数据库进行回滚,可以包括:判断数据库中当前是否已存入所述文件中的至少一个步骤的处理结果;若有,则根据所述回滚数据对所述数据库进行回滚。

如果当前数据库中没有存入所述文件的任何一个步骤的处理结果,则不需要进行回滚操作,能够节约操作时间,有效提高处理效率。

步骤103、整个文件处理完成后,获取最终处理结果,将所述最终处理结果存入所述数据库。

步骤104、在所述最终处理结果成功存入数据库之后,将所述最终处理结果存入所述文件系统中。

在将文件的最后一个步骤处理完后,整个文件就算是处理完成了,可以将所述文件置为已处理状态。最后一个步骤对应的处理结果可以作为所述最终处理结果,将所述最终处理结果可以存入数据库中,在存入数据库成功之后,再将所述处理结果存入文件系统中,这样就实现了文件系统和数据库的一致性。

具体地,所述最终处理结果可以有多种存储形式,例如,可以为明细形式的最终处理结果,也可以为汇总形式的最终处理结果。以话费系统为例,明细形式的最终处理结果可以为“xx账户xx月话费:xx日xx元,xx日xx元,……”,汇总形式的最终处理结果可以为“xx账户xx月话费:共计xx元”,两者在实质上是等同的。

存入文件系统的最终处理结果和存入数据库中的最终处理结果的存储形式可以一样,也可以不一样,例如,可以将最终处理结果以明细形式存入数据库中,以汇总形式存入文件系统中。

在实际应用中,当需要对文件系统进行处理时,可以首先初始化数据库连接,初始化成功后,选择一个未处理的文件,然后读取文件的每个步骤即每行数据,根据规则进行计算,获取处理结果,处理完成后,将最终处理数据更新到数据库中,最后将最终结果数据写入文件系统,若在处理过程中若文件系统出现异常,可以根据回滚数据对数据库进行回滚操作,避免文件系统与数据库不一致。

本实施例提供的数据处理方法,通过读取文件系统中的文件,对所述文件进行处理,同时生成回滚数据,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚,若没有出现异常,则将所述处理结果存入所述数据库,并在存入数据库成功之后,将所述最终处理结果存入所述文件系统,能够有效保证数据库和文件系统的一致性。

实施例二

本发明实施例二提供一种数据处理方法。本实施例是在实施例一提供的技术方案的基础上,针对不同时期的数据库异常和文件系统异常作出了相应处理。

图2为本发明实施例二提供的数据处理方法的流程图。如图2所示,本实施例中的方法,可以包括:

步骤201、判断所述专用文件系统中是否有最终处理结果和/或回滚数据,并根据判断结果读取文件系统中的相应文件。

具体地,所述根据判断结果读取文件系统中的相应文件,可以包括:若有最终处理结果,则将所述最终处理结果存入所述文件系统,并读取所述最终处理结果对应文件的下一文件;若有回滚数据,则根据所述回滚数据对数据库进行回滚,并读取所述回滚数据对应的文件;若没有最终处理结果和回滚数据,则直接读取文件系统中的未处理的文件。

本步骤是对实施例一中的步骤101进行的扩展,根据专用文件系统中存储的数据情况来对文件系统中的文件进行读取。所述专用文件系统是一块备用区域,在文件处理过程中,若出现数据库异常或者文件系统异常,可以将相应的回滚数据或者最终处理结果存入所述专用文件系统,供下次处理时使用。

在数据库或文件系统恢复正常后,或者,在重新启动应用后,可以首先判断专用文件系统中是否有最终处理结果和/或回滚数据,并根据判断结果读取文件系统中的相应文件。

例如,所述专用文件系统中有文件A的最终处理结果,则可以将所述最终处理结果存入文件系统,并读取文件A的下一文件。若所述专用文件系统中有文件A的回滚数据,则可以根据所述回滚数据对数据库进行回滚并读取文件A,以便对文件A进行后续处理。若所述专用文件系统中既没有回滚数据也没有最终处理结果,则根据预定顺序读取文件系统中的未处理的文件。

在将所述专用文件系统中的最终处理结果存入文件系统中,或者根据所述专用文件系统中的回滚数据对数据库进行回滚之后,可以删除所述最终处理结果和回滚数据,或者将所述最终处理结果和回滚数据标记为已处理,下次重新启动应用后不再对所述最终处理结果和回滚数据进行处理。

步骤202、对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述数据库出现异常,则将所述文件置为未处理状态,并将所述回滚数据保存至专用文件系统的回滚文件中。

在读取了文件系统中的文件之后,可以对所述文件进行处理。在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚。对文件进行处理的方法以及过程中文件系统出现异常的处理办法与实施例一类似,此处不再赘述。

在所述文件的处理过程中,若所述数据库出现异常,则将所述文件置为未处理状态,并将所述回滚数据保存至专用文件系统中,等待下次重新启动后,根据所述回滚数据对所述数据库进行回滚。

步骤203、整个文件处理完成后,获取最终处理结果,将所述最终处理结果存入所述数据库。

在将所述最终处理结果存入所述数据库的过程中,若所述数据库出现异常,则将所述文件置为未处理状态,并将所述回滚数据保存至专用文件系统中,等待下次重新启动后,根据所述回滚数据对所述数据库进行回滚。

步骤204、在所述最终处理结果成功存入数据库之后,将所述最终处理结果存入所述文件系统。

若所述文件系统出现异常导致所述最终处理结果无法存入文件系统,则将所述最终处理结果存入专用文件系统。

本实施例提供的数据处理方法,通过在数据库异常和文件系统异常时,将相应的回滚数据或者最终处理结果保存至专用文件系统中,并在重新启动后根据专用文件系统中的回滚数据和最终处理结果对数据库或文件系统进行处理,保证在数据库异常和文件异常时,数据库和文件系统都能保证数据的一致性,且有效节约程序,避免了冗余操作。

在上述实施例提供的技术方案的基础上,在文件处理过程中,无论是数据库出现异常,还是文件系统出现异常,都可以首先停止对文件进行处理,然后按照上述方法进行回滚或者存入专用文件系统的操作,等待下次重新启动后再继续处理。

本发明中,对数据库异常和对文件系统异常的判断,可以通过捕获返回值或捕获错误响应来实现,其具体实现原理属于现有技术,此处不再赘述。

实施例三

本发明实施例三提供一种数据处理装置。图3为本发明实施例三提供的数据处理装置的结构框图。如图3所示,本实施例中的数据处理装置,可以包括:

读取模块301,用于读取文件系统中的文件;

处理模块302,用于对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚;

第一存入模块303,用于在整个文件处理完成后,获取最终处理结果,将所述最终处理结果存入所述数据库;

第二存入模块304,用于在所述最终处理结果成功存入数据库之后,将所述最终处理结果存入所述文件系统。

本实施例中的数据处理装置,可以用于执行实施例一中的数据处理方法,其具体实现原理与实施例一类似,此处不再赘述。

本实施例提供的数据处理装置,通过读取文件系统中的文件,对所述文件进行处理,同时生成回滚数据,在所述文件的处理过程中,若所述文件系统出现异常,则根据所述回滚数据对数据库进行回滚,若没有出现异常,则将所述处理结果存入所述数据库,并在存入数据库成功之后,将所述最终处理结果存入文件系统,能够有效保证数据库和文件系统的一致性。

进一步地,所述第一存入模块303还用于:在对所述文件中的每一步骤进行处理后,判断所述步骤的处理结果是否被其它文件需要;若是,则将所述步骤的处理结果存入数据库中;

相应的,所述处理模块302,具体用于:对读取的文件进行处理,同时生成回滚数据,其中,在所述文件的处理过程中,若所述文件系统出现异常,则判断数据库中当前是否已存入所述文件的至少一个步骤的处理结果,若有,则根据所述回滚数据对所述数据库进行回滚。

进一步地,所述第二存入模,304,还用于:

在所述文件的处理过程中或者在将所述最终处理结果存入所述数据库的过程中,若所述数据库出现异常,则将所述文件置为未处理状态;

将所述回滚数据保存至专用文件系统中。

进一步地,所述第二存入模块304,还用于:

在所述最终处理结果成功存入数据库之后,若所述文件系统出现异常导致所述处理结果无法存入文件系统,则将所述最终处理结果存入专用文件系统。

进一步地,所述读取模块301,具体用于:

判断所述专用文件系统中是否有最终处理结果和/或回滚数据;

若有最终处理结果,则将所述最终处理结果存入所述文件系统中,并读取所述最终处理结果对应文件的下一文件;

若有回滚数据,则根据所述回滚数据对数据库进行回滚,并读取所述回滚数据对应的文件;

若没有最终处理结果和回滚数据,则直接读取所述文件系统中的未处理的文件。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1