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

一种易扩展可配置化的数据备份系统及方法

文献发布时间:2023-06-19 11:35:49


一种易扩展可配置化的数据备份系统及方法

技术领域

本发明涉及数据仓储、数据加工技术领域,具体涉及一种易扩展可配置化的数据备份系统及方法。

背景技术

随着银行网贷业务系统数字化的不断深入、交易系统持续稳定的运行以及时间的增加,交易系统中产生了大量的交易数据存于数据库表中,数据的逐渐增加会导致当前的交易系统存在日间业务响应速度变慢,超出了业务要求的最大响应时间,日终业务处理耗时较长,会推迟第二日正常业务开展,上级要求报送数据查询较慢使按照上级(银监、人行、行内)要求报送数据产生不便,甚至数据过大导致临时空间不足导致查询失败,数据库所在物理机器存储空间不足使业务系统无法正常运行,导致网贷业务无法开展等问题。

针对上述问题,目前银行采取的处理办法是通过人工定期对生产数据库进行整库备份,将数据库备份成一个备份文件,然后再人工对生产系统进行数据清洗,即对于已经过期的交易数据和过程数据采取删除的方式来释放数据库存储空间,虽然目前的处理方法解决了上述问题,但是该处理方法还存在以下缺陷:

(1)整库备份冗余数据较多、备份文件所占磁盘空间较大:当前的备份方案是整库备份,这种备份方式比较粗糙,备份的数据中会有大量的冗余数据(非业务数据),由此产生的备份文件会特别大;

(2)备份文件无法直接进行查询使用:数据库的备份文件不能直接用于筛选查询,必须先将备份文件恢复成数据库才能够筛选查询;

(3)每次备份耗时过长且影响日间业务开展:数据库是全量备份,由于数据库较大每次备份都无法在短时间内完成,并且备份时不能开展日间业务,因此每次备份时日间的交易都需要暂停,影响日间交易的正常开展;

(4)数据库备份文件使用较为繁琐,影响数据报送时效:上级(银监、人行、行内)经常会发文要求报送数据,要求报送的数据是复合维度的无法预料(比如要求报送过去某个日期节点联合贷的本金余额)并且必须严格按照截止时间进行报送,基于该要求就需要我们将某个时间节点的备份文件取出进行还原,还原之后再按照上级要求查询并报送,整个繁琐并且耗时特别长,极大的影响报送效率;

(5)人工进行数据清洗过程对人员要求较高且易出错:目前人工的方式进行数据清洗需要求人员对系统较为熟悉,并且清洗数据时存在出错的风险。

发明内容

针对上述问题,本发明的一个目的是提供一种易扩展可配置化的数据备份系统,该系统采用备份数据库替代原先的备份文件,通过迁移(清洗)系统定期(高频小量)将过期的数据迁移到备份库中,解决了原先迁移耗时较长、备份数据无法直接查询的问题;备份数据库可以横向扩展,数据迁移(数据清洗)动作可以在多个物理机器、多个数据源之间进行;该系统只备份业务数据(非业务数据无需备份),减少备份物理空间占用;数据备份灵活配置,数据迁移(数据清洗)整个过程由程序执行无需人工介入,实现数据备份过程自动化,避免了人工出错的可能性。

本发明的第二个目的是提供一种易扩展可配置化的数据备份方法,该方法根据业务数据实际情况通过配置化的方式,定期对业务库表中的数据以跨数据源的方式进行数据迁移以达到备份的目的,通过删除过期数据或迁移不常用数据,从而提升业务库表使用性能、并减少了数据库对磁盘空间占用。

本发明所采用的第一个技术方案是:一种易扩展可配置化的数据备份系统,包括管理平台服务模块、流程处理引擎模块和多数据源服务模块;

所述管理平台服务模块用于配置系统参数和数据备份相关的参数,提供迁移流程监控功能,提供服务注册、服务发现以及服务监控;其中,所述数据备份相关的参数包括SQL参数变量和迁移SQL模板;所述迁移SQL模板中将同一批有关联性的数据以组的方式进行定义形成迁移群组;

所述流程处理引擎模块用于基于管理平台服务模块配置的参数执行迁移任务,迁移群组间基于层级码顺序执行迁移任务,迁移群组内基于系统参数中设置的顺序分批次执行迁移任务;

所述多数据源服务模块用于对多个数据源进行配置、初始化及事务管理。

优选地,所述管理平台服务模块包括注册中心子模块、调度管理子模块、配置中心子模块和监控中心子模块;

所述注册中心子模块用于服务注册、服务发现以及服务监控功能;

所述调度管理子模块用于配置系统参数,包括配置迁移任务corn表达式、迁移调度执行频次及迁移耗时阈值,并触发执行过程;

所述配置中心子模块用于配置数据备份相关的配置,包括配置SQL参数变量和迁移SQL模板,所述配置迁移SQL模板中包括配置处理类型、迁移群组、迁移业务渠道、数据源、迁移规则和数据字典;

所述监控中心子模块用于提供迁移流程监控功能,监控迁移过程中的各项指标。

优选地,所述流程处理引擎模块包括配置解析器、流程处理器、日志追踪器和差错处理器;

所述配置解析器用于将所述SQL参数变量动态生成当日SQL变量,结合所述当日SQL变量和迁移SQL模板生成当日可执行的SQL语句,将所述可执行的SQL语句保存到迁移任务表中;

所述流程处理器用于执行迁移任务;

所述日志追踪器用于记录迁移的任务日志;

所述差错处理器用于对异常终止的迁移任务进行补偿。

优选地,所述多数据源服务模块包括数据接入和持久化子模块和事物控制子模块;

所述数据接入和持久化子模块用于对数据源进行初始化及持久化管理;

所述事物控制子模块用于对数据源进行事务控制。

优选地,所述多个数据源均属于MYSQL数据库,包括管理平台数据库、数据迁移源库和数据迁移目标库。

本发明所采用的第二个技术方案是:一种易扩展可配置化的数据备份方法,包括以下步骤:

S100:配置系统参数、SQL参数变量以及迁移SQL模板;所述迁移SQL模板中将同一批有关联性的数据以组的方式进行定义形成迁移群组;

S200:基于所述SQL参数变量生成当日SQL参数,基于所述当日SQL参数和所述迁移SQL模板生成迁移任务;

S300:调度执行所述迁移任务直至迁移结束;其中,迁移群组间基于层级码顺序执行迁移任务,迁移群组内基于系统参数中设置的顺序分批次执行迁移任务。

优选地,所述步骤S200包括以下子步骤:

S210:提取所述SQL参数变量,生成当日SQL参数;

S220:提取所述迁移SQL模板;

S230:基于所述当日SQL参数和所述迁移SQL模板配置合成当前迁移任务可执行的SQL语句;

S240:将所述SQL语句保存为迁移任务。

优选地,所述步骤S300包括以下子步骤:

S310:当达到系统参数中设定的迁移调度运行起始日期时,开始迁移任务;

S320:判断是否存在上一次未完成的迁移任务,若是,则按照时间顺序提取未完成的迁移任务和未执行的迁移任务,先处理未完成的迁移任务,后处理未执行的迁移任务;若否,则直接提取未执行的迁移任务进行处理。

优选地,所述步骤S300中迁移群组间基于层级码顺序执行迁移任务具体为:

(1)基于层级码将若干迁移群组进行排序生成迁移群组维度;

(2)基于所述迁移群组维度进行循环处理各迁移群组的迁移任务,若当前迁移群组内所有迁移任务均已处理完,则继续处理下一迁移群组中的迁移任务。

优选地,所述步骤S300中迁移群组内基于系统参数中设置的顺序分批次执行迁移任务具体为:

(1)基于系统参数中设置的数值分批次提取迁移数据;

(2)判断是否能提取到数据,若不能提取到数据,则当前迁移任务处理完成,继续下一迁移任务;

若能提取到数据,则将该数据插入目标库表,删除原库表中被提取的数据,再判断当前时间是否达到数据的迁移调度运行停止日期或处理过程是否出现异常,若达到数据的迁移调度运行停止日期或处理过程出现异常,则标记为未完成的迁移任务;若未达到迁移调度运行停止日期并且未出现异常,则对该数据进行迁移处理;该数据迁移完成后继续基于系统参数中设置的数值分批次提取迁移数据,循环处理直至该迁移群组内所有迁移任务全部完成。

上述技术方案的有益效果:

(1)本发明公开的易扩展可配置化的数据备份系统采用备份数据库替代原先的备份文件,通过迁移(清洗)系统定期(高频小量)将过期的数据迁移到备份库中,此方案解决了原先迁移耗时较长、备份数据无法直接查询的问题。

(2)本发明公开的易扩展可配置化的数据备份系统只备份业务数据(非业务数据无需备份),减少备份物理空间占用,使数据备份更加地精细化,即本系统数据迁移并非是对整库或者整表进行迁移,而是基于业务定制的数据迁移,是基于业务数据维度的迁移,只迁移在符合配置条件的业务数据。

(3)本发明公开的数据备份系统采用多数据源配置,通过增加MYSQL数据库的方式进行数据的横向扩展,数据迁移(数据清洗)动作可以在多个物理机器、多个数据源之间进行。

(4)SQL参数变量和迁移SQL模板能根据实际业务库表的情况进行灵活配置迁移的方式及依赖关系,因此,根据业务系统发展需要,数据迁移(数据清洗)过程可以根据业务实际情况进行配置化,能灵活应对业务变化,实现数据备份灵活配置化;而且其迁移时间可灵活控制。

(5)本发明中的数据迁移(数据清洗)整个过程由程序执行无需人工介入,实现了数据备份过程自动化,避免了人工出错的可能性。

(6)本发明公开的数据备份系统结构采用微服务体系,基于SSM(SpringMVC+Spring+Mybtais)的微服务框架并在MYSQL数据库的基础上进行二次开发;系统的部署方式为单机部署,不依赖于任何集群技术(如:kubernetes、Hadoop),学习成本低,只需直接部署在Linux系统上即可配置使用。

(7)本发明公开的数据备份系统不采用消息中间件的方式进行迁移数据,对于大数据的处理采用分页(分批次)的处理方式来进行小批量多批次的进行数据迁移,对于迁移过程中出现的异常情况采用差错处理的方式来确保数据迁移完整性。

附图说明

图1为本发明一个实施例提供的一种易扩展可配置化的数据备份系统的结构示意图;

图2为本发明一个实施例提供的一种易扩展可配置化的数据备份方法的流程图;

图3为本发明一个实施例提供的生成迁移任务的流程图;

图4为本发明一个实施例提供的执行迁移任务的流程图;

图5为本发明一个实施例提供的迁移群组间及迁移群组内处理迁移任务的流程图。

具体实施方式

下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例的详细描述和附图用于示例性地说明本发明的原理,但不能用来限制本发明的范围,即本发明不限于所描述的优选实施例,本发明的范围由权利要求书限定。

在本发明的描述中,需要说明的是,除非另有说明,“多个”的含义是两个或两个以上;术语“第一”“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性;对于本领域的普通技术人员而言,可视具体情况理解上述术语在本发明中的具体含义。

实施例1

如图1所示,本实施例公开了一种易扩展可配置化的数据备份系统,包括管理平台服务模块、流程处理引擎模块和多数据源服务模块。

管理平台服务模块用于配置数据备份的相关参数和系统参数;提供迁移流程监控功能,监控迁移过程中的各项指标;承担服务中注册中心的角色,提供服务注册、服务发现以及服务监控;管理平台服务模块包括注册中心子模块、调度管理子模块、配置中心子模块和监控中心子模块;

注册中心子模块用于统一的服务注册、服务发现以及服务监控功能,调用方可通过注册中心发现服务并使用该服务;

调度管理子模块用于配置系统参数,包括配置迁移任务corn表达式、迁移调度执行频次(即批次迁移、删除的数据量)及迁移耗时阈值(即迁移调度运行起始日期和迁移调度运行停止日期),并触发执行过程;

配置中心子模块用于配置数据备份相关的配置,包括配置SQL(结构化查询语言)参数变量和迁移SQL模板,配置迁移SQL模板中包括配置处理类型、迁移群组、迁移业务渠道、数据源、迁移规则、数据字典等参数,其中,处理类型包括数据迁移和数据清洗;迁移群组的配置为同一批有关联性的数据进行迁移时,以组的方式进行定义;

监控中心子模块用于提供迁移流程监控功能,监控迁移过程中的各项指标。

流程处理引擎模块用于基于管理平台服务模块配置的参数处理具体的迁移动作,包括规则的解析、执行参数及SQL语句转换及合成、数据迁移(数据清洗)规则执行、执行过程相关日志及结果的登记以及差错登记、差错处理功能;流程处理引擎模块包括配置解析器、流程处理器、日志追踪器和差错处理器;

配置解析器用于将SQL参数变量表定义的配置动态生成当日SQL变量,结合当日SQL变量和迁移SQL模板生成当日可执行的SQL语句,将当日可执行的SQL语句保存到迁移任务表中;

流程处理器用于执行迁移任务,迁移群组间按照层级码顺序执行,迁移群组内按照系统参数中设置的顺序分批次执行;

日志追踪器用于记录迁移的任务日志,便于查看迁移进展以及异常情况;

差错处理器用于对异常终止的迁移任务进行补偿。

多数据源服务模块用于基于Spring和Mybatis对跨库表、跨机器多个数据源进行配置、初始化及事务管理,数据源包括管理平台数据库、数据迁移源库和数据迁移目标库;其中管理平台数据库、数据迁移源库和数据迁移目标库均属于MYSQL数据库;管理平台数据库为数据备份系统所用的数据库;数据迁移源库设置的数量为至少一个,数据迁移目标库设置的数量为至少一个;多数据源服务模块包括数据接入和持久化子模块和事物控制子模块;

数据接入和持久化子模块用于对管理平台数据库、数据迁移源库和数据迁移目标库进行数据源初始化及持久化管理;

事物控制子模块用于对管理平台数据库、数据迁移源库和数据迁移目标库进行事务控制以确保数据一致性、完整性。

本发明采用多数据源配置,通过增加MYSQL数据库的方式进行数据的横向扩展,即通过在配置文件中增加数据库配置,重启服务后会为其创建数据源并进行事务管理;数据迁移(数据清洗)动作可以在多个物理机器、多个数据源之间进行。

本发明公开的数据备份系统结构采用微服务体系,基于SSM(SpringMVC+Spring+Mybtais)的微服务框架并在MYSQL数据库的基础上进行二次开发;系统的部署方式为单机部署,不依赖于任何集群技术(如:kubernetes、Hadoop),学习成本低,只需直接部署在Linux系统上即可配置使用。

本发明公开的易扩展可配置化的数据备份系统能够根据业务实际的需要灵活配置备份库表进行数据备份(数据清洗);在处理大批量数据处理时,可以通过配置对数据分批次,进行高频小批量的数据处理,在千万级数据下稳定运行;迁移(清洗)耗时可控;出现异常也可以保证数据完整不会丢失;可以通过差错处理功能从上一次出错的位置继续处理,确保数据迁移完整性;备份库表也可以进行横向扩展;除此之外还支持备份数据还原功能以满足特殊业务场景下的数据查询要求。

实施例2

如图2所示,本实施例公开了一种易扩展可配置化的数据备份方法,包括以下步骤:

S100:配置系统参数、SQL参数变量以及迁移SQL模板;配置迁移SQL模板时,同一批有关联性的数据进行迁移时,以组的方式进行定义形成迁移群组,迁移群组内每一条数据都会按照顺序将相关联的表逐条迁移;

其中,系统参数的配置见表1;SQL参数变量的配置见表2,配置SQL参数变量时,参数会通过参数名匹配替换SQL模板里的变量得到实际运行参数;迁移SQL模板的配置见表3,配置迁移SQL模板时,SQL语句模板是基于业务实际情况进行迁移的,即SQL参数变量和迁移SQL模板能根据实际业务库表的情况进行灵活配置迁移的方式及依赖关系。

表1 配置系统参数

上述表1的系统参数中参数corn_rule和start_times控制了迁移调度按照什么时间、什么频率执行、如何执行;参数end_time用于控制迁移结束时间,迁移是分批次的,当每个批次迁移结束会判断当前时间是否超过了end_time,若超过则终止当前迁移处理,使迁移时间能够被灵活控制。

表2 配置SQL参数变量的参数配置说明

表3 配置迁移SQL模板的相关定义

S200:基于SQL参数变量生成当日SQL参数,基于当日SQL参数和迁移SQL模板生成迁移任务;

每日生成迁移任务的具体时间点根据实际情况进行配置,例如可以是每日0点基于当日SQL参数和迁移SQL模板生成迁移任务;

如图3所示,生成迁移任务包括以下子步骤:

S210:提取SQL参数变量,生成当日SQL参数;

S220:提取迁移SQL模板;

S230:基于当日SQL参数与迁移SQL模板配置合成当前迁移任务可执行的SQL语句;

S240:将SQL语句保存为迁移任务,迁移任务生成结束。

例如,在当前日期(例如2021.5.14)要迁移放款日期是1年前,当前已经结清的借据,配置SQL参数变量中的变量${currDate}、${offset_days},currDate为当前日期,offset_days为日期偏移天数,值为-365天;

配置迁移SQL模板中的SQL语句模板为:

select * from contract_info where encash_date >= ${currDate} andcontract_status = 'CLEAR';

基于当日SQL参数和迁移SQL模板生成当前迁移任务可执行的SQL语句,具体为:

select * from contract_info where encash_date >= '2021-05-14' andcontract_status = 'CLEAR'。

本发明中被迁移的业务数据需根据实际业务数据情况来进行SQL语句模板与动态参数配置,迁移引擎在执行时会将SQL语句模板和动态参数合成当日执行的迁移SQL语句并分组按照指定顺序进行执行;对于业务数据中的主外键关系,通过将外键作为变量并结合SQL语句模板合成子表迁移语句的方式来实现按业务数据维度进行迁移;可见,SQL参数变量和迁移SQL模板能根据实际业务库表的情况进行灵活配置迁移的方式及依赖关系,因此,根据业务系统发展需要,本发明的数据迁移(数据清洗)过程可以根据业务实际情况进行配置化,能灵活应对业务变化,实现数据备份灵活配置化;而且其迁移时间可灵活控制。

本发明只备份业务数据(非业务数据无需备份),减少备份物理空间占用,使数据备份更加地精细化,即本发明数据迁移并非是对整库或者整表进行迁移,而是基于业务定制的数据迁移,是基于业务数据维度的迁移,只迁移在符合配置条件的业务数据。

S300:调用流程处理引擎模块中的流程处理器处理迁移任务直至迁移结束,如图4所示,具体包括以下子步骤:

S310:当达到系统参数中设定的迁移调度运行起始日期时,开始迁移任务;

S320:根据执行状态判断迁移群组内是否存在上一次未完成的迁移任务,若是,则按照时间顺序提取未完成的迁移任务和未执行的迁移任务,例如按照时间顺序先提取未完成的迁移任务,再提取未执行的迁移任务;合并未完成的迁移任务数据和未执行的迁移任务数据,合并的迁移任务数据中优先排序未完成的迁移任务,先处理未完成的迁移任务,后处理未执行的迁移任务;若否,则直接提取未执行的迁移任务进行处理;其中,执行状态包括未完成的迁移任务和未执行的迁移任务。

如图5所示,未完成的迁移任务或未执行的迁移任务中迁移群组间基于迁移群组维度(层级码顺序)执行迁移任务,迁移群组内基于系统参数中设置的顺序分批次执行迁移任务,即对于各迁移群组间的执行顺序是按照层级码进行排序执行的,对于迁移群组内库表的数据是按照系统参数中batch_limit设定的顺序进行分批次迁移的。

(1)迁移群组间基于迁移群组维度执行迁移任务;

基于层级码将若干迁移群组进行排序生成迁移群组维度;

基于迁移群组维度进行循环处理各迁移群组的迁移任务,若当前迁移群组内所有迁移任务均已处理完,则继续处理下一迁移群组中的迁移任务。

(2)迁移群组内库表的数据基于系统参数中设置的顺序分批次执行迁移任务;

1)按照系统参数中batch_limit(批次迁移、删除的数据量)设置的数值分批次提取迁移数据;

2)判断是否能提取到数据,

若不能提取到数据,则当前迁移任务处理完成,继续下一迁移任务;

若能提取到数据,则将该数据插入目标库表,删除原库表中被提取的数据,再判断当前时间是否达到数据的迁移调度运行停止日期或处理过程是否出现异常,若处理过程出现异常,则终止数据迁移处理并数据回滚,标记成为未完成的迁移任务,未完成的原因是程序异常终止;若达到迁移调度运行停止日期,则标记成未完成的迁移任务,未完成原因为到结束时间终止;若未达到迁移调度运行停止日期并且未出现异常,则对该数据进行迁移处理,该数据迁移完成后继续上述步骤(1),循环往复直至该迁移群组内所有迁移任务全部完成。

本发明不采用消息中间件的方式进行迁移数据,对于大数据的处理采用分页(分批次)的处理方式来进行小批量多批次的进行数据迁移,对于迁移过程中出现的异常情况(未完成的迁移任务,未完成的原因是程序异常终止)采用差错处理的方式来确保数据迁移完整性,具体为:删除上一次迁移任务异常处理遗留的冗余数据,并从失败的数据位置继续迁移处理,从而保证数据完整不会丢失。

虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求范围内的所有技术方案。本发明未详细阐述部分属于本领域技术人员的公知技术。

相关技术
  • 一种易扩展可配置化的数据备份系统及方法
  • 一种易扩展可配置的网络数据收集方法、系统及存储介质
技术分类

06120112986344