删除中间层数据的方法、系统和装置与流程

文档序号:13164524阅读:462来源:国知局
删除中间层数据的方法、系统和装置与流程
本发明涉及数据处理
技术领域
,具体地说,涉及一种在复杂数据加工中,删除中间层数据的方法、系统和装置。
背景技术
:在数据仓库、大数据(bigdata)等复杂的数据加工场景中,在将原始数据加工成目标数据的过程中,需要经过若干个中间加工步骤。在加工的过程中,除了数据源与结果数据以外,还会生成各种中间数据,业界通常称之为中间层。中间层虽然是组成复杂数据加工的一个重要层次,然而,中间层除了利于数据的加工与计算,本身存在的价值并不大,反而会加大数据建设的开销,增加存储与管理成本。如果在数据加工中能删除中间层中不再使用的数据,将为企业节省一大笔用于存储数据的开销,从而减低企业的运营成本。传统的复杂数据加工遵循逐层加工原则,对数据分层次进行加工,并保留中间加工过程的数据。在部分具体的场景中,当判断中间层已经不再使用时,在加工完成之后,手动在程序里添加数据删除的代码,从而完成中间层的数据删除。由于大部分时候保留中间层数据,这种情形会导致大量的数据冗余,并且增加中间层模型的管理成本。对于目前删除中间层数据的方法,需要在程序中手动添加删除代码,不够灵活,并且增加了程序维护成本。技术实现要素:本发明要解决的技术问题在于,针对现有技术中的不足,提供一种在复杂数据加工中删除中间层数据的方法、系统和装置,在数据加工完成之后自动删除中间层数据,释放资源。为了解决上述技术问题,根据本发明的一个方面,本发明提供了一种删除数据加工时产生的中间层数据的方法,其中,包括:在执行数据加工任务时,根据数据血缘关系,建立具有多个节点的数据血缘关系树型结构图;根据所述血缘关系树型结构图,建立节点之间的父子关系表;记录数据加工完成日志,所述日志至少包括一个或多个完成节点;分析所述数据加工完成日志的完成节点,根据所述完成节点,从所述父子关系表中查询得到所述完成节点的父节点;根据所述父节点查询所述数据加工完成日志;判断所述数据加工完成日志中是否包含了所述完成节点的父节点,如果包含,删除所述完成节点的数据,并从所述数据加工完成日志中删除所述完成节点。优选地,所述数据加工完成日志还包括完成节点对应的完成时间。优选地,所述分析所述数据加工完成日志的完成节点的步骤包括:按完成节点的完成时间,从完成时间最早的完成节点开始分析。优选地,血缘关系树型结构图包括多个代表源数据的叶子节点、多个代表中间层数据的中间节点和一个代表目标数据的根节点;所述数据节点加工完成日志中的完成节点为中间节点或根节点。优选地,从所述父子关系表中查询所述完成节点的父节点之前,判断所述完成节点是否为根节点,如果不是根节点,查询所述完成节点的父节点,如果是根节点,结束对该完成节点的分析。优选地,所述父节点为一个或多个,当为多个时,在所述判断所述数据加工完成日志中是否包含了所述完成节点的父节点步骤中,判断数据加工完成日志中是否包含了所述完成节点的所有父节点,在数据加工完成日志中包含了所述完成节点的所有父节点时,删除所述完成节点的数据,并从所述数据加工完成日志中删除所述完成节点。为了解决上述技术问题,根据本发明的另一个方面,本发明提供了一种删除数据加工时产生的中间层数据的系统,其中,包括:数据血缘关系树型结构图建立模块,用于根据数据加工任务的数据,建立数据血缘关系树型结构图;父子关系表建立模块,与所述数据血缘关系树型结构图建立模块相连接,用于建立节点之间的父子关系表;数据加工完成日志记录模块,用于记录完成数据加工的节点;中间层扫描模块,分析数据加工完成日志中的完成节点,确定可以删除的节点;和删除模块,用于根据所述中间层扫描模块发送的触发信息,删除节点数据,并从数据加工完成日志中删除所述节点。优选地,所述中间层扫描模块包括:节点提取单元,用于从所述数据加工完成日志中提取待分析的完成节点;查询单元,用于根据所述待分析的完成节点,从所述父子关系表中获取与其对应的父节点,并根据所述父节点,查询所述数据加工完成日志,确定所述数据加工完成日志是否包含了所述父节点;删除触发单元,用于在当所述数据加工完成日志包含了所述父节点时,向所述删除模块发送触发信息。为了解决上述技术问题,根据本发明的又一个方面,本发明提供了一种删除中间层数据的装置,至少包括存储器和处理器,所述存储器用于存储数据和指令,所述处理器用于执行所述指令,其中,所述处理器根据所述指令被配置为:在执行数据加工任务时,根据数据血缘关系,建立具有多个节点的数据血缘关系树型结构图;根据所述血缘关系树型结构图,建立节点之间的父子关系表;记录数据加工完成日志,所述日志至少包括一个或多个完成节点;分析所述数据加工完成日志的完成节点,根据所述完成节点,从所述父子关系表中查询得到所述完成节点的父节点;根据所述父节点查询所述数据加工完成日志,判断所述数据加工完成日志中是否包含了所述完成节点的父节点,如果包含,删除所述完成节点的数据,并从所述数据加工完成日志中删除所述完成节点。本发明将对中间层数据的删除独立于数据加工程序,不用在数据加工中再增加删除数据的代码,并且可以做到中间数据的即时删除,在第一时间释放不必要的存储空间,降低了企业运营成本。附图说明通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:图1为本发明所述删除数据加工时产生的中间层数据的系统的结构原理框图;图2为本发明所述数据血缘关系树型结构示意图;图3为本发明所述删除数据加工时产生的中间层数据的方法的流程示意图;图4为本发明所述中间层扫描模块的结构原理框图;和图5为本发明所述删除数据加工时产生的中间层数据装置的结构原理框图。具体实施方式以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。本发明提供了一种删除数据加工时产生的中间层数据的方法和系统,无需在数据加工程序中嵌入删除代码,也可以达到即时删除中间层数据的效果。如图1所示,所述系统包括:数据血缘关系树型结构图建立模块1、父子关系表建立模块2、数据加工完成日志记录模块3、中间层扫描模块4和删除模块5。其中,数据血缘关系树型结构图建立模块1用于根据数据加工任务的数据,建立数据血缘关系树型结构图;如图2所示,为程序中方便使用,命名为t1。其中,节点s代表源数据,是数据加工过程中形成所述树型结构图中的叶子节点,由于其为源数据,所以是需要保留的数据。节点t是数据加工过程中的目标,是树型结构图加工中的根节点,也是需要保留的数据。而节点m是在数据加工过程中形成的中间层,这个层次的数据是可以删除的。其中,所述数据血缘关系记录了数据在数据流中的演化,记载了对数据处理的整个历史,包括数据加工中的数据的来源、去向。通常通过数据追踪来获得数据在数据流中的演化过程,可以采用最基本父子关系进行记录。所述父子关系表建立模块2与所述数据血缘关系树型结构图建立模块1相连接,用于建立节点之间的父子关系表。例如,根据图2所示的树型结构图,可以得到如下表1所述的父子关系表,为程序中方便使用,命名为t2:表1通过表1可知,除了根节点t,其他每一个节点都有父节点,父子节点关系也有多种情况:一个父节点有多个子节点,或一个子节点有多个父节点,如节点m2有两个父节点m3和m4。数据加工完成日志记录模块3用于记录完成数据加工的节点。由于图2中的叶子节点数据是源数据,因而不需要记录叶子节点的完成情况,只记录中间节点和根节点的数据加工完成情况。通常,在数据加工过程中,每完成一个节点数据的加工,则在数据加工完成日志中记录一条记录。所述记录至少包括已完成数据加工的节点,通常还包括该节点完成数据加工的时间,如表2所示,为程序中方便使用,命名为t3:表2节点(node)完成时间(y-m-d-h-m-s)m1xxxx-xx-xx-xx-xx-xxm2xxxx-xx-xx-xx-xx-xx............中间层扫描模块4分析数据加工完成日志中的完成节点,确定可以删除的节点。确定可删除节点的原则是:如果数据中间层节点对应的父节点数据加工完全完成,则意味着该中间层节点的数据已经符合删除条件,即可以执行删除了。此时,中间层扫描模块4会发送删除操作的触发信息给所述的删除模块5,所述的删除模块5根据所述中间层扫描模块4发送的触发信息,删除相应的节点数据,并从数据加工完成日志中删除所述节点。在本发明所述的在删除中间层数据的系统中,所述中间层扫描模块4如图4所示,包括:节点提取单元41、查询单元42和删除触发单元43。其中,所述节点提取单元41从所述数据加工完成日志中提取待分析的完成节点;所述查询单元42根据所述待分析的完成节点,从所述父子关系表1中获取与其对应的父节点,并根据所述父节点,查询所述数据加工完成日志,确定所述数据加工完成日志是否包含了所述父节点;所述删除触发单元43在当所述数据加工完成日志包含了所述父节点时,向所述删除模块5发送触发信息。具体的删除中间层数据的方法如图3所示,所述方法包括:步骤s1,在执行数据加工任务时,根据数据血缘关系,建立具有多个节点的数据血缘关系树型结构图;步骤s2,根据所述血缘关系树型结构图,建立节点之间的父子关系表;步骤s3,记录数据加工完成日志,所述日志至少包括一个或多个完成节点;步骤s4,从数据加工完成日志中取一完成节点分析。其中,提取完成时间最早的数据节点。如果有完成时间相同的数据节点,任意取一条。例如,具体提取语句如下:selectnodefrom(selectnodefromt3orderbytimedesc)tlimit1;把执行结果放到变量[完成节点],定义为finish_node步骤s5,判断当前所取的完成节点finish_node是否为根节点,如果是根节点,则跳至步骤s10,判断数据加工完成日志中是否还有未分析的节点,如有,返回步骤s4。如没有,则结束。如果所取的完成节点finish_node不是根节点,则跳到步骤s6。步骤s6,根据所述完成节点,从所述父子关系表中查询得到所述完成节点的父节点。具体地sql语句如下:selectt2.father_nodefromt2wheret2.node=finish_node将执行结果放到变量[完成节点的父节点],定义为father_of_finish_node步骤s7,根据所述父节点查询所述数据加工完成日志;步骤s8,判断所有父节点(father_of_finish_node)是否全部完全存在,若完全存在,即证明该完成节点finish_node对应的父节点完全加工完成,该完成数据节点finish_node满足删除条件;执行步骤s9。如果不符合,跳至步骤10,判断数据加工完成日志中是否还有未分析的节点,如有,返回步骤s4。如没有,则结束。步骤s9,删除所述完成节点的数据,并从所述数据加工完成日志中删除所述完成节点。然后执行步骤s10。通过上述系统和方法的实施例可见,本发明无需在数据加工程序中写入删除中间层数据的代码,本发明可以根据数据加工过程中的具体情况,随时删除不必要的中间层数据,无需人为添加删除代码,不需要进行程序维护,因此与现有技术相比,既可以随时释放存储空间,又减少了维护成本。本发明还提供了一种删除中间层数据的装置,如图5所示。所述装置至少包括处理器100和存储器101。其中,存储器101用于存储数据和指令,所述处理器100用于执行所述指令,其中,所述处理器根据所述指令被配置为如图3所示。具体地,所述存储器103存储所述数据血缘关系树型结构图、父子关系表和数据加工完成日志,所述处理器按照如图3所示的流程完成中间层数据的删除。本发明将对中间层数据的删除独立于数据加工程序,不用在数据加工中再增加删除数据的代码,并且可以做到中间数据的即时删除,在第一时间释放不必要的存储空间,降低企业运营成本。以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1