历史数据清理方法及装置与流程

文档序号:14686189发布日期:2018-06-14 23:46阅读:385来源:国知局

本发明涉及数据清理技术领域,尤其涉及一种历史数据清理方法及装置。



背景技术:

在很多领域的应用系统数据库中,每日都会新增大量数据,数据库的存量数据呈现持续增长的状态。随着数据量的上升,如果不能有效地控制在线数据规模,将影响生产数据访问效率、及应用系统运行的整体效率。因此,需定期扫描应用数据,将超过一定保存时间、不再具有使用价值的数据进行删除。

对于历史数据的清理,目前主要方法如下:建配置文件,逐一扫描配置文件中的记录,对相应的数据库中的表的数据进行删除。该方法存在以下弊端:

(1)这种方式仅适用于最简单的数据迁移清理场景,可扩展性差、无法在各系统中直接复用;

(2)对于表结构等环境的要求较高,无法自动调整迁移清理策略;

(3)不支持并发处理,在多表大数据量的情况下效率无法满足。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明提供了一种历史数据清理方法及装置,以至少解决现有技术中的历史数据清理方法无法在各系统中直接复用、不支持并发处理的问题。

根据本发明的一个方面,提供了一种历史数据清理方法,包括:根据预设的系统启动时间自动启动历史数据清理流程,获取清理策略配置文件,并根据所述清理策略配置文件生成至少一个清理任务;根据历史任务处理时间,计算每个清理任务的预计处理时间;按照所述预计处理时间,将待分配任务队列中的所述至少一个清理任务分配给空闲的清理单元,其中,所述清理单元依次对分配给自身的清理任务进行处理,并在每个清理任务处理完毕后输出对应的任务处理状态;根据所述任务处理状态判断处理是否成功,如果失败,则将处理失败的清理任务的状态改为待分配,放入所述待分配任务队列,等待重新进行分配。

在一个实施例中,在根据预设的系统启动时间自动启动历史数据清理流程之前,所述方法还包括:根据用户输入的信息生成系统配置文件和所述清理策略配置文件,并存储所述系统配置文件和所述清理策略配置文件;其中,所述系统配置文件包括:系统启动时间和重复清理次数;所述清理策略配置文件包括:数据库用户名、表名、清理频率、字段名、清理条件、是否需要备份和备份模式。

在一个实施例中,按照所述预计处理时间,将待分配任务队列中的所述至少一个清理任务分配给空闲的清理单元,包括:检测所述待分配任务队列中是否存在待分配的清理任务;如果存在待分配的清理任务,检测是否存在空闲的清理单元,如果存在空闲的清理单元,则按照所述待分配的清理任务对应的预计处理时间,将所述待分配的清理任务分配给空闲的清理单元;如果不存在空闲的清理单元,则继续检测是否存在空闲的清理单元,直到所述待分配任务队列中所有清理任务的状态都是已分配;如果不存在待分配的清理任务,则继续检测所述待分配任务队列中是否存在待分配的清理任务,直到所述待分配任务队列中所有清理任务的状态都是已完成。

在一个实施例中,在按照所述预计处理时间,将待分配任务队列中的所述至少一个清理任务分配给空闲的清理单元之前,所述方法还包括:判断待分配的清理任务是否需要备份;如果需要备份,则生成与所述待分配的清理任务对应的备份任务,并按照所述待分配的清理任务对应的预计处理时间,将所述备份任务分配给空闲的备份单元;如果不需要备份或者备份完毕,则按照所述待分配的清理任务对应的预计处理时间,将所述待分配的清理任务分配给空闲的清理单元。

在一个实施例中,在将所述备份任务分配给空闲的备份单元之前,所述方法还包括:检测是否存在空闲的备份单元;如果存在空闲的备份单元,则按照所述待分配的清理任务对应的预计处理时间,将所述备份任务分配给空闲的备份单元;如果不存在空闲的备份单元,则继续检测是否存在空闲的备份单元,直到所述待分配任务队列中所有备份任务的状态都是已分配。

在一个实施例中,在将所述备份任务分配给空闲的备份单元之后,所述方法还包括:所述备份单元从所述备份任务中获取备份参数信息,其中,所述备份参数信息包括:数据库用户名、表名、字段名、清理条件和备份模式;所述备份单元根据所述清理条件确定需要备份的数据范围;所述备份单元根据所述数据范围和所述备份模式生成备份文件。

在一个实施例中,所述清理单元依次对分配给自身的清理任务进行处理,包括:所述清理单元从所述清理任务中获取清理参数信息,其中,所述清理参数信息包括:数据库用户名、表名、清理频率、字段名、清理条件;所述清理单元结合清理数据量、全量数据量、预计处理时间和表结构,确定清理模式以及是否需要对表结构进行分区处理,其中,所述清理模式包括以下至少之一:删除模式、截断模式;所述清理单元根据所述清理模式和分区处理结果对所述清理任务进行清理。

在一个实施例中,将处理失败的清理任务的状态改为待分配,放入所述待分配任务队列,等待重新进行分配,包括:按照所述系统配置文件中的重复清理次数对处理失败的清理任务进行重新分配,如果在所述重复清理次数内仍处理失败,则输出告警信息。

根据本发明的另一个方面,提供了一种历史数据清理装置,包括:任务生成单元,用于根据预设的系统启动时间自动启动历史数据清理流程,获取清理策略配置文件,并根据所述清理策略配置文件生成至少一个清理任务;计算单元,用于根据历史任务处理时间,计算每个清理任务的预计处理时间;清理任务分配单元,用于按照所述预计处理时间,将待分配任务队列中的所述至少一个清理任务分配给空闲的清理单元;清理单元,用于依次对分配给自身的清理任务进行处理,并在每个清理任务处理完毕后输出对应的任务处理状态;判断单元,用于根据所述任务处理状态判断处理是否成功;处理单元,用于在处理失败的情况下,将处理失败的清理任务的状态改为待分配,放入所述待分配任务队列,等待重新进行分配。

在一个实施例中,所述装置还包括:配置文件生成单元,用于根据用户输入的信息生成系统配置文件和所述清理策略配置文件;存储单元,用于存储所述系统配置文件和所述清理策略配置文件;其中,所述系统配置文件包括:系统启动时间和重复清理次数;所述清理策略配置文件包括:数据库用户名、表名、清理频率、字段名、清理条件、是否需要备份和备份模式。

通过本发明的历史数据清理方法及装置,采用配置文件的形式,可根据各系统不同的需求定制合适的清理方案,从而可以在各系统中复用,降低系统开发和维护成本;支持多进程并发处理,按照预估的处理时间进行任务的平均分配,可以平衡各处理单元的资源利用,提高数据清理的效率;支持自动定时、定频进行数据清理,避免了人工干预带来的风险;实时监控任务处理状态,以保证数据不被少删。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的限定。在附图中:

图1是本发明实施例的历史数据清理方法的流程图;

图2是本发明实施例的历史数据清理装置的结构框图一;

图3是本发明实施例的历史数据清理装置的结构框图二;

图4是本发明实施例的历史数据清理装置的结构示意图;

图5是本发明实施例的启动及任务生成单元的结构示意图;

图6是本发明实施例的清理策略配置及存储单元的结构示意图;

图7是本发明实施例的任务分配单元的结构示意图;

图8是本发明实施例的任务分配的流程图;

图9是本发明实施例的备份任务处理单元的结构示意图;

图10是本发明实施例的清理任务处理单元的结构示意图;

图11是本发明实施例的状态监控单元的结构示意图;

图12是本发明实施例的历史数据清理的整体工作流程图。

具体实施方式

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

本发明实施例提供了一种历史数据清理方法,图1是本发明实施例的历史数据清理方法的流程图。如图1所示,该方法包括如下的步骤S101至步骤S104。

步骤S101,根据预设的系统启动时间自动启动历史数据清理流程,获取清理策略配置文件,并根据清理策略配置文件生成至少一个清理任务。

步骤S102,根据历史任务处理时间,计算每个清理任务的预计处理时间。具体地,可以根据各任务历史处理情况预估各任务的本次处理时间,例如,可以将最近n次的平均处理时间作为本次执行时间。

步骤S103,按照预计处理时间,将待分配任务队列中的至少一个清理任务分配给空闲的清理单元,其中,清理单元依次对分配给自身的清理任务进行处理,并在每个清理任务处理完毕后输出对应的任务处理状态。

步骤S104,根据任务处理状态判断处理是否成功,如果失败,则将处理失败的清理任务的状态改为待分配,放入待分配任务队列,等待重新进行分配。

通过上述方法,采用配置文件的形式,可根据各系统不同的需求定制合适的清理方案,从而该方法可以在各系统中复用,降低系统开发和维护成本;支持多进程并发处理,按照预估的处理时间进行任务的平均分配,可以平衡各处理单元的资源利用,提高数据清理的效率;支持自动定时、定频进行数据清理,避免了人工干预带来的风险;实时监控任务处理状态,以保证数据不被少删。

在一个实施例中,在步骤S101根据预设的系统启动时间自动启动历史数据清理流程之前,上述方法还可以包括生成配置文件的步骤,具体如下:根据用户输入的信息生成系统配置文件和清理策略配置文件,并存储系统配置文件和清理策略配置文件。其中,系统配置文件中至少需要设置:系统启动时间和重复清理次数;清理策略配置文件中至少需要设置:数据库用户名、表名、清理频率、字段名、清理条件、是否需要备份和备份模式。

配置文件中主要的参数配置及设置依据如下:

(1)设置清理频率:间隔多长时间执行一次,或每次把从数据产生时点开始超过多久的数据清理掉,或者两种方式相结合的方式。

(2)设置清理条件:可按某一简单字段(例如,更新日期)对数据进行清理,也可设置复杂条件,对满足条件的记录进行清理。

(3)备份:对于由于某些原因清理后仍需要将数据归档保存的表,配置为需要备份,并设置备份模式(也可称为数据导出模式),例如可以选择文本、语句、dmp等模式。

本实施例中,采用配置文件的形式,可根据各系统不同的需求定制合适的清理方案,从而该历史数据清理方法可以在各系统中复用,降低系统开发和维护成本。

在一个实施例中,步骤S103中分配清理任务可以通过以下步骤实现:

检测待分配任务队列中是否存在待分配的清理任务;

如果存在待分配的清理任务,检测是否存在空闲的清理单元,如果存在空闲的清理单元,则按照待分配的清理任务对应的预计处理时间,将待分配的清理任务分配给空闲的清理单元;如果不存在空闲的清理单元,则继续检测是否存在空闲的清理单元,直到待分配任务队列中所有清理任务的状态都是已分配;

如果不存在待分配的清理任务,则继续检测待分配任务队列中是否存在待分配的清理任务,直到待分配任务队列中所有清理任务的状态都是已完成。

本实施例中,待分配任务队列中的任务可以设置为如下状态:待分配、已分配、已完成。按照预估处理时间将清理任务分配给多个清理单元,进行清理任务的平均分配,做到最接近的平均,而不是简单的以任务个数来分配,平衡了各清理单元的资源利用,能够提高迁移清理的效率。

在一个实施例中,考虑到有些数据需要备份,在分配清理任务之前,上述方法还可以包括:判断待分配的清理任务是否需要备份;如果需要备份,则生成与待分配的清理任务对应的备份任务,并按照待分配的清理任务对应的预计处理时间,将备份任务分配给空闲的备份单元;如果不需要备份或者备份完毕,则按照待分配的清理任务对应的预计处理时间,将待分配的清理任务分配给空闲的清理单元。

其中,在分配备份任务之前,同样可以检测是否存在空闲的备份单元;如果存在空闲的备份单元,则按照待分配的清理任务对应的预计处理时间,将备份任务分配给空闲的备份单元;如果不存在空闲的备份单元,则继续检测是否存在空闲的备份单元,直到待分配任务队列中所有备份任务的状态都是已分配。

同样的,与清理任务对应的备份任务也可以放入待分配任务队列中,并可以设置待分配、已分配、已完成三种状态。另外,也可以计算备份所需的预计时间,根据预估时间分配备份任务。

在一个实施例中,在将备份任务分配给空闲的备份单元之后,备份单元对数据进行备份的过程包括:备份单元从备份任务中获取备份参数信息,其中,备份参数信息包括:数据库用户名、表名、字段名、清理条件和备份模式;备份单元根据清理条件确定需要备份的数据范围;备份单元根据数据范围和备份模式生成备份文件。

备份单元对备份任务进行处理以后,也可以输出任务处理状态,以判断是否备份成功,进而进行数据清理或重新备份。

在一个实施例中,清理单元对分配给自身的清理任务进行处理,包括:清理单元从清理任务中获取清理参数信息,其中,清理参数信息包括:数据库用户名、表名、清理频率、字段名、清理条件;清理单元结合清理数据量、全量数据量、预计处理时间和表结构,确定清理模式以及是否需要对表结构进行分区处理,其中,清理模式包括以下至少之一:删除模式、截断模式;清理单元根据清理模式和分区处理结果对清理任务进行清理。

其中,清理单元可以对表结构进行分区处理,具备自适应的表结构处理能力。系统可自动对表结构及数据进行分析,并根据分析结果作不同的处理:

(1)对于每个清理任务,分析清理集合与全量集合及表结构的关系,选用删除模式、截断模式、或者两者结合的清理模式。例如:oracle里的DELETE模式和TRUNCATE模式,如果清理整张表的数据,选用TRUNCATE模式;如果清理表中一个或多个完整分区的数据,选用删除分区的模式。

(2)选用删除模式后,分析表结构,若数据量大、直接删除效率低,则按一定的规则将表进行分区,分区后可直接删除分区,或指定分区删除部分数据。清理结束后,可恢复原表结构,将分区建议返回给用户;也可设置为默认接受系统分区。

本实施例中,清理单元具有自适应的表结构处理能力,针对不同情况对表结构进行分区处理,选择最有效的清理方式,大大提高了历史数据清理的效率。

在一个实施例中,步骤S104中可以按照系统配置文件中的重复清理次数对处理失败的清理任务进行重新分配,如果在重复清理次数内仍处理失败,则输出告警信息。本实施例中,对于处理不成功的清理任务,将给予N次(在系统配置文件中配置)重新处理的机会,对于N次仍不成功的,系统将自动发送警告信息给管理员,进行人工介入。实时监控任务处理状态,以保证数据不被少删。

基于同一发明构思,本发明实施例还提供了一种历史数据清理装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于历史数据清理装置解决问题的原理与历史数据清理方法相似,因此历史数据清理装置的实施可以参见历史数据清理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是本发明实施例的历史数据清理装置的结构框图,如图2所示,该历史数据清理装置包括:任务生成单元21、计算单元22、清理任务分配单元23、清理单元24、第一判断单元25和处理单元26,下面对该结构进行具体说明。

任务生成单元21,用于根据预设的系统启动时间自动启动历史数据清理流程,获取清理策略配置文件,并根据清理策略配置文件生成至少一个清理任务;

计算单元22,用于根据历史任务处理时间,计算每个清理任务的预计处理时间;

清理任务分配单元23,用于按照预计处理时间,将待分配任务队列中的至少一个清理任务分配给空闲的清理单元;

清理单元24,用于依次对分配给自身的清理任务进行处理,并在每个清理任务处理完毕后输出对应的任务处理状态;

第一判断单元25,用于根据任务处理状态判断处理是否成功;

处理单元26,用于在处理失败的情况下,将处理失败的清理任务的状态改为待分配,放入待分配任务队列,等待重新进行分配。

通过上述装置,采用配置文件,可根据各系统不同的需求定制合适的清理方案,从而可以在各系统中复用,降低系统开发和维护成本;支持多进程并发处理,按照预估的处理时间进行任务的平均分配,可以平衡各处理单元的资源利用,提高数据清理的效率;支持自动定时、定频进行数据清理,避免了人工干预带来的风险;实时监控任务处理状态,以保证数据不被少删。

在一个实施例中,上述装置还可以包括:配置文件生成单元,用于根据用户输入的信息生成系统配置文件和清理策略配置文件;存储单元,用于存储系统配置文件和清理策略配置文件;其中,系统配置文件包括:系统启动时间和重复清理次数;清理策略配置文件包括:数据库用户名、表名、清理频率、字段名、清理条件、是否需要备份和备份模式。

在一个实施例中,清理任务分配单元23包括:第一检测模块,用于检测待分配任务队列中是否存在待分配的清理任务;第一处理模块,用于在存在待分配的清理任务的情况下,检测是否存在空闲的清理单元,如果存在空闲的清理单元,则按照待分配的清理任务对应的预计处理时间,将待分配的清理任务分配给空闲的清理单元;如果不存在空闲的清理单元,则继续检测是否存在空闲的清理单元,直到待分配任务队列中所有清理任务的状态都是已分配;第二处理模块,用于在不存在待分配的清理任务的情况下,继续检测待分配任务队列中是否存在待分配的清理任务,直到待分配任务队列中所有清理任务的状态都是已完成。

在一个实施例中,如图3所示,上述装置还可以包括:第二判断单元27,用于在分配清理任务之前,判断待分配的清理任务是否需要备份;备份任务分配单元28,用于在需要备份的情况下,生成与待分配的清理任务对应的备份任务,并按照待分配的清理任务对应的预计处理时间,将备份任务分配给空闲的备份单元;备份单元29,用于对备份任务进行处理;清理任务分配单元23,还用于在不需要备份或者备份完毕的情况下,按照待分配的清理任务对应的预计处理时间,将待分配的清理任务分配给空闲的清理单元。

在一个实施例中,备份任务分配单元28包括:第二检测模块,用于在分配备份任务之前,检测是否存在空闲的备份单元;第三处理模块,用于在存在空闲的备份单元的情况下,按照待分配的清理任务对应的预计处理时间,将备份任务分配给空闲的备份单元;以及在不存在空闲的备份单元的情况下,继续检测是否存在空闲的备份单元,直到待分配任务队列中所有备份任务的状态都是已分配。

在一个实施例中,备份单元29包括:第一获取模块,用于从备份任务中获取备份参数信息,其中,备份参数信息包括:数据库用户名、表名、字段名、清理条件和备份模式;第一确定模块,用于根据清理条件确定需要备份的数据范围;备份模块,用于根据数据范围和备份模式生成备份文件。

在一个实施例中,清理单元24包括:第二获取模块,用于从清理任务中获取清理参数信息,其中,清理参数信息包括:数据库用户名、表名、清理频率、字段名、清理条件;第二确定模块,用于结合清理数据量、全量数据量、预计处理时间和表结构,确定清理模式以及是否需要对表结构进行分区处理,其中,清理模式包括以下至少之一:删除模式、截断模式;清理模块,用于根据清理模式和分区处理结果对清理任务进行清理。

在一个实施例中,处理单元26具体用于按照系统配置文件中的重复清理次数对处理失败的清理任务进行重新分配,如果在重复清理次数内仍处理失败,则输出告警信息。

当然,上述模块划分只是一种示意划分,本发明并不局限于此。只要能实现本发明的目的的模块划分,均应属于本发明的保护范围。

为了对上述历史数据清理方法及装置进行更为清楚的解释,下面结合具体的实施例以及图4至图12来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。

图4是本发明实施例的历史数据清理装置的结构示意图,如图4所示,该装置包括:启动及任务生成单元1(实现了上述任务生成单元21的功能)、清理策略配置及存储单元2(实现了上述配置文件生成单元和存储单元的功能)、任务分配单元3(实现了上述清理任务分配单元23、第二判断单元27和备份任务分配单元28的功能)、备份任务处理单元4(实现了上述备份单元29的功能)、清理任务处理单元5(实现了上述计算单元22和清理单元24的功能)和状态监控单元6(实现了上述第一判断单元25和处理单元26的功能)。

启动及任务生成单元1主要负责根据用户设置的时间自动启动并生成清理任务和/或备份任务。

清理策略配置及存储单元2接收用户输入的配置信息并存储到配置文件库中。启动及任务生成单元1从清理策略配置及存储单元2中获取清理策略配置文件。

任务分配单元3,用于分配任务列表。启动及任务生成单元1生成清理任务和/或备份任务后,任务分配单元3首先根据历史平均任务处理时效,预估每个任务实例执行时间,然后每隔一段时间获取部分待执行的任务实例,并按处理时间将任务平均分配给空闲的备份任务处理单元4或清理任务处理单元5。

备份任务处理单元4,用于在清理前进行数据存档备份。对于配置为需要备份的清理任务,首先将对应的备份任务分配给备份任务处理单元4,根据配置信息中的数据导出模式将数据导出,完成备份后,由清理任务处理单元5进行清理。

清理任务处理单元5,用于处理清理任务。从内部待执行任务队列中获取一条待执行的任务,执行完毕后,返回执行状态给状态监控单元6。状态监控单元6收到执行状态后,判断若为成功,则进入下一条任务的处理;若为失败,该任务将再次进入待执行任务队列,由任务分配单元3进行分配。

图5是本发明实施例的启动及任务生成单元的结构示意图,如图5所示,启动及任务生成单元1至少包括:启动模块11、清理策略读取模块12、备份任务生成模块13和清理任务生成模块14。其中,启动模块11根据系统配置文件中配置的时间自动启动,启动后,清理策略读取模块12读取清理策略配置单元2中的清理策略配置文件,清理任务生成模块14按照配置生成清理任务,如果需要备份,则备份任务生成模块13生成对应的备份任务。

图6是本发明实施例的清理策略配置及存储单元的结构示意图,如图6所示,清理策略配置及存储单元2至少包括:配置操作模块21和配置存储模块22。其中,配置操作模块21接收用户的输入并根据该输入生成配置文件,配置存储模块22用于存储系统配置文件和清理策略配置文件。

图7是本发明实施例的任务分配单元的结构示意图,如图7所示,任务分配单元3至少包括:任务处理时间计算模块31、任务获取模块32、空闲备份单元获取模块33、空闲清理单元获取模块34和任务分配模块35。其中,任务处理时间计算模块31根据各任务历史处理情况预估各任务本次处理时间,任务获取模块32获取待执行的任务,空闲清理单元获取模块34获取空闲的清理任务处理单元后,任务分配模块35可按照预估的处理时间进行任务的平均分配,做到最接近的平均,而不是简单的以任务个数来分配,提高清理效率。如果数据需要备份,则空闲备份单元获取模块33获取空闲的备份任务处理单元,任务分配模块35分配备份任务给空闲的备份任务处理单元。

图8是本发明实施例的任务分配的流程图,如图8所示,包括如下步骤:

步骤S801,备份及清理任务生成后,任务处理时间计算模块31根据任务号统计各任务在过去一段时间的执行情况,估算各任务本次的执行时间。

步骤S802,任务获取模块32循环检测任务队列中是否有待分配任务,如果有则进入步骤S803,如果没有则继续检测,直到所有任务都是已完成状态为止。

步骤S803,任务获取模块32判断任务是否需要备份。如果无需备份,进入步骤S804;如果需要备份,进入步骤S806。

步骤S804,空闲清理单元获取模块34循环检测是否有空闲的清理任务处理单元。如果有空闲单元,则进入步骤S805,如果没有空闲单元,则继续检测,直到所有任务都是已分配状态。

步骤S805,任务分配模块35分配清理任务。具体地,可以将任务队列中的清理任务选择一部分平均分配给各空闲的清理任务处理单元。

步骤S806,空闲备份单元获取模块33循环检测是否有空闲的备份任务处理单元。如果有空闲单元,则进入步骤S807,如果没有空闲单元,则继续检测,直到所有任务都是已分配状态。

步骤S807,任务分配模块35分配备份任务。具体地,可以将任务队列中的备份任务选择一部分平均分配给各空闲的备份任务处理单元。

图9是本发明实施例的备份任务处理单元的结构示意图,如图9所示,备份任务处理单元4至少包括:备份参数获取模块41和备份模块42。其中,备份参数获取模块41从备份任务实例中获取备份参数信息,包括:数据库用户名、表名、字段名、清理条件、备份模式,备份模块42通过清理条件即可确定需备份的数据范围,进而根据备份模式生成备份文件。

图10是本发明实施例的清理任务处理单元的结构示意图,如图10所示,清理任务处理单元5至少包括:清理参数获取模块51、当前表结构识别模块52、当前表结构处理模块53和清理模块54。其中,清理参数获取模块51获取清理参数信息,当前表结构识别模块52结合清理数据量、全量数据量、预估清理时间、表结构,调用分析函数,识别清理模式及是否需要先处理表结构;当前表结构处理模块53对表结构进行分区处理,清理模块54对清理任务进行处理。

图11是本发明实施例的状态监控单元的结构示意图,如图11所示,状态监控单元6至少包括:任务处理状态接收模块61和任务状态更新模块62。状态监控单元6实时监控任务处理状态,以保证数据不被少删。对于处理不成功的备份或清理任务,将给予N次(在系统配置文件中配置)重新处理的机会,对于N次仍不成功的,系统将自动发送警告信息给管理员,进行人工介入。

图12是本发明实施例的历史数据清理的整体工作流程图,如图12所示,具体步骤如下:

步骤S1201,启动及任务生成单元1根据系统配置信息自动启动系统。

步骤S1202,系统启动后,可在清理策略配置及存储单元2中配置清理策略或其它系统信息。其中,本步骤中的配置也可以在启动系统之前完成。

步骤S1203,启动及任务生成单元1从配置文件库的清理策略配置文件中读取数据清理相关配置信息。

步骤S1204,启动及任务生成单元1根据配置信息生成清理任务列表。如果需要备份,也生成对应的备份任务,放入任务列表中。

步骤S1205,任务分配单元3根据任务号统计过去一段时间的执行情况,估算本次执行时间,本次执行时间为最近n次的平均处理时间。

步骤S1206,任务分配单元3循环检测队列中是否有待分配的任务,如果有则进入步骤S1207,如果没有则继续检测,直到所有任务都是已完成状态为止。

步骤S1207,任务分配单元3判断是否需要备份。如果需要备份,则进入步骤S1209,如果无需备份,则进入步骤S1208。

步骤S1208,任务分配单元3循环检测是否有空闲的清理任务处理单元。如果有空闲的清理任务处理单元,则转到步骤S1210,如果没有空闲单元,则继续检测。

步骤S1209,任务分配单元3循环检测是否有空闲的备份任务处理单元。如果有空闲的备份任务处理单元,则转到步骤S1211,如果没有空闲单元,则继续检测。

步骤S1210,任务分配单元3分配清理任务,根据估算的执行时间,将任务队列中的任务选择一部分平均分配给各空闲的清理任务处理单元,转入步骤S1212。

步骤S1211,任务分配单元3分配备份任务。同样的,根据估算的执行时间,将备份任务平均分配给各个空闲的备份任务处理单元,转入步骤S1213。

步骤S1212,清理任务处理单元5检测是否有待执行清理任务。如果当前清理任务处理单元有待处理的清理任务,则进入步骤S1214逐条处理,否则进入继续等待和检测。

步骤S1213,备份任务处理单元4检测是否有待执行的备份任务。如果当前备份任务处理单元有待处理的备份任务,则进入步骤S1215逐条处理,否则进入继续等待和检测。

步骤S1214,清理任务处理单元5处理清理任务。该步骤是最核心的步骤,其具体处理方式在前面的历史数据清理方法实施例和描述清理任务处理单元5时已经详细阐述。

步骤S1215,备份任务处理单元4处理备份任务。

步骤S1216,状态监控单元6判断是否处理成功。如果处理成功,则流程结束;如果某任务处理不成功,则重新将该任务标志为待分配任务,等待下一次重新处理,回到步骤S1204。每个任务重新处理的次数不是无限的,可以在系统配置文件中进行配置。

以下是系统配置文件的示例:

在上述系统配置文件示例中,在每日19点启动历史数据清理装置,对于处理失败的备份任务或清理任务给予3次重新处理的机会。

以下是清理策略配置文件的示例:

在上述清理策略配置文件示例中,以“TRD_FX_FORWARD_DETAIL”表为例,每日对超过到期日(MATURITY_DATE)3年且满足条件币种1和币种2都不等于人民币(CCY1!='CNY'ANDCCY2!='CNY')的记录进行备份后清理。如果有多个表要清理,只需在该配置文件中增加相应配置即可。

下面以某系统为例,总结了采用本发明的方法及装置前后数据清理效果的对比。该系统总共涉及约500张表,每日需对约10亿条数据进行清理。

表1数据清理效果对比表

从上表可以看出,本发明在维护成本、测试成本、耗时、复用性上都明显优于该系统曾采用过的最原始的直接编码方法、简单配置方法,为系统的维护节约了成本,提高了系统运行的稳定性及效率。

综上所述,本发明提供了一种通用的历史数据清理方法及装置,打破了常规数据清理方法的局限性,具有如下效果:

(1)易于在各种系统(数据库)中使用,减少了各类资源成本。

本发明提供的方法和装置,可直接在各种系统(数据库)中落地使用,无需进行额外开发,各系统(数据库)仅需根据需求配置清理策略配置文件即可投入使用,后续若有新增表,也仅需配置该文件,无需开发代码,极大地减少了工作量,并保证了软件质量。

(2)有效解决了历史数据清理的效率问题,满足了大数据量的快速清理。

本发明提供的方法和装置,支持多进程并发处理,大大提高了历史数据清理的效率;智能化的任务分配方式,保证了各进程间任务量的均衡;自适应的表结构处理能力,能够自动分析最有效的清理方式并自动进行表结构处理,进一步提高了单进程的处理效率。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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