一种混合资源处理方法及装置与流程

文档序号:11808032阅读:204来源:国知局
一种混合资源处理方法及装置与流程

本发明涉及数据库技术领域,具体涉及一种混合资源处理方法及装置。



背景技术:

数据库作为常用的数据管理产品大量在各种应用中使用,现代企业信息系统处理数据需求量大,尤其是大中型企业,其信息资源往往分布在不同地域、区域中,尤其是云计算、多租户的普及应用,更加造成数据链接复杂,数据源配置繁冗、分布式事务处理困难等问题。大部分情况下,各个数据库服务器可能是不同公司的数据库产品,且每个服务器中的数据量差别较大,有的数据库有业务化的分表存储策略,有的数据库是单表存储,并且各个数据对象之间存在外键关系,最终序列化的所有对象,都可以由主对象为树根,展示成一颗树,所有数据为一个或者多个数据森林。

在现有技术中,处理这样的多数据库、多数据表以及多文件的混合资源的过程中,主流操作系统可以实现跨分区的事务性文件数据操作,但是会带来数据不一致、无法在规定时间内完成处理等问题,无法满足某些应用场景下的要求。



技术实现要素:

有鉴于此,本发明提供一种混合资源处理方法及装置,以解决现有技术中的混合资源处理可能会导致数据不一致、无法在规定时间内完成处理等技术问题。

为解决上述问题,本发明提供的技术方案如下:

一种实现混合资源处理的方法,所述方法包括:

将输入的资源操作解析为顺序执行的多个第一子操作;

判断各个所述第一子操作是否需要进行切分,如果所述第一子操作需要进行切分,将所述第一子操作所处理的第一资源切分为多个第二资源,将所述第一子操作转换为多个处理所述第二资源的第二子操作;

按照执行顺序执行所述第一子操作和/或所述第二子操作,当所述第一子操作或者所述第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记所述资源操作为错误状态。

相应的,所述将输入的资源操作解析为顺序执行的多个第一子操作,包括:

根据资源池中预先设置的资源操作解析规则将输入的资源操作解析为顺序执行的多个第一子操作。

相应的,所述将所述第一子操作所处理的第一资源切分为多个第二资源,包括:

将所述第一子操作所处理的第一资源切分为多个小于或等于资源处理阈值的第二资源;

或者,

将所述第一子操作所处理的第一资源按照资源关系划分为多个资源组,将每个所述资源组中的资源切分为多个小于或等于所述资源处理阈值的第二资源。

相应的,所述方法还包括:

当各个所述第一子操作以及各个所述第二子操作全部执行成功,标记所述资源操作为结束状态。

相应的,所述方法还包括:

将所述第一子操作和/或所述第二子操作登记至资源状态机中,在按照执行顺序执行所述第一子操作和/或所述第二子操作的过程中,实时更新所述第一子操作和/或所述第二子操作的执行状态。

一种实现混合资源处理的装置,其特征在于,所述装置包括:

解析单元,用于将输入的资源操作解析为顺序执行的多个第一子操作;

判断单元,用于判断各个所述第一子操作是否需要进行切分;

切分单元,用于如果所述判断单元的判断结果为所述第一子操作需要进行切分,将所述第一子操作所处理的第一资源切分为多个第二资源,将所述第一子操作转换为多个处理所述第二资源的第二子操作;

执行单元,用于按照执行顺序执行所述第一子操作和/或所述第二子操作;

第一标记单元,用于当所述第一子操作或者所述第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记所述资源操作为错误状态。

相应的,所述解析单元具体用于:

根据资源池中预先设置的资源操作解析规则将输入的资源操作解析为顺序执行的多个第一子操作。

相应的,所述切分单元包括:

第一切分子单元或者第二切分子单元;

所述第一切分子单元,用于将所述第一子操作所处理的第一资源切分为多个小于或等于资源处理阈值的第二资源;

所述第二切分子单元,用于将所述第一子操作所处理的第一资源按照资源关系划分为多个资源组,将每个所述资源组中的资源切分为多个小于或等于所述资源处理阈值的第二资源。

相应的,所述装置还包括:

第二标记单元,用于当各个所述第一子操作以及各个所述第二子操作全部执行成功,标记所述资源操作为结束状态。

相应的,所述装置还包括:

登记单元,用于将所述第一子操作和/或所述第二子操作登记至资源状态机中;

更新单元,用于在按照执行顺序执行所述第一子操作和/或所述第二子操作的过程中,实时更新所述第一子操作和/或所述第二子操作的执行状态。

由此可见,本发明实施例具有如下有益效果:

将资源操作解析为顺序执行的多个第一子操作,并可以将第一子操作切分为多个第二子操作,处于同一执行顺序层次的第二子操作可以并发执行,提高了处理速度,这样能够在规定的时间内完成混合资源的处理,另外当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态,即在混合资源的处理过程中任一步出错都将处理全部退回,以避免只处理了部分树中数据,造成存在数据片段的问题。

附图说明

图1为本发明实施例提供的实现混合资源处理的方法实施例的流程图;

图2为本发明实施例中控制单元的交互示意图;

图3为本发明实施例提供的实现混合资源处理的装置实施例的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。

本发明实施例所提供的实现混合资源处理的方法,主要针对的应用场景是日终批量逻辑,对包括数据和/或文件的混合资源进行处理,例如,对当日的全部业务数据进行导出。批量是在计算机上无须人工干预地执行一系列程序(作业)。主要优点是允许多用户共享计算机资源;可以把作业处理转移到计算机资源不太繁忙的时段;避免计算资源限制,而且无须时刻有人工监视和干预;使昂贵的资源保持高使用率,以降低评价开销。

本发明实施例所针对的应用场景可以分为以下两步:第一步,将分散在多处的数据库服务器中的数据,按照对象结构分别序列化;第二步,将各个对象的序列化结果,合并、加工后,统一提交到系统的历史数据系统中。整个应用场景要求每步的要求有:需要在规定的有限时间内完成;数据在处理过程中不能出现重复处理和遗漏处理,也就是说数据要么在源数据库中,要么在历史数据系统中;历史数据系统中不能存在重复的数据,不能出现片段数据。

数据库服务器可能是不同公司的数据库产品;每个服务器中的数据量差别较大;有的数据库有业务化的分表存储策略,有的数据库是单表存储;各个数据对象之间存在外键关系,最终序列化的所有对象,都可以由主对象为树根,展示成一颗树,所有数据为一个或者多个森林;但是,在合并、加工、提交等动作执行时,可能存在只处理了部分树中数据,造成历史数据系统中存在数据片段,即存在数据不一致的问题,且各动作可能需要跨服务器、跨城市,数据传输过程受城市主干网络的带宽影响,可能无法在规定的时间内完成处理,这样无法满足应用场景的要求。

为此,本发明实施例提供一种用于实现多数据库、多数据表和多个文件的混合资源处理的方法及装置,解决在日终批量逻辑中,同时操作多种资源时可能带来的各种问题,比如数据不一致问题、资源长期占用、资源抢占等情况。本发明实施例将资源操作增强解析为多层子操作,跟踪操作状态,并保证整体操作的一致性和完整性,从而解决上述提到了资源处理方面的问题。基于上述思想,参见图1所示,本发明实施例中提供实现混合资源处理的方法,可以包括以下步骤:

步骤101:将输入的资源操作解析为顺序执行的多个第一子操作。

资源操作可以为日终批量逻辑中某一节点的处理逻辑,例如某一节点为导出节点,则该节点的处理逻辑为导出操作,即导出操作为一个资源操作,导出操作可以被解析为查询操作-写文件操作-加工文件操作这三个顺序执行的第一子操作。

在实际应用中,本发明实施例可以由控制单元执行,参见图2所示,控制单元可以分别与资源池、指令集以及资源状态机交互。

在本发明的一些可能的实现方式中,步骤101的具体实现可以包括:根据资源池中预先设置的资源操作解析规则将输入的资源操作解析为顺序执行的多个第一子操作。

资源池可以用于维护资源以及资源的相关操作,操作可以包括创建、关闭、写、读、删除、查询、提交、回滚、切分、合并等,其中创建、关闭、写、读、删除、查询操作的对象为:数据库连接、文件、数据库表。在实际应用中,控制单元可以将输入的资源操作与资源池中的操作进行比对,根据资源池中预先设置的资源操作解析规则将该资源操作解析成顺序执行的多个第一子操作。由于输入的资源操作是资源池中固有操作的整合,因此解析后的多个第一子操作均属于资源池中的操作。

步骤102:判断各个第一子操作是否需要进行切分,如果第一子操作需要进行切分,将第一子操作所处理的第一资源切分为多个第二资源,将第一子操作转换为多个处理第二资源的第二子操作。

可以通过判断第一子操作的所处理的第一资源是否满足预设条件,如果不满足则需要对第一子操作进行切分。例如第一子操作的所处理的第一资源数量超过预设的资源数量,则可以确定第一子操作需要进行切分。在实际应用中,可以通过控制单元与指令集之间的交互完成判断各个第一子操作是否需要进行切分,指令集中包括了判断各个第一子操作是否需要进行切分的预设条件,控制单元向指令集发送具体的判断指令,由指令集返回结果。

当第一子操作需要进行切分,则可以将第一子操作所处理的第一资源切分为多个第二资源,将第一子操作转换为多个处理第二资源的第二子操作。例如,第一子操作为写文件操作,该操作具体为将500万条数据写入文件,则该第一子操作所处理的第一资源为500万条数据,通过判断500万条数据超过了预设的资源数量,则该第一子操作需要进行切分,切分的过程可以将第一资源500万条数据切分为100个第二资源,每个第二资源为1万条数据,这样,可以将500万条数据写入文件的第一子操作转换为100个将1万条数据写入文件的第二子操作。转换后的多个处理第二资源的第二子操作可以并行执行,提高了资源处理效率。

在本发明的一些可能的实现方式中,将第一子操作所处理的第一资源切分为多个第二资源的具体实现可以包括:

将第一子操作所处理的第一资源切分为多个小于或等于资源处理阈值的第二资源;或者,将第一子操作所处理的第一资源按照资源关系划分为多个资源组,将每个资源组中的资源切分为多个小于或等于资源处理阈值的第二资源。

根据第一子操作以及第一子操作处理的第一资源可以对第一子操作进一步拆分,拆分后的多个第二子操作互不影响,并且允许并发执行。切分可以至少有两种方式:一种切分方式是将第一资源按资源处理阈值切分成等大的多个第二资源,即第一资源都按资源处理阈值切分,该方式优点是,每个第二资源都等大,最后一个第二资源可能小于资源处理阈值,缺点是第一资源间的业务关系可能被打破;另一种切分方式是根据资源间的业务关系将第一资源按照资源关系划分为多个资源组分组进行切分,第一资源中可以包括主资源和子资源,先用第一种切分方式将主资源切分为多个第二资源,在切分子资源时,需要遍历每一块主资源,根据主资源与子资源的关联关系以及资源处理阈值再将子资源切分成多个等大的第二资源,该方式优点是主子资源间业务关系是完整的,缺点是小于资源处理阈值的第二资源较多。

步骤103:按照执行顺序执行第一子操作和/或第二子操作,当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态。

当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态,即在混合资源的处理过程中任一步出错都将处理全部退回,以避免只处理了部分树中数据,造成存在数据片段的问题。

在本发明的一些可能的实现方式中,还包括:当各个第一子操作以及各个第二子操作全部执行成功,标记资源操作为结束状态。

在本发明的一些可能的实现方式中,还包括:将第一子操作和/或第二子操作登记至资源状态机中,在按照执行顺序执行第一子操作和/或第二子操作的过程中,实时更新第一子操作和/或第二子操作的执行状态。

资源状态机可以管理资源操作状态以及操作顺序。资源操作状态包括:初始、开始、结束、错误。状态的维护逻辑为当第一子操作或第二子操作没执行时为初始状态,当第一子操作或第二子操作开始执行前设置状态为开始状态,正确执行操作后设置第一子操作或第二子操作的状态为结束状态,如果第一子操作或第二子操作执行错误,将状态设置为错误状态。资源状态机将解析后的第一子操作以及第二子操作维护成具有先后顺序的层次关系,不同层次的操作按先后顺序执行,同层次内的操作可并发执行。当上一层次操作均为结束状态,可继续执行下一层次操作,如果上一层次操作有错误状态,则不继续执行下一层次操作。资源操作本身状态有两种:结束状态以及错误状态,当所有的第一子操作以及第二子操作均为结束状态,标记资源操作为结束状态,当有任意一个第一子操作或第二子操作为错误状态,资源操作为错误状态。

这样,本发明实施例将资源操作解析为顺序执行的多个第一子操作,并可以将第一子操作切分为多个第二子操作,处于同一执行顺序层次的第二子操作可以并发执行,提高了处理速度,这样能够在规定的时间内完成混合资源的处理,另外当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态,即在混合资源的处理过程中任一步出错都将处理全部退回,以避免只处理了部分树中数据,造成存在数据片段的问题。另外,本发明实施例对数据库、操作系统、应用服务器等基础软件没有特别的限制。

以下再结合实际应用场景,对本发明实施例提供的实现混合资源处理的方法进行说明。

本发明实施例的一个应用场景是在多租户系统中,在日终批量逻辑中将所有运行库中的已结束数据导出,并对这些数据加工成符合历史库规定的格式,然后将这些数据提交给历史库,最后在运行库中将这些数据删除。多租户系统的运行数据特点是:多个城市、多个数据库、多套表,同一套表中的数据结构是同构的。

在批量计划图中配置节点为:导出节点->提交节点->删除节点,导出节点的资源操作为导出操作。首先可以通过控制单元将导出操作解析为查询操作->写文件操作->加工文件操作这三个顺序执行的第一子操作;控制单元在进一步解析写文件操作时,向指令集发送是否需要切分指令,指令集返回真;然后控制单元通过资源池中的切分操作,将写文件操作切分成多个处理等大资源的第二子操作,这里可以采用将第一子操作所处理的第一资源按照资源关系划分为多个资源组,将每个资源组中的资源切分为多个小于或等于资源处理阈值的第二资源的方式进行切分;在解析加工文件操作时,与写文件操作类似,控制单元可以将加工文件拆分为多个加工文件操作。将所有解析后得到的资源操作通过资源状态机设置成初始状态。

当批量运行时,按序执行资源操作。将数据从多个城市、多个数据库、多套表中查询得到;当执行到写文件操作时,由于写文件操作已经被拆分为位于同一层的多个第二子操作操作,这些操作可并发执行,加工文件操作是对切分的数据加工成符合即将导入历史库规定的格式,类似的,加工文件操作也可以被拆分为位于同一层的多个第二子操作,这些操作也可并发执行。之后可以将将切分且加工好的数据块进行合并,合并也有两种方式:一种是直接合并,一种是按资源组合并,这两种合并方式的不同点在于,直接合并出错只回滚当前块的资源,而按资源组合并出错时需要回滚整个资源组内的所有资源块。最后可以将合并好的数据块导入到历史库中,完成导出操作。

如果所有的第一子操作以及第二子操作全部执行成功,整个导出操作执行结束。如果有任一个第一子操作或者第二子操作执行失败,该执行错误的操作被标记为错误状态,同时导出操作执行失败,且被标记成错误状态。在下一次批量执行时,在处理导出操作时,会查询出执行失败的导出操作,在该导出操作的操作图中继续尝试执行失败的资源操作。由此保证了资源操作的完整性和一致性。

相应的,本发明实施例中还提供一种实现混合资源处理的装置实施例,可以包括:

解析单元301,用于将输入的资源操作解析为顺序执行的多个第一子操作。

在本发明的一些可能的实现方式中,解析单元可以具体用于:根据资源池中预先设置的资源操作解析规则将输入的资源操作解析为顺序执行的多个第一子操作。

判断单元302,用于判断各个第一子操作是否需要进行切分。

切分单元303,用于如果判断单元的判断结果为第一子操作需要进行切分,将第一子操作所处理的第一资源切分为多个第二资源,将第一子操作转换为多个处理第二资源的第二子操作。

在本发明的一些可能的实现方式中,切分单元可以包括:

第一切分子单元或者第二切分子单元;

第一切分子单元,用于将第一子操作所处理的第一资源切分为多个小于或等于资源处理阈值的第二资源;

第二切分子单元,用于将第一子操作所处理的第一资源按照资源关系划分为多个资源组,将每个资源组中的资源切分为多个小于或等于资源处理阈值的第二资源。

执行单元304,用于按照执行顺序执行第一子操作和/或第二子操作。

第一标记单元305,用于当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态。

在本发明的一些可能的实现方式中,本发明实施例提供的实现混合资源处理的装置还可以包括:

第二标记单元,用于当各个第一子操作以及各个第二子操作全部执行成功,标记资源操作为结束状态。

在本发明的一些可能的实现方式中,本发明实施例提供的实现混合资源处理的装置还可以包括:

登记单元,用于将第一子操作和/或第二子操作登记至资源状态机中;

更新单元,用于在按照执行顺序执行第一子操作和/或第二子操作的过程中,实时更新第一子操作和/或第二子操作的执行状态。

这样,这样,本发明实施例将资源操作解析为顺序执行的多个第一子操作,并可以将第一子操作切分为多个第二子操作,处于同一执行顺序层次的第二子操作可以并发执行,提高了处理速度,这样能够在规定的时间内完成混合资源的处理,另外当第一子操作或者第二子操作中的任一个执行错误,回滚已执行的全部操作,并标记资源操作为错误状态,即在混合资源的处理过程中任一步出错都将处理全部退回,以避免只处理了部分树中数据,造成存在数据片段的问题。另外,本发明实施例对数据库、操作系统、应用服务器等基础软件没有特别的限制。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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