一种数据迁移方法和数据迁移服务器技术

技术编号:18445013 阅读:46 留言:0更新日期:2018-07-14 10:25
本发明专利技术实施例公开了一种数据迁移方法及数据迁移服务器。所述数据迁移方法包括:接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。根据本发明专利技术实施例,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。

A data migration method and data migration server

The embodiment of the invention discloses a data migration method and a data migration server. The data migration method includes the collection of data migration tasks; the data migration task set carries the source database identity, multiple target database identifiers and data distribution information; according to the data distribution information, the target database identification is determined in the plurality of target database identifiers; from the source, the source database identification is determined. The database identity corresponds to the source database to read the data to be migrated and write the data to be migrated to the target database that is written to the target database identity to be written. According to the embodiment of the invention, while the migration of the data sub database is realized, it is not necessary to set a large number of complex migration rules, reduce the user's development and maintenance work, and reduce the cost of data migration.

【技术实现步骤摘要】
一种数据迁移方法和数据迁移服务器
本专利技术实施例数据迁移领域,特别是一种数据迁移方法,以及,一种数据迁移服务器。
技术介绍
由于互联网行业的兴起,带动了分布式技术的兴起和快速发展,越来越多的传统行业采用分布式系统架构进行数据存储。在分布式系统架构中,一个最基本技术,就是对数据进行水平拆分,即分库分表技术。所谓分库分表技术,就是将一张数据表中的数据,通过一定的规则分置在不同的数据库或不同的数据表中。在实现分库分表时,需要对大量的数据进行迁移,尤其是一些核心的历史数据的迁移。目前,通常是利用一些现有的数据抽取工具实现数据迁移,例如Kettle、Datastage和Informatica等数据处理软件。然而,在利用上述的数据处理软件进行数据迁移时,因为要将源数据库的数据写入至多个数据库的数据表中,因此,需要设置大量复杂的迁移规则,导致进行数据迁移时需要进行大量的开发工作和维护工作,增加了数据迁移的成本。因此,现有技术的数据迁移方法存在着数据迁移成本较高的问题。
技术实现思路
本专利技术提供了一种数据迁移方法,以及,一种数据迁移服务器,以解决现有技术的数据迁移方法存在着数据迁移成本较高的问题。为了解决上述技术问题,本专利技术实施例公开了一种数据迁移方法,应用于数据迁移服务器,所述方法包括:接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。可选地,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。可选地,所述数据迁移任务集合具有对应的数据分布特征,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。可选地,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。可选地,所述数据迁移任务集合具有对应的数据操作量,所述方法还包括:当所述数据迁移任务集合对应的数据操作量大于预设阈值时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用多个队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。可选地,所述待迁移数据包括多个子数据,所述将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库。可选地,在所述将所述多个子数据批量写入至所述待写入目标数据库标识对应的目标数据库的步骤之后,所述方法还包括:当接收到所述目标数据库发送的写入异常通知时,从所述多个子数据中提取至少一个子数据;将所述至少一个子数据写入至所述待写入目标数据库标识对应的目标数据库,并判断所述至少一个子数据是否成功写入;若是,则返回所述从所述多个子数据中提取至少一个子数据的步骤;若否,则针对所述至少一个子数据添加写入失败标识。可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:当接收到数据断点迁移任务时,查找所述多个数据表中的最大数据标识值,作为目标数据断点值;根据所述目标数据断点值执行断点续传迁移处理。可选地,所述目标数据库包括多个数据表,所述数据表包括有多个写入数据,所述写入数据具有数据标识值,所述方法还包括:当接收到数据断点迁移任务时,在所述多个数据表中分别查找其最大数据标识值,作为多个候选数据断点值;在所述多个候选数据断点值,查找最小候选数据断点值,作为目标数据断点值;根据所述目标数据断点值执行断点续传迁移处理。为了解决上述技术问题,本专利技术实施例还公开了一种数据迁移服务器,所述数据迁移服务器包括:任务接收模块,用于接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;标识确定模块,用于根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;数据迁移模块,用于从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。根据本专利技术实施例,通过设定数据分布信息,并根据数据分布信息确定迁移数据在多个目标数据库以及多个数据表中的分布位置,在将源数据库的数据迁移至多个数据库的数据表时,在实现数据分库分表迁移的同时,无须设置大量复杂的迁移规则,减少了用户的开发工作和维护工作,降低了数据迁移的成本。附图说明图1是本专利技术实施例一提供的数据迁移方法的流程图;图2是本专利技术实施例的数据迁移服务器集群的结构示意图;图3是本专利技术实施例的一个数据迁移实例的数据流向示意图;图4是本专利技术实施例的另一个数据迁移实例的数据流向示意图;图5是本专利技术实施例二提供的数据迁移方法的流程图;图6是本专利技术实施例的并行迁移策略的示意图;图7是本专利技术实施例的异步Fair迁移策略的示意图;图8是本专利技术实施例的异步Crazy迁移策略的示意图;图9是本专利技术实施例的异步Crazy迁移策略的示意图;图10是本专利技术实施例的一种断点迁移方法的示意图;图11是本专利技术实施例的另一种断点本文档来自技高网...

【技术保护点】
1.一种数据迁移方法,应用于数据迁移服务器,其特征在于,所述方法包括:接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。

【技术特征摘要】
1.一种数据迁移方法,应用于数据迁移服务器,其特征在于,所述方法包括:接收数据迁移任务集合;所述数据迁移任务集合携带源数据库标识、多个目标数据库标识和数据分布信息;根据所述数据分布信息,在所述多个目标数据库标识中确定待写入目标数据库标识;从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量小于预设阈值时,针对所述数据迁移任务集合配置单个处理线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述单个处理线程从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。3.根据权利要求1所述的方法,其特征在于,所述数据迁移任务集合具有对应的数据分布特征,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置单个处理线程为队列分配线程,以及,配置至少一个处理线程为写入线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据,以及,调用所述队列分配线程将读取的待迁移数据形成多个数据队列,调用所述写入线程将所述多个数据队列中的待迁移数据依次写入所述待写入目标数据库标识对应的目标数据库中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述数据迁移任务集合对应的迁移数据量大于所述预设阈值、且所述数据迁移任务集合对应的数据分布特征不符合预设分布特征时,针对所述数据迁移任务集合配置单个处理线程作为读取线程,以及,配置多个处理线程为写入线程;所述从所述源数据库标识对应的源数据库中读取待迁移数据,并将所述待迁移数据写入所述待写入目标数据库标识对应的目标数据库中的步骤,包括:调用所述读取线程从所述源数据库标识对应的源数据库中读取待迁移数据、并将读取的待迁移数据形成单个数据队列,以及,调用多个写入线程将所述单个数据队列中的待迁移数据写入所述待写入目标数据库标识对应的目标数据库中。5.根据权利要求1所述的方法,其特征在于,所述数据迁移任务集合具有对应的数据操作量,所述方法还包括:当所述数据迁移任务集合...

【专利技术属性】
技术研发人员:尹家彬李晓群陈深龙赵泊瑄
申请(专利权)人:中国民生银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1