CN103793424A - 数据库数据迁移方法及系统 - Google Patents

数据库数据迁移方法及系统 Download PDF

Info

Publication number
CN103793424A
CN103793424A CN201210429450.3A CN201210429450A CN103793424A CN 103793424 A CN103793424 A CN 103793424A CN 201210429450 A CN201210429450 A CN 201210429450A CN 103793424 A CN103793424 A CN 103793424A
Authority
CN
China
Prior art keywords
database
data
task
migration
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201210429450.3A
Other languages
English (en)
Other versions
CN103793424B (zh
Inventor
庄伟杰
宁玉杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210429450.3A priority Critical patent/CN103793424B/zh
Publication of CN103793424A publication Critical patent/CN103793424A/zh
Application granted granted Critical
Publication of CN103793424B publication Critical patent/CN103793424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据库数据迁移方法,应用在分布式系统集群环境中,用于在第一数据库和第二数据库之间迁移数据,该方法包括:配置数据库迁移任务的多个表任务对应的表任务信息,所述多个表任务能够被批量调度;根据所调度的表任务从第一数据库读出该表任务中需迁移的源数据表的数据,并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中;及从所述分布式文件系统中读出所述多个分库数据表,再将该多个分库数据表导出到第二数据库中。所述迁移方法只需要一次配置即可将不同的数据从一种数据库迁移到另外一种数据库,提高了数据迁移的速度及稳定性。本申请还提供一种数据库数据迁移系统。

Description

数据库数据迁移方法及系统
技术领域
本申请涉及计算机技术中不同数据库之间数据迁移的方法,尤其涉及异构数据库之间数据迁移的方法及系统。
背景技术
早期互联网应用中,底层数据普遍采取单库存储所有数据的存储方案。随着互联网应用的发展,用户量的激增,数据存储数量呈指数递增,底层数据单库存储方案制约甚至限制着互联网应用的进一步扩展。为此,为解决单库存储的瓶颈问题,需逐步采用另外一种支持横向存储的解决方案。而要解决数据存储的瓶颈,必须切换现有的存储结构,但由于目前底层数据量非常庞大,在切换存储结构的同时,如何将原有的海量数据迁移到新的支持横向扩展的存储结构上也是一个很大的瓶颈点。
现有的进行互联网中数据迁移用到的手段或者是通过不同数据库提供的导入导出工具将原数据库的数据导出到文件中,再将这些数据文件通过另外一种数据库工具导入到新的数据表,或者在不同数据库中编写和应用相关的程序,在程序中将数据从原数据库中通过查询语句查询出来后,再通过程序将数据插入到新的数据库,或者利用云数据迁移工具,将一个关系型数据库中的数据导入到分布式系统集群Hadoop的分布式文件系统(Hadoop Distributed FileSystem,HDFS)中,也可以将HDFS的数据导入到关系型数据库中。通过Sqoop,可以在基于Hadoop分布式处理的基础上,将数据从原数据库中取出到HDFS中,再将数据从HDFS中取出导入到新的数据库中。由此看出目前互联网中的数据迁移工具的核心都在于将数据从原数据库中导出,再将数据导入到新的数据库中,这些技术方案存在以下不足,首先是在多表海量数据情况下无法进行批量操作;其次,无法避免数据量超出服务器处理能力的问题;再次,现有的数据库数据迁移工具普遍都无法支持对数据的二次处理,即都不能够支持对原数据库数据的分库迁移;最后,目前互联网中的数据迁移工具很多都不支持数据迁移后的校验功能。
发明内容
有鉴于此,有必要提供一种数据库数据迁移方法及系统,以解决现有数据库数据迁移中存在的速度、稳定性及数据正确性的问题。
本申请提供一种数据库数据迁移方法,应用在分布式系统集群环境中,用于在第一数据库和第二数据库之间迁移数据,该方法包括:
配置数据库迁移任务的被批量调度的多个表任务对应的表任务信息,所述每个表任务将第一数据库中与该表任务对应的源数据表进行数据迁移;
从第一数据库读出该表任务中需迁移的源数据表的数据;
并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中;及
从所述分布式文件系统中将该多个分库数据表导出到第二数据库中。
进一步地,所述迁移方法还包括:比较第一数据库与第二数据库中的数据,校验在迁移过程中数据是否有缺失以及数据是否不完整。
本申请还提供一种数据库数据迁移系统,运行在分布式系统集群环境中,用于在第一数据库和第二数据库之间迁移数据,该迁移系统包括:
配置模块,用于配置数据库迁移任务的多个表任务对应的表任务信息,所述每个表任务指对第一数据库中一个源数据表进行数据迁移的迁移任务;
调度控制模块,能够读取所述表任务信息,并批量调度所述多个表任务;
数据导入模块,用于根据所调度的表任务从第一数据库读出该表任务中需迁移的源数据表的数据,并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中;及
数据导出模块,从所述分布式文件系统中读出所述多个分库数据表,再将该多个分库数据表导出到第二数据库中。
进一步地,所述迁移系统还包括数据校验模块,该数据校验模块用于比较第一数据库与第二数据库中的数据,校验在迁移过程中数据是否有缺失以及数据是否不完整。
与现有技术相比,本申请数据库数据迁移方法及系统将每个数据表当作一个迁移任务,以数据库导入导出工具或者定制程序作为异构数据库读写数据的主要手段,在分布式集群中运行这些任务,同时在数据处理中加入自定义的分库算法,将读出的数据划分到多个文件中,再在任务中调用数据库导入导出工具或者定制程序将数据导入到多个新的数据库中。由于每个表都是一个迁移任务,使得不同表不同数据源的问题能够有清晰的划分,可以支持多个任务批量同时进行而不互相影响,大大的加快了数据迁移的速度。在迁移完成后,可以对新库和旧库之间的数据进行校验,找出不一致的数据。因此本申请相对传统的处理数据导入导出的方法,提高了迁移的速度,提供了数据校验功能,保证了迁移过程中的稳定性及迁移过程中的数据正确性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举实施例,并配合附图,详细说明如下。
附图说明
以下结合附图描述本申请的实施例,其中:
图1是本申请实施例提供的一种数据库数据迁移系统的结构框图;
图2是本申请实施例提供的一种数据库数据迁移方法的流程图;
图3是图2中步骤S20的流程图;
图4A-图4F是分库示意图;
图5是图2中步骤S30的流程图;
图6是图2中步骤S40的流程图。
具体实施方式
以下基于附图对本申请的具体实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅作为实施例,并不用于限定本申请的保护范围。
请参阅图1所示,是本申请实施例提供的一种数据库数据迁移系统的结构框图。电子装置1处于分布式系统集群4环境中,通过应用程序调用接口(API)与分布式系统集群4通讯。所述电子装置1可以是任意一种具有数据处理能力的用户终端、服务器等,该电子装置1还包括存储单元11和中央处理器(CPU)12。
所述数据库数据迁移系统10(以下简称“迁移系统10”)运行在电子装置1上,该迁移系统10用于在分布式系统集群的环境下将第一数据库2中的数据迁移到第二数据库3中,尤其适合用于第一数据库2与多个第二数据库3之间海量数据的迁移。
本实施例中,所述第一数据库2和第二数据库3互为异构数据库。在本实施例中,第一数据库可以是Oracle数据库。第二数据库可以是Mysql数据库。所述分布式系统集群4可以是Hadoop。
所述迁移系统10包括配置模块100、调度控制模块101、数据导入模块102、数据导出模块103及数据校验模块104。这里所称的“模块”具有特定功能,用来完成给定的任务,可以是软件程序或软件程序段,也可以是执行所述软件程序或软件程序段的计算机硬件。该软件程序或软件程序段存储于计算机可读存储介质或其他存储设备中,可被计算机或其他包含处理器的电子装置执行,从而完成本申请数据库数据迁移的作业流程。在本实施例中,所述迁移系统10存储于存储单元11中,能够被CPU 12执行。
所述各模块的功能请参照图2至图6的流程。
请参阅图2所示,是本申请实施例提供的一种数据库数据迁移方法的流程图。
步骤S10,配置数据库迁移任务的多个表(table)任务对应的表任务信息。
所述第一数据库2一般包含多个数据表,所述每个表任务指对第一数据库2中一个源数据表进行数据迁移的迁移任务。所述配置模块100通过表配置(table-config.xml)文件来配置多个表任务对应的表任务信息,所述表配置文件可以存储在存储单元11中。调度控制模块101能够读取所述表任务信息,并批量调度所述多个表任务。
在本实施例中,使用xml格式表配置文件来配置所述多个表任务对应的表任务信息。所述每个表任务具有身份标识(id)。对应所述每个表任务,所述表配置文件都包括源(source)配置和目标(target)配置。在每个表任务中,所述源配置给出了第一数据库2中需要迁移的源数据表的信息,所述目标配置给出了要把需要迁移的源数据表迁往的第二数据库3中的目标数据表的信息。具体地,所述源配置可包括第一数据库2中需迁移的数据表的源表名(sourcename)、切分字段(split-by)、分库字段(partition-by)以及源表列(source columns)和源表主键(source key)等信息。所述目标配置具体可包括将写入第二数据库3中的目标数据表的目标表名(target name)、目标表列(target columns)以及目标表主键(target key)等信息。通过在表配置文件中填写前述源表名、目标表名等信息,即可实现一个表任务的配置。
步骤S20,数据导入模块102根据所调度的表任务从第一数据库2读出该表任务中需迁移的源数据表的数据,并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中。
步骤S30,数据导出模块103从所述分布式文件系统中读出所述多个分库数据表,再将该多个分库数据表导出到第二数据库3中。
通过以上两个步骤S20和S30,即完成了一个表任务中需迁移的数据表中的数据在不同数据库之间的数据迁移。而对于多个表任务,便由调度控制模块101统一进行调度和隔离,使得每个任务没有冲突,并且可以并行进行。
步骤S40,数据校验模块104比较第一数据库2与第二数据库3中的数据,校验在迁移过程中数据是否有缺失以及数据是否不完整。
请参阅图3所示,是图2中步骤S20的流程图。
在本实施例中,以第一数据库2为Oracle数据库,第二数据库3为Mysql数据库为例进行介绍。
步骤S201,数据导入模块102首先从表配置文件中获取并加载所调度的表任务的表任务信息。所述表任务信息中包括该表任务对应需要迁移的源数据表的切分字段及分库字段等信息。
步骤S202,数据导入模块102根据所述表任务信息中的切分字段将需要迁移的源数据表分成第一数量的多个切片,并请求分布式系统集群4对应每个切片形成一个第一映射(map)任务,即形成第一数量的第一映射任务,所述每个第一映射任务都与第一数据库2连接并读取源数据表的一个切片。所述切片,即根据表任务信息提供的切分字段将需要处理的数据表的数据切分为多个部分,每个部分即是一个切片。所述每个切片读取后可以存储在分布式系统集群4中的一个电脑的处理器的缓存中,通过采用分布式系统集群4,可以将一个源数据表的每个切片分发到一个普通电脑中处理,由于每个切片的数据量较小,从而无需采用处理能力很强的服务器来处理。
步骤S203,数据导入模块102进一步请求分布式系统集群4在所述每个第一映射任务中,根据所述表任务信息中的分库字段对该第一映射任务读取的每个切片进行分库得到第二数量的分库数据表,所述数据导入模块102请求分布式系统集群4根据所述分库后得到的每个分库数据表对应形成一个第一化简(reduce)任务,即具有第二数量的第一化简任务。
所述分库是指通过分库算法将一个源数据表中的数据切分为多个分库数据表的过程。所述分库算法,即可以对数据进行横向切分,使得数据可以从单库分布到各个分库的划分算法。第一数据库2中的源数据表的多个切片中属于同一个分库的数据在分库后会被分到同一个分库数据表中。
所述第一映射任务进行分库的具体处理过程可参见下面的例子:
第一映射任务主要负责逐条读取第一数据库(Oracle)2中某一个源数据表的数据,并对读取后的数据做转义、转码,如对符号“,”转义,对中文转码后,读取表配置文件中配置好的该表中的分库字段对应的分库键值,例如图4A中customer_id对应的字段。然后,使用分库算法切分,例如使用cobar(cobar,阿里巴巴开发的一个关系型数据的分布式处理系统,它可以在分布式的环境下像传统数据库一样提供海量数据服务)对数据进行切分的算法。以图4A所示的数据表400为例,使用分库算法对分库键值进行切分的具体方式说明如下。对数据表400中customer_id对应的字段的值进行取模,映射到某一个下标中,如1至128。比如customer_id值为611087491,取模后的下标为16,则该行数据映射到下标为16的文件中,并将该行数据映射到下标为16的第一化简任务中进行处理,同理,其他的数据都按照这种方式,逐条逐条的划分到对应的文件及对应的第一化简任务中,最终达到将这个Oracle表的数据进行分库的结果。
下面以所述单个数据表400作为原始表为例,将该数据表400进行划分,划分到128个文件中,其中5个文件划分到了数据得到5个有数据的分库数据表,其他文件中的是无数据的分库数据表。请参见图4A到图4F的分库示意图。根据所述数据表400中的customer_id对应的字段值进行划分后,可以把数据从该单个数据表400分到5个不同的文件中。
其中图4A是数据表400分库前的示意图。
将数据表400中第一行数据的分库键值(customer_id值为611087491)取模,得到下标为16,则将该第一行数据映射到下标为16的文件中,参见图4B所示的文件。同理,将该第一行的数据映射到下标为16的第一化简任务中进行处理。
将数据表400中第十六行数据的分库键值(customer_id值为10714947)取模,得到下标为48,则将该第十六行的数据映射到下标为48的文件中,参见图4C所示的文件。同理,将该第十六行的数据映射到下标为48的第一化简任务中进行处理。
将数据表400中第二、三、四行数据的分库键值取模,得到的下标为102,则将该第二、三、四行的数据映射到下标为102的文件中,参见图4D所示的文件。同理,将该第二、三、四行的数据映射到下标为102的第一化简任务中进行处理。
将数据表400中第五至第十二行数据的分库键值取模,得到下标为103,则将该第五至十二行的数据映射到下标为103的文件中,参见图4E所示的文件。同理,将该第五至第十二行的数据映射到下标为103的第一化简任务中进行处理。
将数据表400中第十三、十四、十五、十七行数据的分库键值取模,得到的下标均为104,则将该第十三、十四、十五、十七行的数据的映射到下标为104的文件中,参见图4F所示的文件。同理,将该第十三、十四、、十五、十七行的数据映射到下标为104的第一化简任务中进行处理。
通过划分后的表,可以放置到不同的数据库,在读取数据时,只需要通过原有的分库算法对指定的分库键值(如customer_id,这个是在分库后的数据中也会存在的字段)进行分库,将分库键值映射到对应的数据库下标,即可读取同一个表在不同库中的数据,而同表不同数据库之间的每一条数据是互不影响且是唯一的。
在本实施例中,可以使用cobar分库算法和开源的cobar分布式数据库来实现数据的横向切分和读写。
步骤S204,由每个第一化简任务将分库后得到的每个分库数据表的数据写入到分布式文件系统中。即,第二数量的第一化简任务将分库后得到的第二数量的分库数据表的数据写入到分布式文件系统中。所述分布式文件系统可以为HDFS。
本申请引入分库,解决了数据横向切分的问题。
请参阅图5所示,是图2中步骤S30的流程图。
步骤S301,数据导出模块103根据表任务的身份标识(id)从表配置文件中获取表任务信息。
步骤S302,数据导出模块103请求分布式系统集群4对应所述第二数量的分库数据表形成第二数量的第二映射任务,所述每个第二映射任务会将一个分库数据表从所述分布式文件系统中读出并写入本地系统临时文件。
具体地,所述数据导出模块103可以通过文件数据源匹配算法将分布式文件系统中的分库数据表划分给不同的第二映射任务进行读取。所述第二映射任务可以使用行读取器(Line Record Reader)将分布式文件系统中的分库数据表按行的方式一行一行的读出,此时,第二映射任务读取到的数据都是属于同一个分库的。
步骤S303,由所述每个第二映射任务调用一个第二数据库3(如Mysql数据库)导入工具(如mysqlimport),将写入到本地系统临时文件中的分库数据表导入到第二数据库3中。需要说明的是,写入到本地系统临时文件中的分库数据表可导入到一个或多个第二数据库3中。
请参阅图6所示,是图2中步骤S40的流程图。
步骤S401,数据校验模块104读取表配置文件中的表任务信息。
步骤S402,数据校验模块104根据表任务信息中的切分字段将需要校对的第一数据库2中的源数据表分成第一数量的多个切片,并请求分布式系统集群4对应该每个切片形成一个第三映射任务,所述每个第三映射任务读取源数据表中的一个切片,并根据所述表任务信息中的分库字段对该第三映射任务读取的每个切片进行分库得到第二数量的多个分库数据表。
步骤S403,数据校验模块104从第二数据库3中读取与所述多个分库数据表对应的数据,并请求分布式系统集群4根据每个分库数据表对应形成一个第三化简任务,所述第三化简任务通过合并和排序将第一数据库2中的源数据表分库得到的多个分库数据表与从第二数据库3中读取的与所述多个分库数据表对应的数据进行比较,校验数据是否有缺失及数据是否不完整等问题存在。
其中,第二数据库3所有分库的数据使用与第一数据库2数据迁移到第二数据库3的过程中相同的分库算法的分布式数据库读取,该分布式数据库如cobar。所述第三化简任务通过合并和排序,将分别从第一数据库2和第二数据库3的数据形成一组组的数据对,实际上,分别相当于一条导入过程记录和导出过程记录。可以理解,从第二数据库3中读取数据时也可以采用分布式处理方法,即请求分布式系统集群4形成多个映射任务来分别读取每个分库中的数据。
与现有技术相比,本申请数据库数据迁移方法及系统将每个数据表当作一个迁移任务,以数据库导入导出工具或者定制程序作为异构数据库读写数据的主要手段,在分布式集群中运行这些任务,同时在数据处理中加入自定义的分库算法,将读出的数据划分到多个文件中,再在任务中调用数据库导入导出工具或者定制程序将数据导入到多个新的数据库中。由于每个表都是一个迁移任务,使得不同表不同数据源的问题能够有清晰的划分,可以支持多个任务批量同时进行而不互相影响,大大的加快了数据迁移的速度。在迁移完成后,可以对新库和旧库之间的数据进行校验,找出不一致的数据。因此本申请相对传统的处理数据导入导出的方法,提高了迁移的速度,提供了数据校验功能,保证了迁移过程中的稳定性及迁移过程中的数据正确性。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种数据库数据迁移方法,应用在分布式系统集群环境中,用于在第一数据库和第二数据库之间迁移数据,其特征在于,该方法包括:
配置数据库迁移任务的被批量调度的多个表任务对应的表任务信息,所述每个表任务将第一数据库中与该表任务对应的源数据表进行数据迁移;
从第一数据库读出该表任务中需迁移的源数据表的数据;
并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中;及
从所述分布式文件系统中将该多个分库数据表导出到第二数据库中。
2.如权利要求1所述的数据库数据迁移方法,其特征在于,通过表配置文件来配置多个表任务对应的表任务信息。
3.如权利要求2所述的数据库数据迁移方法,其特征在于,对应每个表任务,所述表配置文件包括源配置和目标配置,所述源配置给出了第一数据库中需要迁移的源数据表的信息,所述目标配置给出了要把需要迁移的源数据表迁往的第二数据库中的目标数据表的信息。
4.如权利要求1所述的数据库数据迁移方法,其特征在于,将第一数据库中数据导入到分布式文件系统中的过程包括:
获取并加载所调度的表任务的表任务信息,所述表任务信息中包括该表任务对应需要迁移的源数据表的切分字段及分库字段信息;
根据所述表任务信息中的切分字段将需要迁移的源数据表分成第一数量的多个切片,并请求分布式系统集群对应每个切片形成一个第一映射任务,所述每个第一映射任务都与第一数据库连接并读取源数据表的一个切片;
进一步请求分布式系统集群在所述每个第一映射任务中,根据所述表任务信息中的分库字段对该第一映射任务读取的每个切片进行分库得到第二数量的分库数据表,进一步请求分布式系统集群根据所述分库后得到的每个分库数据表对应形成一个第一化简任务;及
由每个第一化简任务将分库后得到的每个分库数据表的数据写入到分布式文件系统中。
5.如权利要求4所述的数据库数据迁移方法,其特征在于,所述分库过程包括:
逐条读取第一数据库中一个源数据表的数据;
对所读取的数据做转义、转码;
读取表任务信息中的源数据表的分库字段信息;
对该分库字段对应的分库键值取模并映射到一个下标的文件中;及
将该下表的文件划分到对应的第一化简任务中。
6.如权利要求1所述的数据库数据迁移方法,其特征在于,从所述分布式文件系统中将该多个分库数据表导出到第二数据库中的方法包括:
获取表任务信息;
请求分布式系统集群对应所述每个分库数据表形成一个第二映射任务,所述每个第二映射任务会将一个分库数据表从所述分布式文件系统中读出并写入本地系统临时文件;及
由所述每个第二映射任务调用一个第二数据库导入工具,将写入到本地系统临时文件中的分库数据表导入到第二数据库中。
7.如权利要求6所述的数据库数据迁移方法,其特征在于,所述迁移方法在将分布式文件系统中的数据导出到第二数据库中后还包括:
比较第一数据库与第二数据库中的数据,校验在迁移过程中数据是否有缺失以及数据是否不完整。
8.如权利要求7所述的数据库数据迁移方法,其特征在于,所述比较第一数据库与第二数据库中的数据的过程包括:
读取表任务信息;
根据表任务信息中的切分字段将需要校对的第一数据库中的源数据表分成第一数量的多个切片,并请求分布式系统集群对应该每个切片形成一个第三映射任务,所述每个第三映射任务读取源数据表中的一个切片,并根据所述表任务信息中的分库字段对该第三映射任务读取的每个切片进行分库得到第二数量的多个分库数据表;及
从第二数据库中读取与所述多个分库数据表对应的数据,并请求分布式系统集群根据每个分库数据表对应形成一个第三化简任务,所述第三化简任务通过合并和排序将第一数据库中的源数据表分库得到的多个分库数据表与从第二数据库中读取的与所述多个分库数据表对应的数据进行比较,校验数据是否有缺失及数据是否不完整。
9.如权利要求8所述的数据库数据迁移方法,其特征在于,所述第二数据库所有分库的数据使用与第一数据库数据迁移到第二数据库的过程中相同的分库算法的分布式数据库读取。
10.如权利要求1所述的数据库数据迁移方法,其特征在于,所述第一数据为Oracle数据库,所述第二数据库为Mysql数据库。
11.如权利要求1所述的数据库数据迁移方法,其特征在于,所述分布式系统集群为Hadoop,所述分布式文件系统为Hadoop的分布式文件系统。
12.一种数据库数据迁移系统,运行在分布式系统集群环境中,用于在第一数据库和第二数据库之间迁移数据,其特征在于,该迁移系统包括:
配置模块,用于配置数据库迁移任务的多个表任务对应的表任务信息,所述每个表任务指对第一数据库中一个源数据表进行数据迁移的迁移任务;
调度控制模块,能够读取所述表任务信息,并批量调度所述多个表任务;
数据导入模块,用于根据所调度的表任务从第一数据库读出该表任务中需迁移的源数据表的数据,并对该源数据表的数据进行分库得到多个分库数据表,再将该多个分库数据表导入到分布式文件系统中;及
数据导出模块,从所述分布式文件系统中读出所述多个分库数据表,再将该多个分库数据表导出到第二数据库中。
13.如权利要求12所述的数据库数据迁移系统,其特征在于,所述配置模块通过表配置文件来配置多个表任务对应的表任务信息。
14.如权利要求13所述的数据库数据迁移系统,其特征在于,对应每个表任务,所述表配置文件包括源配置和目标配置,所述源配置给出了第一数据库中需要迁移的源数据表的信息,所述目标配置给出了要把需要迁移的源数据表迁往的第二数据库中的目标数据表的信息。
15.如权利要求12所述的数据库数据迁移系统,其特征在于,所述数据导入模块将第一数据库中数据导入到分布式文件系统中的过程包括:
获取并加载所调度的表任务的表任务信息,所述表任务信息中包括该表任务对应需要迁移的源数据表的切分字段及分库字段信息;
根据所述表任务信息中的切分字段将需要迁移的源数据表分成第一数量的多个切片,并请求分布式系统集群对应每个切片形成一个第一映射任务,所述每个第一映射任务都与第一数据库连接并读取源数据表的一个切片;
进一步请求分布式系统集群在所述每个第一映射任务中,根据所述表任务信息中的分库字段对该第一映射任务读取的每个切片进行分库得到第二数量的分库数据表,进一步请求分布式系统集群根据所述分库后得到的每个分库数据表对应形成一个第一化简任务;及
由每个第一化简任务将分库后得到的每个分库数据表的数据写入到分布式文件系统中。
16.如权利要求15所述的数据库数据迁移系统,其特征在于,所述数据导出模块将分布式文件系统中的数据导出到第二数据库中的过程包括:
获取表任务信息;
请求分布式系统集群对应所述每个分库数据表形成一个第二映射任务,所述每个第二映射任务会将一个分库数据表从所述分布式文件系统中读出并写入本地系统临时文件;及
由所述每个第二映射任务调用一个第二数据库导入工具,将写入到本地系统临时文件中的分库数据表导入到第二数据库中。
17.如权利要求16所述的数据库数据迁移系统,其特征在于,所述迁移系统还包括:
数据校验模块,用于比较第一数据库与第二数据库中的数据,校验在迁移过程中数据是否有缺失以及数据是否不完整。
18.如权利要求17所述的数据库数据迁移系统,其特征在于,所述数据校验模块比较第一数据库与第二数据库中的数据的过程包括:
读取表任务信息;
根据表任务信息中的切分字段将需要校对的第一数据库中的源数据表分成第一数量的多个切片,并请求分布式系统集群对应该每个切片形成一个第三映射任务,所述每个第三映射任务读取源数据表中的一个切片,并根据所述表任务信息中的分库字段对该第三映射任务读取的每个切片进行分库得到第二数量的多个分库数据表;及
从第二数据库中读取与所述多个分库数据表对应的数据,并请求分布式系统集群根据每个分库数据表对应形成一个第三化简任务,所述第三化简任务通过合并和排序将第一数据库中的源数据表分库得到的多个分库数据表与从第二数据库中读取的与所述多个分库数据表对应的数据进行比较,校验数据是否有缺失及数据是否不完整。
19.如权利要求12所述的数据库数据迁移系统,其特征在于,所述第一数据为Oracle数据库,所述第二数据库为Mysql数据库。
20.如权利要求12所述的数据库数据迁移系统,其特征在于,所述分布式系统集群为Hadoop,所述分布式文件系统为Hadoop的分布式文件系统。
CN201210429450.3A 2012-10-31 2012-10-31 数据库数据迁移方法及系统 Active CN103793424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210429450.3A CN103793424B (zh) 2012-10-31 2012-10-31 数据库数据迁移方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210429450.3A CN103793424B (zh) 2012-10-31 2012-10-31 数据库数据迁移方法及系统

Publications (2)

Publication Number Publication Date
CN103793424A true CN103793424A (zh) 2014-05-14
CN103793424B CN103793424B (zh) 2018-04-20

Family

ID=50669105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210429450.3A Active CN103793424B (zh) 2012-10-31 2012-10-31 数据库数据迁移方法及系统

Country Status (1)

Country Link
CN (1) CN103793424B (zh)

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971066A (zh) * 2014-05-20 2014-08-06 浪潮电子信息产业股份有限公司 一种hdfs中大数据迁移完整性验证的方法
CN104281704A (zh) * 2014-10-22 2015-01-14 新华瑞德(北京)网络科技有限公司 数据库数据拷贝方法和装置
CN104504122A (zh) * 2014-12-29 2015-04-08 浪潮(北京)电子信息产业有限公司 一种数据库迁移数据的验证方法及系统
CN104820710A (zh) * 2015-05-19 2015-08-05 福建新大陆电脑股份有限公司 一种数据校验值生成方法及系统
CN105069033A (zh) * 2015-07-22 2015-11-18 北京京东尚科信息技术有限公司 一种创建数据库表模型的方法及装置
CN105354314A (zh) * 2015-11-10 2016-02-24 中国建设银行股份有限公司 数据迁移方法及装置
CN105389312A (zh) * 2014-09-04 2016-03-09 上海福网信息科技有限公司 大数据迁移方法及工具
CN105653525A (zh) * 2014-11-10 2016-06-08 金蝶软件(中国)有限公司 账套之间数据导入的方法和系统
CN105808746A (zh) * 2016-03-14 2016-07-27 中国科学院计算技术研究所 一种基于Hadoop体系的关系型大数据无缝接入方法及系统
CN105843955A (zh) * 2016-04-13 2016-08-10 曙光信息产业(北京)有限公司 一种数据迁移系统
WO2016141702A1 (zh) * 2015-03-10 2016-09-15 中兴通讯股份有限公司 分布式系统中元数据的迁移方法及装置
CN106326222A (zh) * 2015-06-16 2017-01-11 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN106933859A (zh) * 2015-12-30 2017-07-07 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN107122355A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122361A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122360A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107480225A (zh) * 2017-09-11 2017-12-15 爱普(福建)科技有限公司 实现控制站与第三方数据库数据共享的方法及计算机程序产品
CN107547606A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 数据处理方法、集群管理器、资源管理器、数据处理系统
CN107798007A (zh) * 2016-08-31 2018-03-13 南京中兴新软件有限责任公司 一种分布式数据库数据校验的方法、装置及相关装置
CN107958057A (zh) * 2017-11-29 2018-04-24 苏宁云商集团股份有限公司 一种用于异构数据库中数据迁移的代码生成方法及装置
CN107992559A (zh) * 2017-11-28 2018-05-04 江苏中威科技软件系统有限公司 多数据源的数据迁移方法
CN108073688A (zh) * 2017-11-20 2018-05-25 苏宁云商集团股份有限公司 一种数据迁移的方法及装置
WO2018099101A1 (zh) * 2016-12-02 2018-06-07 深圳市前海安测信息技术有限公司 基于移动终端的电子病历数据迁移系统及方法
CN108241632A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种面向数据库数据迁移的数据验证方法
CN108256034A (zh) * 2018-01-11 2018-07-06 北京潘达互娱科技有限公司 数据迁移方法及设备
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN108446315A (zh) * 2018-02-07 2018-08-24 中国平安人寿保险股份有限公司 大数据迁移方法、装置、设备及存储介质
CN108509328A (zh) * 2017-02-23 2018-09-07 腾讯科技(深圳)有限公司 数据库校验方法及装置
CN109471717A (zh) * 2018-10-11 2019-03-15 平安科技(深圳)有限公司 样本库拆分方法、装置、计算机设备及存储介质
CN109710675A (zh) * 2018-12-26 2019-05-03 深圳乐信软件技术有限公司 一种存储数据库切换方法、装置、服务器及存储介质
CN109766328A (zh) * 2018-12-27 2019-05-17 北京奇艺世纪科技有限公司 数据库迁移方法、系统、数据处理设备、计算机介质
CN110222027A (zh) * 2019-04-24 2019-09-10 福建天泉教育科技有限公司 数据迁移的数量校验方法及计算机可读存储介质
WO2019219010A1 (zh) * 2018-05-14 2019-11-21 杭州海康威视数字技术股份有限公司 数据迁移方法、装置及计算机可读存储介质
CN110851419A (zh) * 2018-08-03 2020-02-28 北京京东金融科技控股有限公司 一种数据迁移的方法和装置
CN111580862A (zh) * 2020-05-15 2020-08-25 中国邮政储蓄银行股份有限公司 数据移植的方法和装置
CN111857543A (zh) * 2019-04-26 2020-10-30 伊姆西Ip控股有限责任公司 用于数据迁移的方法、设备和计算机程序产品
CN112286905A (zh) * 2020-10-15 2021-01-29 北京沃东天骏信息技术有限公司 数据迁移方法及装置、存储介质、电子设备
CN112416901A (zh) * 2020-11-19 2021-02-26 中国建设银行股份有限公司 数据库迁移的方法及装置
CN112650736A (zh) * 2020-12-31 2021-04-13 中国农业银行股份有限公司 一种数据迁移方法及装置
CN112925743A (zh) * 2021-02-07 2021-06-08 中国工商银行股份有限公司 一种文件生成方法、装置及存储介质
CN113590594A (zh) * 2021-08-25 2021-11-02 中国银行股份有限公司 银行数据库迁移方法及装置
CN114625502A (zh) * 2022-03-03 2022-06-14 盐城金堤科技有限公司 一种投词任务处理方法、装置、存储介质和电子设备
CN116108476A (zh) * 2022-11-03 2023-05-12 广东加一信息技术有限公司 一种基于大数据的信息安全管理及监控系统
CN110851419B (zh) * 2018-08-03 2024-07-16 京东科技控股股份有限公司 一种数据迁移的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313560B2 (en) * 2002-12-09 2007-12-25 International Business Machines Corporation Data migration system and method
US20080256145A1 (en) * 2005-07-14 2008-10-16 Gregory Dalton Apparatus for Migrating Data Between Heterogeneous Data Storage Devices
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
CN102508929A (zh) * 2011-12-01 2012-06-20 浪潮(北京)电子信息产业有限公司 实现异构数据库数据迁移的系统、装置及方法
CN102542071A (zh) * 2012-01-17 2012-07-04 深圳市同洲视讯传媒有限公司 一种分布式处理数据的系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313560B2 (en) * 2002-12-09 2007-12-25 International Business Machines Corporation Data migration system and method
US20080256145A1 (en) * 2005-07-14 2008-10-16 Gregory Dalton Apparatus for Migrating Data Between Heterogeneous Data Storage Devices
CN102096685A (zh) * 2009-12-11 2011-06-15 阿里巴巴集团控股有限公司 分布式数据同步到数据仓库的方法及装置
CN102508929A (zh) * 2011-12-01 2012-06-20 浪潮(北京)电子信息产业有限公司 实现异构数据库数据迁移的系统、装置及方法
CN102542071A (zh) * 2012-01-17 2012-07-04 深圳市同洲视讯传媒有限公司 一种分布式处理数据的系统及方法

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971066A (zh) * 2014-05-20 2014-08-06 浪潮电子信息产业股份有限公司 一种hdfs中大数据迁移完整性验证的方法
CN105389312A (zh) * 2014-09-04 2016-03-09 上海福网信息科技有限公司 大数据迁移方法及工具
CN104281704A (zh) * 2014-10-22 2015-01-14 新华瑞德(北京)网络科技有限公司 数据库数据拷贝方法和装置
CN105653525B (zh) * 2014-11-10 2020-04-10 金蝶软件(中国)有限公司 账套之间数据导入的方法和系统
CN105653525A (zh) * 2014-11-10 2016-06-08 金蝶软件(中国)有限公司 账套之间数据导入的方法和系统
CN104504122A (zh) * 2014-12-29 2015-04-08 浪潮(北京)电子信息产业有限公司 一种数据库迁移数据的验证方法及系统
CN104504122B (zh) * 2014-12-29 2018-02-06 浪潮(北京)电子信息产业有限公司 一种数据库迁移数据的验证方法及系统
WO2016141702A1 (zh) * 2015-03-10 2016-09-15 中兴通讯股份有限公司 分布式系统中元数据的迁移方法及装置
CN106034080A (zh) * 2015-03-10 2016-10-19 中兴通讯股份有限公司 分布式系统中元数据的迁移方法及装置
CN104820710A (zh) * 2015-05-19 2015-08-05 福建新大陆电脑股份有限公司 一种数据校验值生成方法及系统
CN104820710B (zh) * 2015-05-19 2018-05-01 福建新大陆电脑股份有限公司 一种数据校验值生成方法及系统
CN106326222B (zh) * 2015-06-16 2019-08-02 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN106326222A (zh) * 2015-06-16 2017-01-11 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN105069033B (zh) * 2015-07-22 2018-06-22 北京京东尚科信息技术有限公司 一种创建数据库表模型的方法及装置
CN105069033A (zh) * 2015-07-22 2015-11-18 北京京东尚科信息技术有限公司 一种创建数据库表模型的方法及装置
CN105354314B (zh) * 2015-11-10 2020-03-03 中国建设银行股份有限公司 数据迁移方法及装置
CN105354314A (zh) * 2015-11-10 2016-02-24 中国建设银行股份有限公司 数据迁移方法及装置
CN106933859B (zh) * 2015-12-30 2020-10-20 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN106933859A (zh) * 2015-12-30 2017-07-07 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN107122360A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122361A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122355A (zh) * 2016-02-24 2017-09-01 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122360B (zh) * 2016-02-24 2021-06-15 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN107122355B (zh) * 2016-02-24 2021-07-06 阿里巴巴集团控股有限公司 数据迁移系统和方法
CN105808746A (zh) * 2016-03-14 2016-07-27 中国科学院计算技术研究所 一种基于Hadoop体系的关系型大数据无缝接入方法及系统
CN105843955A (zh) * 2016-04-13 2016-08-10 曙光信息产业(北京)有限公司 一种数据迁移系统
CN107547606A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 数据处理方法、集群管理器、资源管理器、数据处理系统
CN107547606B (zh) * 2016-06-29 2021-01-26 中兴通讯股份有限公司 数据处理方法、集群管理器、资源管理器、数据处理系统
CN107798007A (zh) * 2016-08-31 2018-03-13 南京中兴新软件有限责任公司 一种分布式数据库数据校验的方法、装置及相关装置
CN107798007B (zh) * 2016-08-31 2024-03-19 金篆信科有限责任公司 一种分布式数据库数据校验的方法、装置及相关装置
WO2018099101A1 (zh) * 2016-12-02 2018-06-07 深圳市前海安测信息技术有限公司 基于移动终端的电子病历数据迁移系统及方法
CN108241632B (zh) * 2016-12-23 2022-01-14 中科星图股份有限公司 一种面向数据库数据迁移的数据验证方法
CN108241632A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种面向数据库数据迁移的数据验证方法
CN108509328A (zh) * 2017-02-23 2018-09-07 腾讯科技(深圳)有限公司 数据库校验方法及装置
CN108509328B (zh) * 2017-02-23 2021-03-19 腾讯科技(深圳)有限公司 数据库校验方法及装置
CN107480225A (zh) * 2017-09-11 2017-12-15 爱普(福建)科技有限公司 实现控制站与第三方数据库数据共享的方法及计算机程序产品
CN108073688B (zh) * 2017-11-20 2022-06-07 苏宁易购集团股份有限公司 一种数据迁移的方法及装置
CN108073688A (zh) * 2017-11-20 2018-05-25 苏宁云商集团股份有限公司 一种数据迁移的方法及装置
CN107992559A (zh) * 2017-11-28 2018-05-04 江苏中威科技软件系统有限公司 多数据源的数据迁移方法
CN107958057B (zh) * 2017-11-29 2022-04-05 苏宁易购集团股份有限公司 一种用于异构数据库中数据迁移的代码生成方法及装置
CN107958057A (zh) * 2017-11-29 2018-04-24 苏宁云商集团股份有限公司 一种用于异构数据库中数据迁移的代码生成方法及装置
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN108256034A (zh) * 2018-01-11 2018-07-06 北京潘达互娱科技有限公司 数据迁移方法及设备
CN108446315A (zh) * 2018-02-07 2018-08-24 中国平安人寿保险股份有限公司 大数据迁移方法、装置、设备及存储介质
WO2019219010A1 (zh) * 2018-05-14 2019-11-21 杭州海康威视数字技术股份有限公司 数据迁移方法、装置及计算机可读存储介质
CN110851419B (zh) * 2018-08-03 2024-07-16 京东科技控股股份有限公司 一种数据迁移的方法和装置
CN110851419A (zh) * 2018-08-03 2020-02-28 北京京东金融科技控股有限公司 一种数据迁移的方法和装置
CN109471717A (zh) * 2018-10-11 2019-03-15 平安科技(深圳)有限公司 样本库拆分方法、装置、计算机设备及存储介质
CN109710675A (zh) * 2018-12-26 2019-05-03 深圳乐信软件技术有限公司 一种存储数据库切换方法、装置、服务器及存储介质
CN109766328A (zh) * 2018-12-27 2019-05-17 北京奇艺世纪科技有限公司 数据库迁移方法、系统、数据处理设备、计算机介质
CN110222027A (zh) * 2019-04-24 2019-09-10 福建天泉教育科技有限公司 数据迁移的数量校验方法及计算机可读存储介质
CN111857543A (zh) * 2019-04-26 2020-10-30 伊姆西Ip控股有限责任公司 用于数据迁移的方法、设备和计算机程序产品
CN111580862A (zh) * 2020-05-15 2020-08-25 中国邮政储蓄银行股份有限公司 数据移植的方法和装置
CN112286905A (zh) * 2020-10-15 2021-01-29 北京沃东天骏信息技术有限公司 数据迁移方法及装置、存储介质、电子设备
CN112416901A (zh) * 2020-11-19 2021-02-26 中国建设银行股份有限公司 数据库迁移的方法及装置
CN112650736A (zh) * 2020-12-31 2021-04-13 中国农业银行股份有限公司 一种数据迁移方法及装置
CN112925743A (zh) * 2021-02-07 2021-06-08 中国工商银行股份有限公司 一种文件生成方法、装置及存储介质
CN113590594A (zh) * 2021-08-25 2021-11-02 中国银行股份有限公司 银行数据库迁移方法及装置
CN114625502A (zh) * 2022-03-03 2022-06-14 盐城金堤科技有限公司 一种投词任务处理方法、装置、存储介质和电子设备
CN116108476A (zh) * 2022-11-03 2023-05-12 广东加一信息技术有限公司 一种基于大数据的信息安全管理及监控系统
CN116108476B (zh) * 2022-11-03 2023-08-25 深圳市和合信诺大数据科技有限公司 一种基于大数据的信息安全管理及监控系统

Also Published As

Publication number Publication date
CN103793424B (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
CN103793424A (zh) 数据库数据迁移方法及系统
US11514046B2 (en) Tiering with pluggable storage system for parallel query engines
CN106980669B (zh) 一种数据的存储、获取方法及装置
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
US20120209943A1 (en) Apparatus and method for controlling distributed memory cluster
US9715536B2 (en) Virtualization method for large-scale distributed heterogeneous data
US9489411B2 (en) High performance index creation
CN110737541B (zh) 分布式存储系统中分发数据的方法和系统
CN110069579B (zh) 电子围栏分块方法和装置
CN102968498A (zh) 数据处理方法及装置
US11075991B2 (en) Partitioning data according to relative differences indicated by a cover tree
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN105528381A (zh) 数据库数据迁移方法及系统
CN104111936A (zh) 数据查询方法和系统
CN107704597A (zh) 关系型数据库至Hive的ETL脚本创建方法
CN104111994A (zh) 一种基于混合数据源的标签数据筛选方法及装置
US10102267B2 (en) Method and apparatus for access control
CN105843955A (zh) 一种数据迁移系统
Merceedi et al. A comprehensive survey for hadoop distributed file system
CN112597126A (zh) 一种数据迁移方法和装置
CN113177090A (zh) 数据处理方法及装置
US20180239776A1 (en) Pluggable storage system for parallel query engines across non-native file systems
CN106202307A (zh) 一种批量日志保存方法及装置
CN105630778A (zh) 数据库数据迁移方法及系统
CN111414422B (zh) 一种数据分布方法、装置、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant