技术领域
本发明涉及数据处理技术领域,具体涉及一种基于涉及批量任务的应用系统数据切片的抽取方法。
背景技术
应用系统的数据库集群采用主从备的架构体系。在进行数据主库同一实例下进行写入操作时,数据在主库写入成功之后,会触发数据自动同步的机制把主库当前时间段内所有的操作同步到从库和备库。
在数据库使用过程中,主库用于应用系统增删改查操作。从库用于应用系统部分查询操作。备库用于大数据数据抽取。
约定:大数据抽取的是应用系统从主库同步到从库,再从从库同步到备库的数据,本申请不涉及从库相关使用。为和业界术语保持统一,以下描述中实际的主备同步,都统称为“主从同步”;描述中所有的备库,都用“从库”代替。
现有技术中,大数据会抽取应用系统若干批量任务中某个时间点以前的数据切片。在抽取过程中,为避免待抽取数据被后续应用系统批量任务的执行所改变从而造成数据污染,该批量任务会暂停一段时间,等待大数据抽数结束后,才能继续执行;暂停时间长短可设置。
本方案提到的应用系统,是指在金融行业中涉及批量任务的应用系统,包括信贷核心应用系统、行核心应用系统等应用系统;按功能划分,可有处理信贷业务的批量、出合作方对账文件的批量、处理总账流水的批量等应用系统。
综上所述,在现有的抽取方法中,存在以下两个问题:
1、大数据抽数异常时,超过设置等待时间仍未完成,应用系统批量任务的继续执行会污染需要抽取的数据切片。
2、应用系统的批量任务中途需暂停等待大数据抽数,拉长了总体执行时间。
发明内容
针对现有技术中大数据抽数异常,超过设置等待时间仍未完成,应用系统批量任务的继续执行会污染需要抽取的数据切片,以及应用系统的批量任务中途需暂停等待大数据抽数,拉长了批量任务总体执行时间的问题,本发明提供一种基于涉及批量任务的应用系统数据切片的抽取方法,其目的在于:大数据抽数和批量任务的执行可同步进行且能避免污染需要抽取的数据切片,同时缩短批量任务总体执行时间。
为了达到上述目的,本发明采用如下技术方案:
一种基于涉及批量任务的应用系统数据切片的抽取方法,包括:
步骤A:数据库预处理,具体为:在应用系统的主库和从库的同一实例中分别增加一个数据库,并在主库增加的数据库中新建一张表X,在从库中所述增加的数据库中新建一张表X',表X和表X'的名称相同;
步骤B:应用系统批量执行到大数据抽数节点时,中断主从同步任务,生成中断节点;
步骤C:大数据抽取应用系统从库数据的同时,应用系统继续执行后续批量任务;
步骤D:从主从同步中断节点开始恢复主从数据同步。
本发明中,通过更改从库表名并在主库的该表中插入一条记录,实现当该条记录准备同步到从库时,找不到对应数据库表从而断开主从同步,生成中断节点。此时无论主库的任意一张表做任何修改,主从同步均不能继续进行。此时大数据开始抽取数据切片。待大数据抽取从库数据完毕,发送抽取数据完成通知后,应用系统对从库的表名进行修改,修改后的从库表名与主库相同,主从同步才能得以继续进行。大数据抽取从库数据过程与应用系统执行后续批量任务可同时进行,应用系统不再暂停批量并等待,缩短了批量任务总体执行时间。
进一步的,所述步骤A具体为:在应用系统主库和从库的同一实例中分别增加一个数据库,并在主库增加的数据库中新建一张表X,在从库中所述增加的数据库中新建一张表X',表X和表X'的名称相同;主库和从库中所述新建的表的表名可根据习惯和需求任意命名,方便理解和管理。
进一步的,所述步骤B具体为:在应用系统执行批量任务到达大数据抽数节点时,向主库业务表中写入“到达抽数节点”标志,同时修改从库中表X'的名称,再向主库中表X新增任意一条记录。
本发明通过应用系统的每日批量业务逻辑实现,在到达抽数节点后,执行后续批量前:首先,向主库业务表中写入“到达抽数节点”标志,其次修改从库中表X'的名称,最后向主库中表X新增任意一条记录,该记录无需具有业务含义。当表X新增记录后会引发主从同步到表X',此时找不到与表X相同的表名,该条数据的主从同步失败,触发后续所有应用系统的主库数据同步到从库的失败,从而人为中断了主从同步。
进一步的,步骤C具体为:大数据启动数据检查任务,轮询到“到达抽数节点”标志后,开始对从库进行抽数。
进一步的,所述步骤C中,在大数据进行数据抽取的过程中,应用系统继续执行后续批量任务,在对主库数据做改动的同时不会触发从库的同步。
本发明由于主从同步中断,所以在大数据进行数据抽取时,不必担心继续执行批量任务导致的数据变化会立即同步到从库影响待大数据抽取的数据,避免了数据被污染。
进一步的,所述步骤D具体为:大数据数据抽取完成后,向应用系统发送数据抽取完成的通知,应用系统接收到该通知后,将从库中表X'的名称修改回原来的名称,所有从中断节点未同步到从库的数据开始依次恢复主从数据同步。
本发明在大数据数据抽取完成后,通过修改从库表X'的表名,恢复主从同步,中断节点之后所有失败的数据便依次进行同步。直到主库和从库的数据一致为止。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.通过对从库中的新增表名进行修改,有效控制主从同步的断开和恢复,避免执行后续批量任务而污染待抽取的数据切片。
2.大数据抽取从库数据过程与应用系统执行批量任务可同时进行,缩短了批量任务处理的总体耗时。
3.主从同步的“开关”完全掌握在应用系统的业务逻辑代码中,方便且灵活可控。
附图说明
图1为本发明的具体实施方式示意图;
图2为本发明一种实施例的具体实施方式的原理图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
下面将结合附图及具体实施方式对本发明作进一步的描述。
如图1所示,其为一种基于涉及批量任务的应用系统数据切片的抽取方法的实施方式,
包括:
步骤A:数据库预处理,;
具体为:在应用系统的主库和从库的同一实例中分别增加一个数据库,并在主库增加的数据库中新建一张表X,在从库中所述增加的数据库中新建一张表X',表X和表X'的名称相同,且无命名要求。
步骤B:在大数据抽数节点时,中断主从同步任务,生成中断节点;
具体为:在应用系统执行批量任务到达大数据抽数节点时,向主库业务表中写入“到达抽数节点”标志,同时修改从库中表X'的名称,再向主库中表X新增任意一条记录。
步骤C:
大数据启动数据检查任务,轮询到“到达抽数节点”标志后,开始对从库进行数据抽取。同时,应用系统继续执行后续批量任务,在对主库数据做改动的同时不会触发从库的同步。
步骤D:从主从同步中断节点开始恢复主从数据同步。
具体为:大数据数据抽取完成后,向应用系统发送数据抽取完成的通知,应用系统接收到大数据的通知后,将从库中表X'的名称修改回原来的名称,所有从中断节点未同步从库的数据开始依次恢复主从数据同步。
应用系统实施例:
在应用系统的主库和从库中分别建立一个新增数据库A和新增数据库B,在新增数据库A和新增数据库B均建立新增名称为“swich_on”的表。在每日应用系统执行批量任务到达大数据抽数节点时:首先,向主库中写入“ready”标识;然后修改从库中表的名称,将“swich_on”修改为“swich_off”;最后向主库中“swich_on”的表中写入当前业务日期做为主键的一条记录R。同时,大数据的轮询任务在轮询到“ready”标志后,开始从从库进行抽数。
当记录R在从主库的swith_on同步到从库swith_on的时候,发现该从库中不存在“swich_on”表而无法进行同步,进而导致该同步线程中断,一直在该节点轮询检查数据状态是否能进行同步。在此状态下,无论主库的任何一张表数据做任何的修改,都无法同步到从库。因此应用系统可以继续进行后续批量任务,且不用担心执行批量任务导致的数据变化会立即同步到从库而污染待抽取的数据切片。这样则达到了应用系统后续执行批量任务与大数据抽数两者并行处理互不影响的目的。
在大数据抽取完成之后,发送抽数完成的MQ通知。应用系统订阅并消费此通知后,把从库中的表“swich_off”修改为“swich_on”。此时主库和从库的表名相同,从中断点节点开始重新进行主从同步,该节点之后所有失败的数据便依次恢复同步,直到主库和从库的数据完全一致为止。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
机译: 一种系统和方法,通过该系统和方法,手机可以在端到端安全管理应用程序中与低功耗蓝牙(BLE)设备进行通信,从而提供自动检入/检出功能,自动显示安全消息,自动数据收集,触发胁迫短信,能够通过BLE硬件监视远程人员或电子邮件的状态。该系统通过手机上的“应用”运行。手机应用程序连接到基于云的监视系统以跟踪上述任务。任务由BLE Beacon硬件激活。
机译: 针对一种或多种涉及减少假阳性欺诈检测事件的技术应用程序配置的基于计算机的系统和平台以及计算机实现的方法
机译: 磁共振,即核磁共振,一种用于临床应用的图像生成方法,涉及基于运动条件的测量相位校正数据,以将部分区域的位置保持在静止状态