掌桥专利:专业的专利平台
掌桥专利
首页

数据归档处理方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 09:27:35


数据归档处理方法、装置、计算机设备及存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种数据归档处理方法、装置、计算机设备及存储介质。

背景技术

在MySQL、Oracle、Postgres等关系型数据库中,若数据表记录的数据量较大时(如达到千万级以上)时,其增删查改操作性能会急剧下降,使得增删查改操作效率降低;而且,关系型数据库的存储成本较高。

发明内容

本发明实施例提供一种数据归档处理方法、装置、计算机设备及存储介质,以解决关系型数据库存储数据量较大的数据时,存在操作性能下降,效率低且成本高的问题。

一种数据归档处理方法,包括:

扫描归档配置表,从所述归档配置表中获取与系统当前时间相匹配的目标归档信息;

获取并执行与所述目标归档信息相对应的目标建表脚本和目标迁移脚本,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表中;

对所述待归档数据进行数据校验,获取归档校验结果;

若所述归档校验结果为归档成功,则执行数据删减逻辑,对所述待归档数据表中的已归档数据进行数据删减处理。

一种数据归档处理装置,包括:

配置表扫描模块,用于扫描归档配置表,从所述归档配置表中获取与系统当前时间相匹配的目标归档信息;

数据迁移模块,用于获取并执行与所述目标归档信息相对应的目标建表脚本和目标迁移脚本,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表中;

数据校验模块,用于对所述待归档数据进行数据校验,获取归档校验结果;

数据删减模块,用于若所述归档校验结果为归档成功,则执行数据删减逻辑,对所述待归档数据表中的已归档数据进行数据删减处理。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据归档处理方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据归档处理方法。

上述数据归档处理方法、装置、计算机设备及存储介质,通过扫描归档配置表,从归档配置表中获取与系统当前时间相匹配的目标归档信息,以基于目标归档信息获取并执行目标建表脚本和目标迁移脚本,以实现将待归档数据从源数据库迁移到目标数据库,保障数据归档过程的智能化和自动化,提高数据归档处理效率;对待归档数据进行数据校验,获取归档校验结果,从而保证数据归档过程的准确性;在归档校验结果为归档成功时,执行数据删减逻辑,对所述待归档数据表中的已归档数据进行数据删减处理,有效降低待归档数据表中的数据量,降低待归档数据在源数据库中的存储成本,避免源数据库中待归档数据的数据量较大,影响数据表的增删查改等操作的操作性能;在归档校验结果为归档失败时,执行异常检测逻辑对归档日志进行分析和纠错,有助于保障待归档数据归档过程的准确性。该数据归档处理方法、装置、计算机设备及存储介质,可应用在将待归档数据从操作性能好但成本较高的源数据库,迁移到成本较低的目标数据库进行归档,可有助于降低数据的存储成本。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中数据归档处理方法的一应用环境示意图;

图2是本发明一实施例中数据归档处理方法的一流程图;

图3是本发明一实施例中数据归档处理方法的另一流程图;

图4是本发明一实施例中数据归档处理方法的另一流程图;

图5是本发明一实施例中数据归档处理方法的另一流程图;

图6是本发明一实施例中数据归档处理方法的另一流程图;

图7是本发明一实施例中数据归档处理方法的另一流程图;

图8是本发明一实施例中数据归档处理装置的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

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

本发明实施例提供的数据归档处理方法,该数据归档处理方法可应用如图1所示的应用环境中。具体地,该数据归档处理方法应用在数据归档处理系统中,该数据归档处理系统包括如图1所示的数据迁移平台、与数据迁移平台相连的源数据库和目标数据库,用于实现将源数据库中的待归档数据迁移到目标数据库中,完成数据迁移和归档处理,以降低待归档数据在源数据库中的存储成本,避免源数据库中待归档数据的数据量较大,影响数据表的增删查改操作性能。

其中,源数据库是用于存储需要迁出的待归档数据的数据库。该源数据库一般与业务系统相连,用于存储业务系统对应的业务数据,该待归档数据是指符合归档条件的需要进行归档处理的业务数据。一般来说,为了便于对待归档数据进行管理、提取、扩展和操作,待归档数据一般采用关系型数据库作为源数据库,如MySQL、Oracle和Postgres等关系型数据库,但关系型数据库的存储成本远高于Hadoop或者其他非关系型数据库。

其中,目标数据库是用于存储需要迁入的待归档数据的数据库。作为一示例,目标数据库可以为Hadoop数据库或者其他非关系型数据库,具有存储成本低的优点。本示例中,可以将待归档数据迁移到Hadoop数据库的hive数据仓库工具,以便对数据提取、转化和加载等操作,即可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

作为一示例,目标数据库可以是基于区域链技术构建的用于实现数据存储的数据库,其所存储的数据具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”和“集体维护”等特性。

本实施例中,数据迁移平台是用于实现数据迁移的工具,该数据迁移平台可以为Sqoop工具,用于实现将关系型数据库中的数据迁移到Hadoop数据库,实现待归档数据的迁移和数据校验处理,获取归档校验结果,并在归档校验结果为归档成功时,对待归档数据表中的已归档数据进行数据删减处理,以降低待归档数据在源数据库中的存储成本,避免源数据库中待归档数据的数据量较大,影响数据表的增删查改等操作的操作性能。

在一实施例中,如图2所示,提供一种数据归档处理方法,以该方法应用在图1中的数据迁移平台为例进行说明,包括如下步骤:

S201:扫描归档配置表,从归档配置表中获取与系统当前时间相匹配的目标归档信息,归档配置表用于存储待归档数据表的关键信息。

归档配置表是专用于存储待归档数据表的关键信息的数据表,该待归档数据表是用于存储待归档数据的数据表。该归档配置表中包括至少一个原始归档信息,每一原始归档信息与一待归档数据表相关联,包括但不限于待归档数据表对应的归档频率、源数据库信息、目标数据库信息和待归档数据表信息,可基于原始归档信息中的归档频率自动触发执行归档操作,保证归档操作的智能化;基于源数据库信息、目标数据库信息和待归档数据表信息确定并执行相应的目标建表脚本和目标迁移脚本,保证归档操作的自动化。

归档频率是用于反映对某一待归档数据表进行归档处理的频率,例如,每周归档一次或者每月归档一次。可以理解地,可根据每一原始归档信息中的归档频率确定其对应的归档数据周期,该归档数据周期为根据待归档数据的生成时间确定是否需要归档的时间周期,例如,2020年7月1日-2020年7月31日。

源数据库信息是与源数据库相关的信息,该源数据库信息可以仅包括源数据库名,也可以包括源数据库名,源数据库IP地址和源数据库sid。目标数据库信息是与目标数据库相关的信息,该目标数据库信息可以仅包括目标数据库名,也可以包括目标数据库名,目标数据库IP地址和目标数据库sid。可以理解地,在源数据库信息仅包括源数据库名,目标数据库信息仅包括目标数据库名时,可以基于数据库名查询数据库信息表,以确定其对应的数据库IP地址和数据库sid。

待归档数据表信息是与待归档数据表相关的数据,包括但不限于待归档数据表名。

进一步地,原始归档信息还可以包括与待归档数据表相对应的分区字段,以便后续基于该分区字段,在目标数据库中创建与分区字段相对应的目标数据表,以实现对所有待归档数据进行分区存储,分别存储在不同分区字段对应的字段值相对应的目标数据表中。其中,分区字段是用于实现对待归档数据进行分表存储的字段,例如,该分区字段可以为机构名称。

作为一示例,数据迁移平台可执行用户实时触发的数据扫描任务或者定时触发的数据扫描任务,扫描归档配置表中的所有原始归档信息,将归档频率与系统当前时间相匹配的原始归档信息确定为目标归档信息,根据目标归档信息确定待归档数据并执行归档操作。可以理解地,该目标归档信息与原始归档信息相对应,即包括归档频率、源数据库信息、目标数据库信息和待归档数据表信息,还可以包括分区字段。

S202:获取并执行与目标归档信息相对应的目标建表脚本和目标迁移脚本,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表中。

其中,目标建表脚本是与源数据库信息、目标数据库信息和待归档数据表信息等目标归档信息相对应的用于创建数据表的脚本。目标建表脚本是用于创建目标数据表的脚本。目标建表脚本可以预先创建并保存在数据迁移平台的后台数据库中。

其中,目标迁移脚本是与源数据库信息、目标数据库信息和待归档数据表信息等目标归档信息相对应的用于迁移数据的脚本。目标迁移脚本是用于将待归档数据表信息对应的待归档数据表中的待归档数据迁移到目标数据库的脚本。目标迁移脚本可以预先创建并保存在数据迁移平台的后台数据库中。

本示例中,数据迁移平台在确定目标归档信息之后,需基于目标归档信息查询后台数据库,判断后台数据库中是否已经存储与目标归档信息相对应的目标建表脚本和目标迁移脚本;若存在,则直接获取目标建表脚本和目标迁移脚本;若不存在,则采用脚本创建工具对目标归档信息进行处理,确定目标建表脚本和目标迁移脚本,并将目标建表脚本和目标迁移脚本关联存储到后台数据库中。其中,脚本创建工具包括建表脚本创建工具和迁移脚本创建工具。

本示例中,数据迁移平台在获取目标建表脚本和目标迁移脚本之后,需先执行目标建表脚本,以在目标数据库中创建目标数据表;再执行目标迁移脚本,以将待归档数据从待归档数据表迁移到目标数据表中,完成待归档数据的归档操作。

作为一示例,在目标数据库为基于区域链技术构建的用于实现数据存储的数据库,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表时,该待归档数据的归档存储过程具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”和“集体维护”等特性,有助于保障数据安全。

S203:对待归档数据进行数据校验,获取归档校验结果。

作为一示例,数据迁移平台在将源数据库中的待归档数据迁移到目标数据表后,需采用对已经迁移到目标数据表中的待归档数据进行数据校验,以验证目标数据表中迁入的待归档数据和待归档数据表中的迁出的待归档数据是否相同,获取归档校验结果,以保证待归档数据迁移和归档的准确性。

S204:若归档校验结果为归档成功,则执行数据删减逻辑,对待归档数据表中的已归档数据进行数据删减处理。

其中,数据删减逻辑是用于对源数据库中的待归档数据表中的已归档数据进行删减处理的逻辑。已归档数据是指已经迁入目标数据表且归档校验结果为归档成功的数据。

本示例中,若归档校验结果为归档成功,则说明待归档数据表中的迁出的待归档数据和目标数据表中迁入的待归档数据相同,此时执行数据删减逻辑,对待归档数据表中的已归档数据进行数据删减处理,有效降低待归档数据表中的数据量,降低待归档数据在源数据库中的存储成本,避免源数据库中待归档数据的数据量较大,影响数据表的增删查改等操作的操作性能。

S205:若归档校验结果为归档失败,则执行异常检测逻辑,对待归档数据对应的归档日志进行分析,获取归档异常类型,执行与归档异常类型相对应的纠错处理逻辑。

其中,异常检测逻辑是用于实现对归档异常的待归档数据进行检测,以分析其归档异常类型并进行改进的逻辑。纠错处理逻辑是用于对归档异常的数据迁移过程进行纠正处理的逻辑。

本示例中,若归档校验结果为归档失败,则说明待归档数据表中的迁出的待归档数据和目标数据表中迁入的待归档数据不相同,此时,执行异常检测逻辑,获取待归档数据对应的目标日志,该目标日志为待归档数据从源数据库迁移到目标数据库过程形成的日志;接着,对待归档数据的归档日志进行分析,以确定归档异常类型;最近,执行与归档异常类型相对应的纠错处理逻辑。例如,若归档异常类型为数据迁移程序中断,如数据迁移平台因停电、断网或者dowm机等数据迁移程序中断,导致待归档数据迁移过程出现异常时,其纠错处理逻辑是执行回滚处理逻辑,回滚至执行步骤S201之前的状态,重新执行步骤S201及其以后的步骤,以保证归档到目标数据库中的已归档数据的准确性。

本实施例所提供的数据归档处理方法中,通过扫描归档配置表,从归档配置表中获取与系统当前时间相匹配的目标归档信息,以基于目标归档信息获取并执行目标建表脚本和目标迁移脚本,以实现将待归档数据从源数据库迁移到目标数据库,保障数据归档过程的智能化和自动化,提高数据归档处理效率;对待归档数据进行数据校验,获取归档校验结果,从而保证数据归档过程的准确性;在归档校验结果为归档成功时,执行数据删减逻辑,对待归档数据表中的已归档数据进行数据删减处理,有效降低待归档数据表中的数据量,降低待归档数据在源数据库中的存储成本,避免源数据库中待归档数据的数据量较大,影响数据表的增删查改等操作的操作性能;在归档校验结果为归档失败时,执行异常检测逻辑对归档日志进行分析和纠错,有助于保障待归档数据归档过程的准确性。该数据归档处理方法可应用在将待归档数据从操作性能好但成本较高的源数据库,迁移到成本较低的目标数据库进行归档,可有助于降低数据的存储成本。

在一实施例中,如图3所示,在步骤S201之前,即在扫描归档配置表之前,数据归档处理方法还包括:

S301:扫描源数据库中的原始数据表,读取原始数据表对应的原始数据量和原始字段。

其中,原始数据表是源数据库中用于存储待归档数据的数据表。原始数据量为原始数据表中记录的待归档数据的数据量。原始字段是指原始数据表中对应的字段。

作为一示例,数据迁移平台可实时或定时扫描源数据库中存储的所有原始数据表,读取每一原始数据表对应的原始数据量和原始字段,以便根据原始数据量和原始字段确定是否满足归档条件,以便后续将满足归档条件的原始数据表确定为待归档数据表,将待归档数据表中记录的待归档数据确定为待归档数据。

S302:若原始数据量大于预设数据量,且原始字段包括预设字段,则将原始数据表确定为待归档数据表,将与待归档数据表相对应的原始归档信息存储在归档配置表中。

其中,预设数据量是预先设置的需要归档处理的数据量。预设字段是预先设置的需要归档处理的待归档数据应当包含的字段。例如,预设字段可以是用于反映待归档数据的核心结果的字段,而非反映待归档数据存储过程形成的中间结果的字段。又,预设字段可以是用于实现后续分表存储的分区字段。

作为一示例,数据迁移平台在扫描出每一原始数据表的原始数据量和预设数据量之后,将原始数据量与预设数据量进行比较,判断原始数据量是否大于预设数据量,并将原始字段与预设字段进行匹配,判断原始字段是否包含预设字段。在原始数据量大于预设数据量,且原始字段包括预设字段时,认定原始数据表满足归档条件,若不进行归档和删减处理,会导致原始数据表中存储的数据量过大,影响原始数据表的增删查改等操作的操作性能,因此,将原始数据表确定为待归档数据表,将待归档数据表中记录的业务数据确定为待归档数据。相应地,在原始数据量不大于预设数据量,或者原始字段不包含预设字段时,认定原始数据表未满足归档条件,无需将原始数据表确定为待归档数据表,其原始数据表中的数据量不足以影响原始数据表的增删查改等操作的操作性能。

作为一示例,在将原始数据表确定为待归档数据表之后,还需将待归档数据表相对应的原始归档信息存储在归档配置表中,以便后续数据迁移平台可根据扫描归档配置表,确定需要执行归档处理的目标归档信息,有助于保障数据归档过程的智能化和自动化,提高数据归档处理效率。

例如,扫描Oracle这一源数据库中的所有原始数据表,将存储的原始数据量大于1T(预设数据量),且包含创建时间这一预设字段的原始数据表确定待归档数据,将待归档数据表对应的原始归档信息存储在归档配置表中,具体是可以将数据表名、源数据库名、分区字段和归档频率等信息存储到归档配置表中,而无需记录待归档数据表的全表字段信息,使得归档配置表存储的数据量较小,便于查询。此处的数据表名、源数据库名、分区字段和归档频率、与默认设置的目标数据库名等,为待归档数据表对应的原始归档信息。

本实施例所提供的数据归档处理方法中,通过扫描源数据库中的原始数据表的原始数据量和原始字段,在原始数据量大于预设数据量且原始字段包括预设字段时,认定满足归档条件,将该原始数据表确定为待归档数据表,以将待归档数据表对应的原始归档信息存储在归档配置表中,可利用归档配置表实现对数据量较大且包含预设字段的待归档数据进行统一的归档管理,有助于保障数据归档过程的智能化和自动化,提高数据归档处理效率。

在一实施例中,如图4所示,在步骤S302之后,即在将与待归档数据表相对应的原始归档信息存储在归档配置表中之后,数据归档处理方法还包括:

S401:触发脚本创建请求,脚本创建请求包括源数据库信息、目标数据库信息和待归档数据表信息。

脚本创建请求是用于触发数据迁移平台创建用于实现待归档数据归档的脚本的请求。脚本创建请求包括源数据库信息、目标数据库信息和待归档数据表信息,具体是用于创建与源数据库信息、目标数据库信息和待归档数据表信息相匹配的目标建表脚本和目标迁移脚本的请求。

作为一示例,数据迁移平台上预先配置用于对归档配置表的新增事件进行监听的监听脚本,在监听脚本监听到有新增的原始归档信息存储到归档配置表时,可基于新增的原始归档信息自动触发脚本创建请求,以便基于源数据库信息、目标数据库信息和待归档数据表信息等原始归档信息,执行脚本创建流程。

S402:基于待归档数据表信息,获取待归档数据表信息对应的待归档数据表的全表字段信息。

作为一示例,数据迁移平台扫描源数据库中的待归档数据表信息对应的待归档数据表,获取待归档数据表的全表字段信息,该全表字段信息包括所有源表字段对应的字段信息,包括但不限于源表字段对应的字段名、字段类型及宽度等信息。

作为另一示例,数据迁移平台可扫描源数据库中与待归档数据表信息相对应的源表创建脚本,从源表创建脚本中提取待归档数据表的全表字段信息和源表功能逻辑。其中,源表创建脚本是在源数据库中创建待归档数据表的脚本,该源表创建脚本不仅包括待归档数据表的全表字段信息,还包括用于实现特定功能的源表功能逻辑。该源表功能逻辑是用于实现对待归档数据表中的待归档数据执行特定功能的处理语句,例如,对待归档数据表进行“分页”或者“排序”等功能的处理语句。

S403:采用建表脚本创建工具对待归档数据表的全表字段信息进行处理,获取目标建表脚本。

其中,建表脚本创建工具是预先基于字段处理逻辑配置的用于创建目标建表脚本的工具。此处的字段处理逻辑是用于对待归档数据表的字段进行转换处理的逻辑。

作为一示例,数据迁移平台执行建表脚本创建工具对待归档数据表对应的全表字段信息进行处理,具体是指先采用内置的字段处理逻辑对待归档数据表中的源表字段进行转换处理,以形成需要建表的目标字段;再采用与目标数据库相对应的建表语句模板对目标字段进行处理,形成目标建表脚本,可使得后续利用目标建表脚本创建的目标数据表具有统一的目标字段,保障后续基于统一的目标字段对应的目标数值进行统一处理的有效性和可行性。

作为另一示例,数据迁移平台执行建表脚本创建工具对待归档数据表相对应的全表字段信息和源表功能逻辑进行处理,获取目标建表脚本,具体包括如下步骤:采用字段处理逻辑对待归档数据表中的源表字段进行转换处理,以形成需要建表的目标字段;采用与源数据库和目标数据库相对应的功能语句适配接口,对源表功能逻辑进行处理,获取目标表功能逻辑;采用目标字段对源表字段进行替换,并采用目标表功能逻辑对源表功能逻辑进行替换,获取目标建表脚本。例如,“排序”和“分页”等功能语句在mysql和oracle这两个数据库的表述不同,因此,在mysql和oracle互为源数据库和目标数据库时,需对“排序”和“分页”对应的源表功能逻辑进行适配,以确定目标功能逻辑,采用目标功能逻辑替换源表功能逻辑。本示例,既可使得后续利用目标建表脚本创建的目标数据表具有统一的目标字段,保障后续基于统一的目标字段对应的目标数值进行统一处理的有效性和可行性;又可使目标数据表依据特定功能对待归档数据进行处理,保证数据的一致性,以便后续进行数据校验。

S404:采用迁移脚本创建工具,对源数据库信息、目标数据库信息和待归档数据表对应的全表字段信息进行处理,获取目标迁移脚本;

本示例中,数据迁移平台执行迁移脚本创建工具,迁移脚本创建工具包括用于实现数据归档的数据迁移处理逻辑,该数据迁移处理逻辑包括特定内容对应的形式参数;将源数据库信息、目标数据库信息和待归档数据表对应的全表字段信息作为实际参数,利用实际参数对形式参数进行替换,以形成目标迁移脚本,以实现快速生成对应的目标迁移脚本。可以理解地,预先创建迁移脚本创建工具,只需采用实际参数替换形式参数,即可快速生成目标迁移脚本,提高目标迁移脚本的获取效率。

S405:将源数据库信息、目标数据库信息、待归档数据表信息、目标建表脚本和目标迁移脚本关联存储。

本示例中,数据迁移平台在创建目标建表脚本和目标迁移脚本之后,将源数据库信息、目标数据库信息、待归档数据表信息、目标建表脚本和目标迁移脚本关联存储在后台数据库中,以便后续在数据归档过程中,可基于源数据库信息、目标数据库信息和待归档数据表信息,快速确定其对应的目标建表脚本和目标迁移脚本关联存储到后台数据库中,以便后续快速获取目标建表脚本和目标迁移脚本进行数据归档处理。

本实施例所提供的基于数据迁移平台的数据归档处理方法中,采用建表脚本创建工具和迁移脚本创建工具,对脚本创建请求中的源数据库信息、目标数据库信息和待归档数据表信息进行处理,可快速生成目标建表脚本和目标迁移脚本,并将目标建表脚本和目标迁移脚本关联存储到后台数据库,以便后续快速获取目标建表脚本和目标迁移脚本进行数据归档处理。

在一实施例中,目标归档信息包括归档频率、源数据库信息、目标数据库信息和待归档数据表信息。相应地,如图5所示,步骤S202,即执行与目标归档信息相对应的目标建表脚本和目标迁移脚本,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表中,包括:

S501:基于源数据库信息和目标数据库信息,构建源数据库信息对应的源数据库和目标数据库信息对应的目标数据库之间的OGG通信链路。

其中,OGG通信链路是采用OGG技术创建的通信链路,具体为源数据库和目标数据库之间构建的用于传输数据的物理通道。Golden Gate(简称OGG)是一种基于日志的结构化数据复制软件,提供异构环境下交易数据的实时捕捉实时捕捉、变换和投递等功能。

本示例中,基于源数据库信息确定源数据库,基于目标数据库信息确定目标数据库,在源数据库和目标数据库之间构建OGG通信链路,该OGG通信链路可捕获源数据库的在线重做日志(online redo log)或归档日志(archive log),获取变化数据,以形成队列文件(tail);再将队列文件(tail)通过网络协议传输给目标数据库。

S502:根据源数据库信息、目标数据库信息和待归档数据表信息,确定目标建表脚本和目标迁移脚本。

其中,目标建表脚本是与源数据库信息、目标数据库信息和待归档数据表信息相对应的用于创建数据表的脚本。目标建表脚本是用于创建目标数据表的脚本。目标建表脚本可以预先创建并保存在数据迁移平台的后台数据库中。

其中,目标迁移脚本是与源数据库信息、目标数据库信息和待归档数据表信息相对应的用于迁移数据的脚本。目标迁移脚本是用于将待归档数据表信息对应的待归档数据表中的待归档数据迁移到目标数据库的脚本。目标迁移脚本可以预先创建并保存在数据迁移平台的后台数据库中。

本示例中,数据迁移平台先基于源数据库信息、目标数据库信息和待归档数据表信息查询后台数据库,判断后台数据库中是否已经存储与源数据库信息、目标数据库信息和待归档数据表信息相对应的目标建表脚本和目标迁移脚本;若存在,则直接确定目标建表脚本和目标迁移脚本;若不存在,则采用脚本创建工具对源数据库信息、目标数据库信息和待归档数据表信息进行脚本生成处理,确定目标建表脚本和目标迁移脚本,并将目标建表脚本和目标迁移脚本关联存储到后台数据库中。其中,脚本创建工具包括建表脚本创建工具和迁移脚本创建工具。

S503:执行目标建表脚本,在目标数据库中创建目标数据表。

作为一示例,数据迁移平台执行目标建表脚本,识别待归档数据表信息对应的待归档数据表的全表字段信息,基于待归档数据表的全表字段信息,在目标数据库中创建用于存储待归档数据的目标数据表,该目标数据表的全表字段信息可以与待归档数据表的全表字段信息相同,也可以是采用字段处理逻辑对待归档数据表的全表字段信息进行处理形成的全表字段信息,两者不完全相同。此处的字段处理逻辑是用于对待归档数据表的全表字段信息进行转换处理的逻辑,例如,可对“编号”字段进行复制操作。其中,全表字段信息是指任一数据表中所有字段对应的字段信息,包括但不限于字段名、字段类型及宽度等信息。

S504:执行目标迁移脚本,通过OGG通信链路,将待归档数据表信息对应的待归档数据表中与归档频率相对应的待归档数据存储到目标数据表中。

作为一示例,数据迁移平台执行目标迁移脚本,将待归档数据表信息对应的待归档数据表与归档频率相对应的待归档数据,迁移到目标数据表中,以完成待归档数据归档操作。数据迁移平台执行目标迁移脚本进行数据归档,具体为采用与源表字段对应的字段处理逻辑对相应的源表数值进行复制操作,以将处理后的目标数值存储在目标数据表对应的目标字段中。

本实施例所提供的数据归档处理方法中,先构建源数据库与目标数据库之间的OGG通信链路,为待归档数据迁移提供硬件基础。再根据数据迁移任务中的源数据库信息、目标数据库信息和待归档数据表信息,可快速确定预先创建的目标建表脚本和目标迁移脚本,或者实时创建目标建表脚本和目标迁移脚本并存储在后台数据库中,以便后续快速确定预先创建的目标建表脚本和目标迁移脚本,从而保证待归档数据迁移效率。接着,执行目标建表脚本创建目标数据表,并执行目标迁移脚本将待归档数据表信息对应的待归档数据表中的待归档数据迁移到目标数据表中,完成待归档数据的迁移操作,采用预先创建的目标建表脚本和目标迁移脚本进行数据迁移处理,有助于保障待归档数据迁移效率。

在一实施例中,由于待归档数据的数据量较大,若对待归档数据进行全字段校验,存在校验耗时长,归档处理效率低的问题。如图6所示,步骤S203,即对待归档数据进行数据校验,获取归档校验结果,包括:

S601:获取待归档数据表中与归档频率相对应的待归档数据的归档数据量,并获取目标数据表中的新增数据量,基于归档数据量和新增数据量进行一致性判断,获取数量校验结果。

作为一示例,数据迁移平台在将待归档数据表中的与归档频率相对应的待归档数据迁移到目标数据表过程中,需先确定本次数据迁移的待归档数据对应的归档数据量;在将本次数据迁移的待归档数据存储在目标数据表之后,需获取目标数据表中的新增数据量;将归档数据量与新增数据量进行比较,判断两者是否一致,获取数量校验结果,该数量校验结果包括校验一致和校验不一致两种。

S602:获取待归档数据表迁出的待归档数据中与校验字段相对应的归档校验值,并获取目标数据表迁入的待归档数据中与校验字段相对应的目标校验值,基于归档校验值和目标校验值进行一致性判断,获取数值校验结果。

其中,校验字段是用于校验迁移的待归档数据是否准确的字段,例如,校验字段可以为每一条待归档数据中的金额字段。本示例中,数据迁移平台先从待归档数据表迁出的待归档数据中确定与校验字段相对应的数值为归档校验值,再从目标数据表中迁入的待归档数据中确定与校验字段相对应的数值为目标校验值;再基于归档校验值和目标校验值进行一致性判断,获取数值校验结果,该数值校验结果包括校验一致和校验不一致。

S603:若数量校验结果和数值校验结果均为校验一致,则获取归档成功的归档校验结果。

作为一示例,在数量校验结果和数值校验结果均为校验一致时,说明从源数据库迁移到目标数据库进行归档处理的待归档数据准确无误,此时,获取归档成功的归档校验结果,反映大数据迁移和归档的准确性;并且,仅通过对待归档数据进行数量校验和校验字段的数值校验,在数量校验结果和数值校验结果均为校验一致时,获取归档成功的归档校验结果,使得其校验处理过程所需对比的信息量较少,有助于提高其数据校验效率。

S604:若数量校验结果和数值校验结果中的任一个为校验不一致,则获取归档失败的归档校验结果。

作为一示例,在在数量校验结果和数值校验结果中的任一个为校验不一致时,例如,数量校验结果为校验不一致,反映待归档数据表迁出的待归档数据和目标数据表迁出的待归档数据的数量不同,存在异常;或者,数据校验结果为校验不一致,反映待归档数据表中特定的校验字段的数值与迁入目标数据表中特定的校验字段的数值不一致,存在异常;或者,数量校验结果和数值校验结果均为校验不一致,存在异常,因此,在上述三种存在异常的情况下,可获取归档失败的归档校验结果。

本实施例所提供的数据归档处理方法中,通过对本次迁移的待归档数据进行数量校验和对特定的校验字段进行数值校验,只有在数量校验结果和数值校验结果均为校验一致时,才获取归档成功的归档校验结果,有助保障大数据迁移和归档处理的准确性;而且,相比于对待归档数据进行全字段校验的方式,其校验处理过程所需对比的信息量较少,有助于提高其数据校验效率。

在一实施例中,如图7所示,步骤S204,即执行数据删减逻辑,对待归档数据表中的已归档数据进行数据删减处理,包括:

S701:获取待归档数据表对应的数据表类型。

作为一示例,数据迁移平台扫描识别待归档数据表的表属性信息,获取待归档数据表对应的数据表类型,该数据表类型用于反映待归档数据表能否删除,包括可删除类型和不可删除类型。

S702:若待归档数据表对应的数据表类型为可删除类型,则对待归档数据表中的所有已归档数据进行删减处理。

作为一示例,若待归档数据表对应的数据表类型为可删除类型,如待归档数据表为从其他数据库同步到源数据库的数据表,或者是大数据处理过程产生的不能更新的中间表时,这些数据表中的数据删除,不会影响与待归档数据表相连的业务系统的正常运行,此时,可对待归档数据表中的所有已归档数据进行删减处理,即删除待归档数据表中存储的所有已归档数据,释放数据存储空间,有助于节省数据存储成本。

S703:若待归档数据表对应的数据表类型为不可删除类型,则获取待归档数据表的历史访问记录,确定数据留存周期,对待归档数据表中生成日期在数据留存周期之外的已归档数据进行删减处理。

其中,数据留存周期是指需要保留的数据的周期。

作为一示例,若待归档数据表对应的数据表类型为不可删除类型,如待归档数据表为与源数据库相连的业务系统的核心数据表,其数据删除可能会影响业务系统的正常运行,此时,需获取待归档数据表中的历史访问记录,根据历史访问记录,确定数据留存周期,如三年。再将待归档数据表的所有已归档数据的生成日期与数据留存周期进行对比,以判断已归档数据的生成日期是否在数据留存周期内,即判断已归档数据的生成日期是否在系统当前时间之前的数据留存周期内。若已归档数据的生成日期在数据留存周期内,则将该已归档数据保存在待归档数据表中,避免数据删除影响业务系统的正常运行。若已归档数据的生成日期不在数据留存周期内,则将生成日期在数据留存周期之外的已归档数据删除,在对业务系统正常运行较小的情况下,删除待归档数据表中存储的已归档数据,释放数据存储空间,有助于节省数据存储成本。

本示例中,根据历史访问记录,确定数据留存周期,具体包括:根据已归档数据的历史访问记录,确定已归档数据的最近访问时间和历史访问频率,再根据最近访问时间和历史访问频率查询留存周期配置表,确定数据留存周期,可通过对历史访问记录的客观分析,确定其对应的数据留存周期,有助于保障待归档数据表中保存的数据留存周期以内的已归档数据可基本满足业务系统的需求,对业务系统正常运行较小的情况下,删除待归档数据表中存储的已归档数据,释放数据存储空间,有助于节省数据存储成本。其中,留存周期配置表为用于反映最近访问时间和历史访问频率相对应的数据留存周期之间匹配关系的数据表。

可以理解地,由于所有已归档数据在系统当前时间之前均已迁移并存储在目标数据表中,在将生成日期在数据留存周期之外的已归档数据进行删减处理后,若用户操作业务系统进行查询操作时,在数据留存周期之内的已归档数据基本满足其查询需求,由于待归档数据表中仅保存数据留存周期之内的已归档数据,其数据量较小,有助于提高其操作性能和操作效率;若查询操作涉及需数据留存周期之外的已归档数据时,只需通过数据迁移平台调用目标数据表中的相应数据,在牺牲效率的情况下,可以保证待归档数据表的操作性能,并降低其存储成本。

本实施例所提供的数据归档处理方法中,根据待归档数据表的数据表类型,采用不同方式对已归档数据进行删减处理,在不影响业务系统正常运行或者影响程度较小的情况下,有助于保障待归档数据表的操作性能,并降低其存储成本。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种数据归档处理装置,该数据归档处理装置与上述实施例中数据归档处理方法一一对应。如图8所示,该数据归档处理装置包括配置表扫描模块801、数据迁移模块802、数据校验模块803、数据删减模块804和异常纠错模块805。各功能模块详细说明如下:

配置表扫描模块801,用于扫描归档配置表,从归档配置表中获取与系统当前时间相匹配的目标归档信息。

数据迁移模块802,用于获取并执行与目标归档信息相对应的目标建表脚本和目标迁移脚本,将待归档数据从源数据库的待归档数据表迁移到目标数据库的目标数据表中。

数据校验模块803,用于对待归档数据进行数据校验,获取归档校验结果。

数据删减模块804,用于若归档校验结果为归档成功,则执行数据删减逻辑,对待归档数据表中的已归档数据进行数据删减处理。

异常纠错模块805,用于若归档校验结果为归档失败,则执行异常检测逻辑,对待归档数据对应的归档日志进行分析,获取归档异常类型,执行与归档异常类型相对应的纠错处理逻辑。

优选地,数据归档处理装置还包括原始表扫描单元和归档信息存储单元。

原始表扫描单元,用于扫描源数据库中的原始数据表,读取原始数据表对应的原始数据量和原始字段。

归档信息存储单元,用于若原始数据量大于预设数据量,且原始字段包括预设字段,则将原始数据表确定为待归档数据表,将与待归档数据表相对应的原始归档信息存储在归档配置表中。

优选地,数据归档处理装置还包括创建请求触发单元、字段信息获取单元、建表脚本获取单元、迁移脚本获取单元和脚本关联存储单元。

创建请求触发单元,用于触发脚本创建请求,脚本创建请求包括源数据库信息、目标数据库信息和待归档数据表信息。

字段信息获取单元,用于基于待归档数据表信息,获取待归档数据表信息对应的待归档数据表的全表字段信息。

建表脚本获取单元,用于采用建表脚本创建工具对待归档数据表的全表字段信息进行处理,获取目标建表脚本。

迁移脚本获取单元,用于采用迁移脚本创建工具,对源数据库信息、目标数据库信息和待归档数据表对应的全表字段信息进行处理,获取目标迁移脚本。

脚本关联存储单元,用于将源数据库信息、目标数据库信息、待归档数据表信息、目标建表脚本和目标迁移脚本关联存储。

优选地,目标归档信息包括归档频率、源数据库信息、目标数据库信息和待归档数据表信息。

数据迁移模块802,包括链路构建单元、脚本确定单元、数据表创建单元和数据迁移单元。

链路构建单元,用于基于源数据库信息和目标数据库信息,构建源数据库信息对应的源数据库和目标数据库信息对应的目标数据库之间的OGG通信链路。

脚本确定单元,用于根据源数据库信息、目标数据库信息和待归档数据表信息,确定目标建表脚本和目标迁移脚本。

数据表创建单元,用于执行目标建表脚本,在目标数据库中创建目标数据表。

数据迁移单元,用于执行目标迁移脚本,通过OGG通信链路,将待归档数据表信息对应的待归档数据表中与归档频率相对应的待归档数据存储到目标数据表中。

优选地,数据校验模块803,包括数量校验单元、数值校验单元、成功结果获取单元和失败结果获取单元。

数量校验单元,用于获取待归档数据表中与归档频率相对应的待归档数据的归档数据量,并获取目标数据表中的新增数据量,基于归档数据量和新增数据量进行一致性判断,获取数量校验结果。

数值校验单元,用于获取待归档数据表迁出的待归档数据中与校验字段相对应的归档校验值,并获取目标数据表迁入的待归档数据中与校验字段相对应的目标校验值,基于归档校验值和目标校验值进行一致性判断,获取数值校验结果。

成功结果获取单元,用于若数量校验结果和数值校验结果均为校验一致,则获取归档成功的归档校验结果。

失败结果获取单元,用于若数量校验结果和数值校验结果中的任一个为校验不一致,则获取归档失败的归档校验结果。

优选地,数据删减模块804,包括表类型获取单元、第一删减处理单元和第二删减处理单元。

表类型获取单元,用于获取待归档数据表对应的数据表类型。

第一删减处理单元,用于若待归档数据表对应的数据表类型为可删除类型,则对待归档数据表中的所有已归档数据进行删减处理。

第二删减处理单元,用于若待归档数据表对应的数据表类型为不可删除类型,则获取待归档数据表的历史访问记录,确定数据留存周期,对待归档数据表中生成日期在数据留存周期之外的已归档数据进行删减处理。

关于数据归档处理装置的具体限定可以参见上文中对于数据归档处理方法的限定,在此不再赘述。上述数据归档处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。所述存储介质可以为非易失性的,也可以为易失性的。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行数据归档处理方法过程中生成或存储的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据归档处理方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中数据归档处理方法,例如图2所示S201-S205,或者图3至图7中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现数据归档处理装置这一实施例中的各模块/单元的功能,例如图8所示的配置表扫描模块801、数据迁移模块802、数据校验模块803、数据删减模块804和异常纠错模块805的功能,为避免重复,这里不再赘述。

在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中数据归档处理方法,例如图2所示S201-S205,或者图3至图7中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述数据归档处理装置这一实施例中的各模块/单元的功能,例如图8所示的配置表扫描模块801、数据迁移模块802、数据校验模块803、数据删减模块804和异常纠错模块805的功能,为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

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

相关技术
  • 数据归档处理方法、装置、计算机设备及存储介质
  • 数据归档处理方法、装置、设备以及可读存储介质
技术分类

06120112169520