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

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

文献发布时间:2024-04-18 19:58:26


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

技术领域

本申请涉及大数据技术领域,特别是涉及一种数据归档方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着计算机技术的发展,持续运行的计算机系统产生了越来越多的数据,为了节约数据的存储成本、降低数据备份的压力和减少数据量以提升系统性能,需要将数据归档至归档数据库中,以将数据进行长期存储。

传统技术中,通常由人工选择待归档数据库中需要归档的数据,然后将数据通过人工操作的方式归档至归档数据库中;但是,在面对如数据量较多的情况时,通过该方式进行数据归档需要耗费较多人工处理的时间,导致数据归档的效率较低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高数据归档的效率的数据归档方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种数据归档方法。所述方法包括:

从金融系统的生产数据库中,确定出待归档的目标生产数据库;

从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;

对所述目标数据表进行划分处理,得到对应的分页数据;

利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。

在其中一个实施例中,所述对所述目标生产数据库存储的所述目标数据进行删除处理,包括:

对所述目标归档数据库中写入的数据与所述目标生产数据库存储的所述目标数据进行是否一致的检测,得到检测结果;

在所述检测结果表示不一致的情况下,根据所述检测结果,对所述目标归档数据库进行针对所述分页数据中的所述目标数据的补偿操作,并跳转至所述对所述目标归档数据库中写入的数据与所述目标生产数据库存储的所述目标数据进行是否一致的检测,得到检测结果的步骤;

在所述检测结果表示一致的情况下,对所述目标生产数据库存储的所述目标数据进行删除处理。

在其中一个实施例中,所述从所述目标生产数据库存储的数据表中,获取待归档的目标数据表,包括:

从所述目标生产数据库存储的数据表中,确定出待归档的目标数据表;

对所述目标生产数据库中的与所述目标数据表中的目标数据关联的子表数据,进行加锁处理;

从所述目标生产数据库存储的数据表中,读取所述目标数据表;

所述在所述检测结果表示一致的情况下,对所述目标生产数据库存储的所述目标数据进行删除处理,包括:

在所述检测结果表示一致的情况下,对所述目标生产数据库中的所述子表数据进行释放锁处理,并对所述目标生产数据库存储的所述目标数据进行删除处理。

在其中一个实施例中,在从所述目标生产数据库存储的数据表中,读取所述目标数据表之前,还包括:

对所述目标生产数据库进行检测,得到所述目标生产数据库的负载压力信息;

根据所述负载压力信息,确定出所述目标生产数据库的限流速率信息;

所述从所述目标生产数据库存储的数据表中,读取所述目标数据表,包括:

根据所述限流速率信息,从所述目标生产数据库存储的数据表中,读取所述目标数据表。

在其中一个实施例中,在从金融系统的生产数据库中,确定出待归档的目标生产数据库之前,还包括:

获取归档信息;所述归档信息中包含目标生产数据库标识和目标归档数据库标识;

所述从金融系统的生产数据库中,确定出待归档的目标生产数据库,包括:

根据所述目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个待归档的目标生产数据库;

根据所述目标归档数据库标识,从多个归档数据库中,确定出至少一个目标归档数据库。

在其中一个实施例中,所述归档信息中还包含目标数据表标识和单页数据量阈值;

所述从所述目标生产数据库存储的数据表中,获取待归档的目标数据表,包括:

根据所述目标数据表标识,从所述目标生产数据库存储的多个数据表中,获取至少一个待归档的目标数据表;

所述对所述目标数据表进行划分处理,得到对应的分页数据,包括:

根据所述单页数据量阈值,对所述目标数据表中的数据进行划分处理,得到对应的分页数据。

在其中一个实施例中,所述根据所述目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个待归档的目标生产数据库,包括:

根据所述目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个基础生产数据库;

对各所述基础生产数据库进行是否锁定的识别,得到各所述基础生产数据库的识别结果;

针对每一基础生产数据库,在对应的识别结果表示已锁定的情况下,禁止对对应的基础生产数据库进行数据归档处理,或者,在所述对应的识别结果表示未锁定的情况下,将所述对应的基础生产数据库作为待归档的目标生产数据库。

第二方面,本申请还提供了一种数据归档装置。所述装置包括:

目标确定模块,用于从金融系统的生产数据库中,确定出待归档的目标生产数据库;

数据获取模块,用于从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;

数据划分模块,用于对所述目标数据表进行划分处理,得到对应的分页数据;

数据写入模块,用于利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

从金融系统的生产数据库中,确定出待归档的目标生产数据库;

从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;

对所述目标数据表进行划分处理,得到对应的分页数据;

利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

从金融系统的生产数据库中,确定出待归档的目标生产数据库;

从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;

对所述目标数据表进行划分处理,得到对应的分页数据;

利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

从金融系统的生产数据库中,确定出待归档的目标生产数据库;

从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;

对所述目标数据表进行划分处理,得到对应的分页数据;

利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。

上述数据归档方法、装置、计算机设备、存储介质和计算机程序产品,从金融系统的生产数据库中,确定出待归档的目标生产数据库;从所述目标生产数据库存储的数据表中,获取待归档的目标数据表;对所述目标数据表进行划分处理,得到对应的分页数据;利用多线程将所述分页数据中的目标数据写入目标归档数据库中,并对所述目标生产数据库存储的所述目标数据进行删除处理;所述目标数据为需要归档的数据。该方案通过从金融系统的生产数据库中,确定出待归档的目标生产数据库,从而确定出需要归档的生产数据库;从目标生产数据库存储的数据表中,获取待归档的目标数据表,从而获取到需要归档的数据表;对目标数据表进行划分处理,得到对应的分页数据,从而得到划分后的数据表;利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理,从而快速和准确地将目标生产数据库中的目标数据归档至目标归档数据库中,从而有利于提高数据归档的效率和准确率。

附图说明

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

图1为一个实施例中数据归档方法的流程示意图;

图2为一个实施例中数据归档方法的应用场景图;

图3为一个实施例中对目标数据进行删除处理的步骤的流程示意图;

图4为一个实施例中读取目标数据表的步骤的流程示意图;

图5为一个实施例中确定目标生产数据库和目标归档数据库的步骤的流程示意图;

图6为一个实施例中数据归档装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。

在一个实施例中,如图1所示,提供了一种数据归档方法,本实施例以该方法应用于终端进行举例说明;可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器之间的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等;服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:

步骤S101,从金融系统的生产数据库中,确定出待归档的目标生产数据库。

本步骤中,如图2所示,该方法可以应用于服务器,例如归档服务器(可启动多台归档服务器执行);金融系统中可以包含多个生产数据库,例如生产数据库A、生产数据库B、生产数据库C等等,多个生产数据库可以分别与终端(也可以是服务器/归档服务器)进行通信连接,其中,生产数据库可以是在数据归档处理过程中用于输出需要归档的数据的数据库;金融系统中也可以包含多个归档数据库,例如归档数据库A、归档数据库B、归档数据库C等等,多个归档数据库可以分别与终端(也可以是服务器/归档服务器)进行通信连接,其中,归档数据库可以是在数据归档处理过程中用于接收需要归档的数据的数据库。

具体的,终端从金融系统中的多个生产数据库中,选取出需要数据归档的生产数据库,将需要数据归档的生产数据库作为待归档的目标生产数据库。

步骤S102,从目标生产数据库存储的数据表中,获取待归档的目标数据表。

本步骤中,目标生产数据库存储的数据表可以是在目标生产数据库中存储的数据表;待归档的目标数据表可以是目标生产数据库存储的数据表中的需要归档的数据表。

具体的,终端在目标生产数据库存储的数据表中,确定出需要归档的数据表,将需要归档的数据表作为待归档的目标数据表,从目标生产数据库中,读取待归档的目标数据表。

步骤S103,对目标数据表进行划分处理,得到对应的分页数据。

本步骤中,对应的分页数据可以是目标数据表被划分后的分页数据,例如,分页数据可以是每页固定归档数量(如固定归档数量为10000条)数据的分页数据。

具体的,终端设置分页的方式为每页固定条(如10000条)数据,对目标数据表进行分页处理(划分处理),得到对应的分页数据。

步骤S104,利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理;目标数据为需要归档的数据。

本步骤中,目标数据是需要归档的数据,例如,目标数据可以是分页数据中的所有数据,也可以是分页数据中的部分数据;目标归档数据库可以是所有归档数据库中的一个或多个归档数据库。

具体的,终端利用多线程将分页数据中的目标数据写入(输入)目标归档数据库中,在识别到成功将分页数据中的目标数据写入目标归档数据库中之后,对在目标生产数据库中存储的目标数据进行删除。

示例性的,终端将每个目标数据表划分为对应的多个分页数据之后,利用多线程分别对每个分页数据进行数据归档处理,即利用多线程分别将每个分页数据中的目标数据写入至对应的目标归档数据库中,在识别到成功将每个分页数据中的目标数据写入至对应的目标归档数据库中之后,对在目标生产数据库中存储的目标数据进行删除,从而完成数据归档处理。

上述数据归档方法中,从金融系统的生产数据库中,确定出待归档的目标生产数据库;从目标生产数据库存储的数据表中,获取待归档的目标数据表;对目标数据表进行划分处理,得到对应的分页数据;利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理;目标数据为需要归档的数据。该方案通过从金融系统的生产数据库中,确定出待归档的目标生产数据库,从而确定出需要归档的生产数据库;从目标生产数据库存储的数据表中,获取待归档的目标数据表,从而获取到需要归档的数据表;对目标数据表进行划分处理,得到对应的分页数据,从而得到划分后的数据表;利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理,从而快速和准确地将目标生产数据库中的目标数据归档至目标归档数据库中,从而有利于提高数据归档的效率和准确率。

在一个实施例中,如图3所示,在步骤S104中,对目标生产数据库存储的目标数据进行删除处理,具体包括如下内容:

步骤S301,对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果;

步骤S302,在检测结果表示不一致的情况下,根据检测结果,对目标归档数据库进行针对分页数据中的目标数据的补偿操作,并跳转至对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果的步骤;

步骤S303,在检测结果表示一致的情况下,对目标生产数据库存储的目标数据进行删除处理。

本实施例中,检测结果可以表示为一致或不一致;补偿操作可以是与将目标数据写入目标归档数据库对应的重新写入操作、更新操作或修复操作,例如,补偿操作可以根据具体情况而定,可能包括重新归档缺失的数据、修复错误的数据、更新已归档数据的某些字段等,通过执行补偿操作,可以确保归档数据库中的历史数据与生产数据库中的数据保持一致,从而保证了归档数据的完整性和准确性。

具体的,终端对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果;在检测结果表示不一致的情况下,根据检测结果,对目标归档数据库进行针对分页数据中的目标数据的补偿操作,并跳转至对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果的步骤,即对目标归档数据库中(新一轮)写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到(新一轮)检测结果;在(新一轮)检测结果表示不一致的情况下,跳转至上述的补偿操作的步骤(即跳转至根据检测结果,对目标归档数据库进行针对分页数据中的目标数据的补偿操作的步骤),直到(后续的)检测结果表示一致;在检测结果表示一致的情况下,对目标生产数据库存储的目标数据进行删除处理。

示例性的,终端可以使用SQL(结构化查询语言)查询语句或者数据库差异比对工具来对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行一致性检测(可通过比对数据的主键、字段值或者整个数据记录,可以判断数据是否一致);在检测结果表示不一致的情况下,可以根据具体需求选择合适的补偿操作,例如,可以重新从目标生产数据库中抽取缺失的数据,并将其插入到目标归档数据库中,或者对目标归档数据库中的错误数据进行修复,使其与目标生产数据库中的数据一致;可以设置循环操作,多次进行检测和补偿操作,直到检测结果表示一致为止,这样可以确保数据的完整性和准确性,在每次循环中,可以选择只检测和补偿分页数据,或者对整个归档数据库进行操作;在检测结果表示一致的情况下,可以对目标生产数据库存储的目标数据进行删除处理,可以使用SQL语句或者数据库操作命令来删除数据,在删除之前,可先进行备份或者归档操作,以便将来需要恢复数据;在实施过程中,如果在检测或者补偿过程中出现错误或者中断,可记录错误信息并进行相应的处理,同时,可记录操作的日志,以便追踪操作过程。

本实施例提供的技术方案,通过在检测结果表示不一致的情况下,进行对应的补偿操作,在检测结果表示一致的情况下,对目标生产数据库存储的目标数据进行删除处理,从而有利于提高数据归档的准确率,并确保数据的完整性和准确性。

在一个实施例中,在步骤S102中,从目标生产数据库存储的数据表中,获取待归档的目标数据表,具体包括如下内容:从目标生产数据库存储的数据表中,确定出待归档的目标数据表;对目标生产数据库中的与目标数据表中的目标数据关联的子表数据,进行加锁处理;从目标生产数据库存储的数据表中,读取目标数据表;上述步骤中,在检测结果表示一致的情况下,对目标生产数据库存储的目标数据进行删除处理,具体包括如下内容:在检测结果表示一致的情况下,对目标生产数据库中的子表数据进行释放锁处理,并对目标生产数据库存储的目标数据进行删除处理。

本实施例中,目标生产数据库中的与目标数据表中的目标数据关联的子表数据,可以是在目标生产数据库中存储的与目标数据相关联的子表数据(其他数据);加锁处理可以是锁定处理;释放锁处理可以是解锁处理。

具体的,终端从目标生产数据库存储的数据表中确定需要进行归档的目标数据表;对目标生产数据库中与目标数据表中的目标数据关联的子表数据进行加锁处理,这是为了确保在读取目标数据表时,相关的子表数据不会被其他操作修改或删除;从目标生产数据库存储的数据表中读取目标数据表的内容,这样可以获取待归档的目标数据;在一致性检测结果表示一致的情况下,对目标生产数据库中的与目标数据表中的目标数据关联的子表数据进行释放锁处理,这样可以允许其他操作对这些子表数据进行修改或删除,然后对目标生产数据库存储的目标数据进行删除处理,这样可以确保目标生产数据库中只保留最新的数据。

本实施例提供的技术方案,通过在获取待归档的目标数据表时,对与目标数据表关联的子表数据进行加锁处理,以确保数据的一致性和完整性;在一致性检测结果表示一致的情况下,对子表数据进行释放锁处理,并删除目标数据表,进一步保证了数据的一致性和完整性,提高数据归档的准确率。

在一个实施例中,如图4所示,在从目标生产数据库存储的数据表中,读取目标数据表之前,还包括确定限流速率信息的步骤,具体包括如下内容:

步骤S401,对目标生产数据库进行检测,得到目标生产数据库的负载压力信息;

步骤S402,根据负载压力信息,确定出目标生产数据库的限流速率信息;

在上述步骤中,从目标生产数据库存储的数据表中,读取目标数据表,具体包括如下内容:

步骤S403,根据限流速率信息,从目标生产数据库存储的数据表中,读取目标数据表。

本实施例中,负载压力信息可以包括数据库的当前连接数、查询请求的数量、响应时间等指标,这些信息可以帮助评估目标生产数据库的负载情况;限流速率信息可以表示在一定时间内允许从目标生产数据库中读取数据(如目标数据表/目标数据)的请求速率,通过限制读取请求的速率,可以减轻目标生产数据库的负载压力,保持数据库的稳定性和性能。

具体的,终端在读取目标数据表之前,对目标生产数据库进行检测,以获取目标生产数据库的负载压力信息;根据负载压力信息,确定目标生产数据库的限流速率信息;根据限流速率信息,从目标生产数据库存储的数据表中读取目标数据表,这意味着在读取目标数据表时,需要控制读取请求的速率,以遵守限流速率的要求,这可以通过限制读取请求的频率或使用读取算法来实现。

本实施例提供的技术方案中,负载压力信息和限流速率信息可用来优化数据读取过程的;通过检测目标生产数据库的负载情况,并根据负载情况确定限流速率,可以避免对目标生产数据库造成过大的负载压力;通过限制读取请求的速率,可以控制对目标生产数据库的访问,从而保证数据库的稳定性和性能;提高数据归档的准确率。

在一个实施例中,如图5所示,上述步骤S101,在从金融系统的生产数据库中,确定出待归档的目标生产数据库之前,具体包括如下内容:

步骤S501,获取归档信息;归档信息中包含目标生产数据库标识和目标归档数据库标识;

在步骤S101中,从金融系统的生产数据库中,确定出待归档的目标生产数据库,具体包括如下内容:

步骤S502,根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个待归档的目标生产数据库;

步骤S503,根据目标归档数据库标识,从多个归档数据库中,确定出至少一个目标归档数据库。

本实施例中,归档信息包含了目标生产数据库的标识和目标归档数据库的标识,其中,目标生产数据库的标识用于唯一标识待归档的目标生产数据库,而目标归档数据库的标识用于唯一标识用于存储归档数据的目标归档数据库;金融系统中可以包含多个生产数据库,每个数据库可以存储着不同的数据,通过目标生产数据库标识,可以准确定位到需要归档的具体数据库;归档数据库用于存储归档的数据,可以有多个归档数据库可供选择,通过目标归档数据库标识,可以选择合适的归档数据库来存储归档数据。

具体的,终端在确定待归档的目标生产数据库之前,首先需要获取归档信息;根据目标生产数据库标识,从金融系统的多个生产数据库中确定出至少一个待归档的目标生产数据库;根据目标归档数据库标识,从多个归档数据库中确定出至少一个目标归档数据库。

本实施例提供的技术方案中,归档信息起到了指导作用,通过归档信息中的目标生产数据库标识和目标归档数据库标识,可以准确定位到待归档的目标生产数据库和目标归档数据库,这样可以确保将数据从正确的生产数据库归档到正确的归档数据库中,保证数据的完整性和准确性,提高数据归档的准确率和效率。

在一个实施例中,归档信息中还包含目标数据表标识和单页数据量阈值;上述步骤中,从目标生产数据库存储的数据表中,获取待归档的目标数据表,具体包括如下内容:根据目标数据表标识,从目标生产数据库存储的多个数据表中,获取至少一个待归档的目标数据表;上述步骤中,对目标数据表进行划分处理,得到对应的分页数据,具体包括如下内容:根据单页数据量阈值,对目标数据表中的数据进行划分处理,得到对应的分页数据。

本实施例中,归档信息中除了包含目标生产数据库标识和目标归档数据库标识外,还包含目标数据表标识和单页数据量阈值,其中,目标数据表标识用于唯一标识待归档的目标数据表,即目标生产数据库中需要归档的具体数据表,单页数据量阈值可以是一个设定的阈值,用于划分目标数据表中的数据,根据这个阈值,将目标数据表中的数据划分成适当大小的分页数据,这个阈值的设定可以根据具体需求和系统性能来确定,以便在归档过程中进行数据的有效管理和处理,例如,单页数据量阈值可以表示每页的分页数据为10000条数据。

具体的,终端根据目标数据表标识,从目标生产数据库存储的多个数据表中获取至少一个待归档的目标数据表,其中,目标生产数据库可以包含多个数据表,每个数据表可以存储着不同的数据,通过目标数据表标识,可以准确定位到需要归档的具体数据表;对待归档的目标数据表进行划分处理,得到对应的分页数据,其中,这个步骤是为了将目标数据表中的数据按照设定的单页数据量阈值进行划分,以便在归档过程中进行数据的有效管理和处理,通过划分处理,可以将大数据表分成适当大小的分页数据,方便后续的归档操作。

本实施例提供的技术方案中,归档信息不仅包含了目标生产数据库和目标归档数据库的标识,还包含了目标数据表的标识和单页数据量阈值;通过目标数据表标识,可以确定需要归档的具体数据表;通过单页数据量阈值,可以将目标数据表中的数据划分成合适大小的分页数据,以便进行后续的归档处理;这样可以提高归档过程的效率和可控性,有利于提高数据归档的效率和准确率。

在一个实施例中,上述步骤中,根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个待归档的目标生产数据库,具体包括如下内容:根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个基础生产数据库;对各基础生产数据库进行是否锁定的识别,得到各基础生产数据库的识别结果;针对每一基础生产数据库,在对应的识别结果表示已锁定的情况下,禁止对对应的基础生产数据库进行数据归档处理,或者,在对应的识别结果表示未锁定的情况下,将对应的基础生产数据库作为待归档的目标生产数据库。

本实施例中,基础生产数据库可以是指从多个生产数据库中确定出的待归档的生产数据库。

具体的,终端在金融系统的多个生产数据库中,根据目标生产数据库标识,确定出至少一个基础生产数据库;对各基础生产数据库进行是否锁定的识别,得到各基础生产数据库的识别结果,其中,是否锁定的识别是指对基础生产数据库进行检查,判断其是否被锁定,即是否有其他操作正在对其进行修改或访问(例如,是否有其他终端或服务器正在对其进行修改或访问),通过识别结果,可以确定基础生产数据库的锁定状态;针对每一个基础生产数据库,在对应的识别结果表示已锁定的情况下,禁止对该基础生产数据库进行数据归档处理,这是为了避免在有其他操作对数据库进行修改或访问时,对其进行归档处理可能引发的数据不一致性或冲突;在对应的识别结果表示未锁定的情况下,将该基础生产数据库作为待归档的目标生产数据库,这是为了确保在没有其他操作对数据库进行修改或访问的情况下,对其进行归档处理,以保证数据的完整性和准确性。

本实施例提供的技术方案,通过根据目标生产数据库标识,从金融系统的多个生产数据库中确定出至少一个待归档的目标生产数据库,通过对基础生产数据库进行是否锁定的识别,可以判断是否可以对其进行归档处理,如果基础生产数据库被锁定,则禁止对其进行归档处理,如果基础生产数据库未被锁定,则将其作为待归档的目标生产数据库;这样可以确保在进行归档处理时,不会对正在被其他操作修改或访问的数据库进行处理,保证数据的安全性和一致性,提高数据归档的准确率。

以下以一个实施例说明本申请提供的数据归档方法,本实施例以该方法应用于终端(也可以是服务器)进行举例说明,主要步骤包括:

第一步,终端获取归档信息;归档信息中包含目标生产数据库标识和目标归档数据库标识,还包含目标数据表标识和单页数据量阈值。

第二步,终端根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个基础生产数据库;对各基础生产数据库进行是否锁定的识别,得到各基础生产数据库的识别结果;针对每一基础生产数据库,在对应的识别结果表示已锁定的情况下,禁止对对应的基础生产数据库进行数据归档处理,或者,在对应的识别结果表示未锁定的情况下,将对应的基础生产数据库作为待归档的目标生产数据库;根据目标归档数据库标识,从多个归档数据库中,确定出至少一个目标归档数据库。

第三步,终端对目标生产数据库进行检测,得到目标生产数据库的负载压力信息;根据负载压力信息,确定出目标生产数据库的限流速率信息;根据目标数据表标识,从目标生产数据库存储的多个数据表中,确定出至少一个待归档的目标数据表;对目标生产数据库中的与目标数据表中的目标数据关联的子表数据,进行加锁处理;根据限流速率信息,从目标生产数据库存储的数据表中,读取目标数据表。

第四步,终端根据单页数据量阈值,对目标数据表中的数据进行划分处理,得到对应的分页数据。

第五步,终端利用多线程将分页数据中的目标数据写入目标归档数据库中;对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果;在检测结果表示不一致的情况下,根据检测结果,对目标归档数据库进行针对分页数据中的目标数据的补偿操作,并跳转至对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果的步骤;在检测结果表示一致的情况下,对目标生产数据库中的子表数据进行释放锁处理,并对目标生产数据库存储的目标数据进行删除处理;目标数据为需要归档的数据。

本实施例提供的技术方案,通过从金融系统的生产数据库中,确定出待归档的目标生产数据库,从而确定出需要归档的生产数据库;从目标生产数据库存储的数据表中,获取待归档的目标数据表,从而获取到需要归档的数据表;对目标数据表进行划分处理,得到对应的分页数据,从而得到划分后的数据表;利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理,从而快速和准确地将目标生产数据库中的目标数据归档至目标归档数据库中,从而有利于提高数据归档的效率和准确率。

以下以一个应用实例说明本申请提供的数据归档方法,本应用实例以该方法应用于归档服务器(也可以是服务器/终端)进行举例说明,如图2所示,主要步骤包括:

第一步,每个归档服务器在启动后,会执行定时任务,按照系统配置参数中设定的定时触发时间,定期执行归档操作。此外,还可以在系统管理页面上使用不同维度的归档操作按钮,如全部库归档、指定库归档、具体表归档、具体数据归档等功能按钮(如全部库归档、指定库归档、具体的某张表归档、具体的某条数据归档、还有归档逆向操作还原归档数据、归档数据一致性对比、归档进度统计等功能按钮)。用户可以通过管理页面上的按钮来触发归档操作。这两种触发方式都具有灵活性。

第二步,当触发归档操作后,归档服务器会采用多线程的方式对多个数据库进行归档操作。每个库在进行归档操作时,会根据系统配置参数中设定的数据库名来加锁,以确保在分布式场景下,每个库只在一台机器上执行归档操作。如果需要增加更多数据库进行归档操作,可以通过系统配置参数中的数据库名进行灵活配置,实现库级别的归档控制。

第三步,归档服务器在单库归档时,使用多线程对单库中的多个按行水平拆分的表进行归档。在多线程处理逻辑中,可通过CountDownLatch(倒计时锁存)类来控制,当多个表都完成归档操作后,再对多个表使用Future(未来)类的方法获取子线程的归档操作记录数量,最后在主线程中累加这些数量,得到单库的归档数量。这样可以方便在管理页面上监控和统计归档进度。

第四步,归档服务器对于单表的归档操作,采用分页的方式进行处理,通过系统配置参数设置每页的归档数量,默认为每页归档10000条数据。同时,还可以通过正则表达式配置过滤器,筛选出不需要归档的历史数据,只对符合过滤条件的历史数据进行归档操作。然后,对单表进行循环分页归档处理逻辑,循环判断在配置的归档时间点是否还能查询到历史数据,如果分页查询无法获取到历史数据,则表示单表的归档操作已完成。

第五步,归档服务器使用限流工具类RateLimiter(速率限制器)对每页10000条归档数据进行控制。如果生产数据库服务器压力增大,会调整降低RateLimiter的限流速率,以避免归档操作对生产数据库造成压力影响。如果生产数据库服务器没有压力,会调整增大RateLimiter的限流速率,以提高归档速度。

第六步,归档服务器进行单条数据的归档处理的逻辑:以历史数据主键为维度开始归档,在生产库对单条历史数据相关联的子表数据全部进行加锁,然后在归档库进行新增历史数据,再对生产库与归档库的历史数据进行一致性检查,如一致就删除生产库的历史数据,如不一致就再次执行补偿操作更新归档库数据,保证相关归档数据的完整性,最后释放锁,完成单条历史数据的归档操作。

其中,归档服务器可以同时连接生产数据库和归档数据库,并且可以水平部署多套归档处理系统,以加快归档速度。

本应用实例提供的技术方案,实现基于数据库分库分表大数据量写入场景下,通过多线程、限流等技术控制手段,降低生产数据库服务器磁盘读写压力,高效平滑的对生产库中历史数据进行迁移归档;可以避免对生产数据库造成磁盘读写压力,能够对多库、多表、分页归档等环节进行灵活有效的归档控制,可以高效、平滑、可控的完成基于数据库分库分表大数据量写入场景下的生产数据归档操作;在不影响生产数据库高并发大数据量磁盘读写的情况下,支持每天上亿级别的数据进行高效、平滑、可控的迁移归档操作,对生产库磁盘存储水位线较高的库表能够快速地达到降低磁盘存储的效果,快速降低生产库磁盘存储压力;提高数据归档的效率和准确率。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据归档方法的数据归档装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据归档装置实施例中的具体限定可以参见上文中对于数据归档方法的限定,在此不再赘述。

在一个实施例中,如图6所示,提供了一种数据归档装置,该装置600可以包括:

目标确定模块601,用于从金融系统的生产数据库中,确定出待归档的目标生产数据库;

数据获取模块602,用于从目标生产数据库存储的数据表中,获取待归档的目标数据表;

数据划分模块603,用于对目标数据表进行划分处理,得到对应的分页数据;

数据写入模块604,用于利用多线程将分页数据中的目标数据写入目标归档数据库中,并对目标生产数据库存储的目标数据进行删除处理;目标数据为需要归档的数据。

在一个实施例中,数据写入模块604,还用于对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果;在检测结果表示不一致的情况下,根据检测结果,对目标归档数据库进行针对分页数据中的目标数据的补偿操作,并跳转至对目标归档数据库中写入的数据与目标生产数据库存储的目标数据进行是否一致的检测,得到检测结果的步骤;在检测结果表示一致的情况下,对目标生产数据库存储的目标数据进行删除处理。

在一个实施例中,数据获取模块602,还用于从目标生产数据库存储的数据表中,确定出待归档的目标数据表;对目标生产数据库中的与目标数据表中的目标数据关联的子表数据,进行加锁处理;从目标生产数据库存储的数据表中,读取目标数据表;数据写入模块604,还用于在检测结果表示一致的情况下,对目标生产数据库中的子表数据进行释放锁处理,并对目标生产数据库存储的目标数据进行删除处理。

在一个实施例中,该装置600还包括:信息确定模块,用于对目标生产数据库进行检测,得到目标生产数据库的负载压力信息;根据负载压力信息,确定出目标生产数据库的限流速率信息;数据获取模块602,还用于根据限流速率信息,从目标生产数据库存储的数据表中,读取目标数据表。

在一个实施例中,该装置600还包括:信息获取模块,用于获取归档信息;归档信息中包含目标生产数据库标识和目标归档数据库标识;目标确定模块601,还用于根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个待归档的目标生产数据库;根据目标归档数据库标识,从多个归档数据库中,确定出至少一个目标归档数据库。

在一个实施例中,归档信息中还包含目标数据表标识和单页数据量阈值;数据获取模块602,还用于根据目标数据表标识,从目标生产数据库存储的多个数据表中,获取至少一个待归档的目标数据表;数据划分模块603,还用于根据单页数据量阈值,对目标数据表中的数据进行划分处理,得到对应的分页数据。

在一个实施例中,目标确定模块601,还用于根据目标生产数据库标识,从金融系统的多个生产数据库中,确定出至少一个基础生产数据库;对各基础生产数据库进行是否锁定的识别,得到各基础生产数据库的识别结果;针对每一基础生产数据库,在对应的识别结果表示已锁定的情况下,禁止对对应的基础生产数据库进行数据归档处理,或者,在对应的识别结果表示未锁定的情况下,将对应的基础生产数据库作为待归档的目标生产数据库。

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

需要说明的是,本申请提供的数据归档的方法和装置可用于金融科技领域涉及数据归档的应用领域中,也可用于除金融科技领域之外的任意领域涉及数据归档的处理中,本申请提供的数据归档的方法和装置的应用领域不做限定。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据归档方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 区块链的数据归档处理方法、装置、设备及存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 存储设备的数据删除方法、装置及计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 消息数据存储方法、装置、计算机设备和存储介质
  • 区块链数据归档存储方法、装置、计算机设备和存储介质
  • 历史数据自动归档方法、装置、计算机设备和存储介质
技术分类

06120116492150