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

数据迁移方法、装置、系统、电子设备及计算机可读介质

文献发布时间:2023-06-19 12:22:51


数据迁移方法、装置、系统、电子设备及计算机可读介质

技术领域

本申请实施例涉及数据库领域,尤其涉及一种数据迁移方法、装置、系统、电子设备及计算机可读介质。

背景技术

互联网的蓬勃发展对数据库性能和存储的要求也越来越高,虽然各种非关系型数据库不断出新,解决了许多特定场景下的数据存储的查询问题,但是关系型数据库因其性能优秀,功能全面,稳定,易用等方面的优势,依然是数据库行业的主流。但随着数据量的爆炸性增长,传统的单机关系型数据库已经难以满足存储和性能方面的需求,各种分布式关系型数据库应运而生。

在实际的应用场景中,用户通常已经在使用单机关系型数据库,要转向分布式关系型数据库,需要对用户数据进行迁移。现有的开源或收费的数据迁移工具都是针对通用的单机关系型数据库的数据迁移场景,并未专门对用户数据从单机关系型数据库迁移到分布式关系型数据库的场景做特殊处理。具体地,从一类单机关系型数据库向另一类单机关系型数据库的数据迁移,如将用户数据从Oracle迁移至Mysql。从一个单机关系型数据库实例向另一个单机关系型数据库实例的数据迁移,如将用户数据从一个Mysql实例迁移至另一个Mysql实例。由于未专门对用户数据从单机关系型数据库迁移到分布式关系型数据库的场景做特殊处理,用户需要自己预先选择拆分方案,自行建库建表。然而,对于用户而言,使用分布式关系型数据库的门槛过高。使用分布式关系型数据库的基础是对数据进行拆分,主要包括分库分表。对于一张待拆分的数据表,用户通常需要三个步骤对数据表进行拆分:选取拆分键,拟定拆分规则,实现拆分。要完成这些步骤,用户需要对数据库原理和分布式数据库技术有相当的了解,从而导致用户数据从单机关系型数据库迁移到分布式关系型数据库的速度非常慢。

由此可见,如何快速地将用户数据从关系型数据库迁移到分布式关系型数据库成为当前亟待解决的技术问题。

发明内容

本申请实施例的目的在于提出一种数据迁移方法、装置、系统、电子设备及计算机可读介质,用于解决现有技术中存在的如何快速地将用户数据从单机关系型数据库迁移到分布式关系型数据库的技术问题。

根据本申请实施例的第一方面,提供了一种数据迁移方法。所述方法包括:基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

根据本申请实施例的第二方面,提供了一种数据迁移方法。所述方法包括:接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作;基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

根据本申请实施例的第三方面,提供了一种数据迁移系统。所述系统包括:客户端和与所述客户端通信连接的数据迁移工具,所述客户端,用于接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求;所述数据迁移工具,用于接收所述客户端发送的所述数据迁移请求,并基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

根据本申请实施例的第四方面,提供了一种数据迁移装置。所述装置包括:确定模块,用于基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;建立模块,用于基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;迁移模块,用于将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

根据本申请实施例的第五方面,提供了一种数据迁移装置。所述装置包括:第三接收模块,用于接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作;发送模块,用于基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

根据本申请实施例的第六方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面或者第二方面所述的数据迁移方法。

根据本申请实施例的第七方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面或者第二方面所述的数据迁移方法。

通过本申请实施例提供的数据迁移方案,基于源关系型数据库中待迁移的用户数据的特征数据,确定用户数据从源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据,并基于拆分建议数据,在目标分布式关系型数据库中建立用于存储用户数据的目标库,再将用户数据从源关系型数据库迁移至目标分布式关系型数据库中的目标库,与现有的其它方式相比,基于源关系型数据库中待迁移的用户数据的特征数据,确定用户数据从源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据,并基于拆分建议数据,在目标分布式关系型数据库中建立用于存储用户数据的目标库,可以隐藏用户大量的重复工作,大大降低了用户对分布式关系型数据库的使用门槛,从而能够快速地将用户数据从源关系型数据库迁移到目标分布式关系型数据库,实现快速一体化的从源关系型数据库到目标分布式关系型数据库的数据迁移的体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1A为根据本申请实施例提供的数据库服务器的示意图;

图1B为本申请实施例一中数据迁移方法的步骤流程图;

图1C为根据本申请实施例一提供的拆分建议数据的确定过程的示意图;

图2为本申请实施例二中数据迁移方法的步骤流程图;

图3为本申请实施例三中数据迁移方法的步骤流程图;

图4为本申请实施例四中数据迁移系统的示意图;

图5为本申请实施例五中数据迁移装置的结构示意图;

图6为本申请实施例六中数据迁移装置的结构示意图;

图7为本申请实施例七中数据迁移装置的结构示意图;

图8为本申请实施例八中电子设备的结构示意图;

图9为本申请实施例九中电子设备的硬件结构。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

在详细介绍本申请实施例提供的数据迁移方法之前,先详细描述本申请实施例提供的数据迁移方法所涉及的技术术语。

服务器可以理解为一台具体的实体机器,上面可部署多个数据库实例。如图1A所示,数据库服务器上部署有两个数据库实例,即数据库实例Port1和数据库实例Port2。数据库实例上可以部署有多个数据库。如图1A所示,数据库实例Port1上部署有数据库db0、数据库db1、数据库db2和数据库db3。数据库实例Port2上部署有数据库db0、数据库db1、数据库db2和数据库db3。数据库是数据库表的逻辑组织形式,一个数据库中可以包含多张数据表。例如,数据库实例Port1上部署的数据库db1包含数据表table0,table1,table2,table3,table4,table5,table6和table7。数据表可以理解为数据存储单元,索引结构是B+Tree,一般单表容量不宜过大,单表容量过大会造成B+Tree的层数较高,其上的数据读写会相对变慢。

对于服务程序而言,连接管理的对象是数据库(包含一个或多个数据表);程序上说的分库分表就是指数据库和数据表。服务程序对数据的拆分只需感知到数据库和数据表,至于位于多少个数据库实例,部署在多少台机器上服务程序并不关心。即数据库和数据表就是通常所说的逻辑库的范畴。

对于实际部署而言,关心的是部署多少机器,每台机器部署多少个数据库实例,这也是实际消耗的资源成本。即机器和数据库实例就是通常所说的物理库的范畴。

对于相对增长稳定的业务数据,一般直接按照遇到的瓶颈问题进行拆分,将业务数据分散到一定的数据表、数据库实例或机器上,这时,逻辑库和物理库基本是一致的,不需要也不能进一步拆分。

对于相对增长较快(或预期增长较快)的业务数据,一般在服务程序中会按未来一段时间可能的增长量来评估瓶颈问题进行拆分。而在实际部署中,并不会真的部署那么多的实体机器和数据库实例,从而逻辑库与物理库会有一定的映射关系(逻辑库大于物理库)。当业务数据增长到一定程度,可以在程序逻辑不变的情况下,通过拆分物理库进行扩容,直到逻辑库和物理库达到一致,即达到服务程序最大的承受瓶颈。

参照图1B,示出了本申请实施例一中数据迁移方法的步骤流程图。

本实施例从数据迁移工具的角度,对本实施例提供的数据迁移方法进行说明。具体地,本实施例提供的数据迁移方法包括以下步骤:

在步骤S101中,基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据。

在本申请实施例中,关系型数据库可理解为采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。所述源关系型数据库可为源单机关系型数据库、线下数据中心的源关系型数据库,及源分布式关系型数据库等。其中,单机数据库可理解为只能运行在单机上,不提供网络功能的数据库。所述源单机关系型数据库可理解为运行于单机上的源关系型数据库。所述待迁移的用户数据可为用户的商品订单数据、商品交易数据等。所述分布式关系型数据库可理解为提供的基于中间件的分布式关系型数据库系统服务。所述分布式关系型数据库可以基于普通服务器的横向扩展的方式,构建支持海量数据存储和访问的数据库系统,从而实现无限扩容和弹性扩展。相比单机关系型数据库,分布式关系型数据库提供了更高规格的存储查询率,满足用户持续增长的海量数据存储需求以及持续增长的业务请求压力。所述目标分布式关系型数据库可理解为提供的基于中间件的目标分布式关系型数据库系统服务。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在本申请实施例中,所述待迁移的用户数据的特征数据包括以下中的至少一者:所述源关系型数据库中的所述用户数据的数据总量、所述源关系型数据库中用于存储所述用户数据的数据表的数据量、历史时间段内针对所述源关系型数据库中的所述用户数据的访问特征数据。所述拆分建议数据包括以下中的至少一者:对所述源关系型数据库进行拆分所获得的分库的建议数量、对所述源关系型数据库中的数据表进行拆分所获得的分表的建议数量、针对所述数据表建议的拆分键。其中,拆分键可理解为数据表的拆分字段,例如,用户名拆分字段,用户标识字段等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据之前,所述方法还包括:接收用户在客户端输入的所述源关系型数据库的账户和密码;基于所述源关系型数据库的账户和密码,从所述源关系型数据库中获取所述用户数据的数据总量和所述数据表的数据量。其中,所述账户可为所述源关系型数据库的只读账户,所述密码可为所述源关系型数据库的只读账户的密码。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据之前,所述方法还包括:接收用户在客户端输入的针对所述源关系型数据库的日志文件的访问权限数据;基于所述访问权限数据,从所述日志文件中提取所述历史时间段内针对所述用户数据的访问特征数据,其中,所述日志文件用于记录对所述源关系型数据库中的所述用户数据进行更新的SQL语句。其中,所述访问权限数据可理解为授权与数据迁移工具访问源关系型数据库的日志文件的数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在从所述日志文件中提取所述历史时间段内针对所述用户数据的访问特征数据时,从所述日志文件中提取所述历史时间段内对所述用户数据进行更新的SQL语句;对所述历史时间段内对所述用户数据进行更新的SQL语句进行特征提取,以获得所述历史时间段内针对所述用户数据的访问特征数据。所述历史时间段内针对所述用户数据的访问特征数据包括以下中的至少一者:所述历史时间段内针对所述用户数据进行更新的所述SQL语句的数量、所述历史时间段内针对所述用户数据进行更新的所述SQL语句的类型、所述历史时间段内针对所述用户数据进行更新的所述SQL语句中的同一字段名出现的次数。其中,所述日志文件可为二进制格式的日志文件,用于记录用户对关系型数据库中的用户数据及你行更新的SQL语句,例如,更改数据库表和更改内容的SQL语句都会记录到二进制格式的日志文件中,但是对库表等内容的查询不会记录。二进制格式的日志文件主要作用是用于关系型数据库的主从复制及数据的增量恢复。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据时,基于所述源关系型数据库中的所述用户数据的数据总量和所述用户数据在未来时间的增势数据,确定对所述源关系型数据库进行拆分所获得的分库的建议数量;基于所述源关系型数据库中用于存储所述用户数据的数据表的数据量,确定对所述数据表进行拆分所获得的分表的建议数量;基于历史时间段内针对所述源关系型数据库中的所述用户数据的访问特征数据,确定针对所述数据表建议的拆分键。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于所述源关系型数据库中的所述用户数据的数据总量和所述用户数据在未来时间的增势数据,确定对所述源关系型数据库进行拆分所获得的分库的建议数量时,对所述源关系型数据库中的所述用户数据的数据总量和所述用户数据在未来时间的增势数据进行相加,以获得所述源关系型数据库中的所述用户数据在未来时间的数据总量;将所述源关系型数据库中的所述用户数据在未来时间的数据总量除以所述分库的数据存储容量,获得对所述源关系型数据库进行拆分所获得的分库的建议数量。其中,所述用户数据在未来时间的增势数据可为用户预测用户数据在未来时间增长的数据量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于所述源关系型数据库中用于存储所述用户数据的数据表的数据量,确定对所述数据表进行拆分所获得的分表的建议数量时,将所述源关系型数据库中用于存储所述用户数据的数据表的数据量除以所述分表的数据存储容量,获得对所述数据表进行拆分所获得的分表的建议数量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于历史时间段内针对所述源关系型数据库中的所述用户数据的访问特征数据,确定针对所述数据表建议的拆分键时,基于所述历史时间段内针对所述数据表中存储的用户数据进行更新的同一类型SQL语句中的同一字段名出现的次数,确定针对所述数据表建议的拆分键。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在确定针对所述数据表建议的拆分键时,如果所述SQL语句的类型为选择(select)类型,则所述历史时间段内针对所述数据表中存储的用户数据进行更新的该类型SQL语句中的同一字段名出现的次数越多,则该字段名作为针对所述数据表建议的拆分键的可能性越大。如果所述SQL语句的类型为更新(update)类型,则所述历史时间段内针对所述数据表中存储的用户数据进行更新的该类型SQL语句中的同一字段名出现的次数越少,则该字段名作为针对所述数据表建议的拆分键的可能性越大。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,如图1C所示,对源关系型数据库中的用户数据的数据总量和用户数据在未来时间的增势数据进行相加,以获得源关系型数据库中的用户数据在未来时间的数据总量,并将源关系型数据库中的用户数据在未来时间的数据总量除以分库的数据存储容量,获得对源关系型数据库进行拆分所获得的分库的建议数量。然后,将源关系型数据库中用于存储用户数据的数据表的数据量除以分表的数据存储容量,获得对数据表进行拆分所获得的分表的建议数量。最后,基于历史时间段内针对数据表中存储的用户数据进行更新的同一类型SQL语句中的同一字段名出现的次数,确定针对数据表建议的拆分键。在获得分库的建议数量、分表的建议数量,及针对数据表建议的拆分键之后,便可获得最终的拆分建议数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S102中,基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库。

在本申请实施例中,所述目标库包括目标逻辑库和与所述目标逻辑库具有映射关系的目标物理库。通常所说的逻辑库的范畴指的是数据库和数据表。通常所说的物理库的范畴指的是机器和数据库实例。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库时,基于对所述源关系型数据库进行拆分所获得的分库的建议数量、对所述源关系型数据库中的数据表进行拆分所获得的分表的建议数量,及针对所述数据表建议的拆分键,在所述目标分布式关系型数据库中建立用于存储所述用户数据的所述目标逻辑库和所述目标物理库。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S103中,将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

在一些可选实施例中,在将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库之后,所述方法还包括:从所述源关系型数据库的日志文件中,获取所述用户数据的迁移时间段内用于对所述用户数据进行更新的SQL语句,其中,所述日志文件用于记录对所述用户数据进行更新的SQL语句;针对所述目标分布式关系型数据库中的所述目标库,执行所述用户数据的迁移时间段内用于对所述用户数据进行更新的SQL语句。其中,所述日志文件可为二进制格式的日志文件,所述迁移时间段可理解为从用户数据迁移开始到用户数据迁移结束的时间段。籍此,能够实现源关系型数据库中的用户全量数据和用户增量数据的迁移,从而能够保证用户数据从源关系型数据库迁移至目标分布式关系型数据库的无缝对接。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的数据迁移方法,基于源关系型数据库中待迁移的用户数据的特征数据,确定用户数据从源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据,并基于拆分建议数据,在目标分布式关系型数据库中建立用于存储用户数据的目标库,再将用户数据从源关系型数据库迁移至目标分布式关系型数据库中的目标库,与现有的其它方式相比,基于源关系型数据库中待迁移的用户数据的特征数据,确定用户数据从源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据,并基于拆分建议数据,在目标分布式关系型数据库中建立用于存储用户数据的目标库,可以隐藏用户大量的重复工作,大大降低了用户对分布式关系型数据库的使用门槛,从而能够快速地将用户数据从源关系型数据库迁移到目标分布式关系型数据库,实现快速一体化的从源关系型数据库到目标分布式关系型数据库的数据迁移的体验。

本实施例的数据迁移方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。

参照图2,示出了本申请实施例二中数据迁移方法的步骤流程图。

本实施例从客户端的角度,对本实施例提供的数据迁移方法进行说明。具体地,本实施例提供的数据迁移方法包括以下步骤:

在步骤S201中,接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作。

在一些可选实施例中,在接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作时,接收针对客户端的页面中展示的数据迁移控件的操作,所述操作用于指示将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。其中,所述针对客户端的页面中展示的数据迁移控件的操作可为针对客户端的页面中展示的数据迁移控件的点击操作、长按操作,或者拖拽操作。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述接收针对客户端的页面中展示的数据迁移控件的操作之前,所述方法还包括:接收针对所述客户端的页面中展示的所述用户数据的迁移目的地的选择操作;基于所述选择操作,刷新所述客户端的页面,以使所述客户端的页面展示所述数据迁移控件。籍此,可通过针对客户端的页面中展示的用户数据的迁移目的地的选择操作,对源关系型数据库中的用户数据进行迁移。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述用户数据的迁移目的地可为目标分布式关系型数据库或者目标公有云。当用户在客户端的页面中选择的用户数据的迁移目的地为目标分布式关系型数据库时,刷新客户端的页面,以使客户端的页面展示所述数据迁移控件。所述数据迁移控件用于在被操作的情况下,指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S202中,基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

在一些可选实施例中,所述基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求之后,所述方法还包括:接收所述数据迁移工具基于所述数据迁移请求返回的携带有数据迁移完毕消息的数据迁移响应;基于所述数据迁移响应中携带的所述数据迁移完毕消息,将所述源关系型数据库切换至所述目标分布式关系型数据库。籍此,通过数据迁移响应中携带的数据迁移完毕消息,能够将源关系型数据库切换至目标分布式关系型数据库。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的数据迁移方法,接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,使得数据迁移工具基于数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,与现有的其它方式相比,接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,使得数据迁移工具基于所述数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,能够自动地将源关系型数据库中的用户数据迁移至目标分布式关系型数据库。

本实施例的数据迁移方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。

参照图3,示出了本申请实施例三中数据迁移方法的步骤流程图。

本实施例从客户端与数据迁移工具交互的角度,对本实施例提供的数据迁移方法进行说明。具体地,本实施例提供的数据迁移方法包括以下步骤:

在步骤S301中,接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作。

由于该步骤S301的具体实施方式与上述步骤S201的具体实施方式类似,在此不再赘述。

在步骤S302中,基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求。

由于该步骤S302的具体实施方式与上述步骤S202的具体实施方式类似,在此不再赘述。

在步骤S303中,接收客户端发送的所述数据迁移请求。

在本申请实施例中,数据迁移工具接收客户端发送的所述数据迁移请求。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S304中,基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

在本申请实施例中,所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库时,基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的数据迁移方法,客户端接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,数据迁移工具接收客户端发送的数据迁移请求,并基于数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,与现有的其它方式相比,客户端接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,数据迁移工具接收客户端发送的数据迁移请求,并基于数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,能够自动地将源关系型数据库中的用户数据迁移至目标分布式关系型数据库。

本实施例的数据迁移方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。

参照图4,示出了本申请实施例四中数据迁移系统的示意图。

本实施例提供的数据迁移系统包括:客户端和与所述客户端通信连接的数据迁移工具,所述客户端,用于接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求;所述数据迁移工具,用于接收所述客户端发送的所述数据迁移请求,并基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

可选地,所述数据迁移工具,具体用于基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

参照图4,为实现本申请实施例提供的数据迁移方法的一种数据迁移系统的结构示意图,该系统可以包括数据迁移工具以及终端设备A中的客户端,应该理解,图4所呈现的数据迁移工具与终端设备A中的客户端仅是示例性说明,并不会对两者的实现形式做限定。

在实际应用中,数据迁移工具与终端设备A之间可以是有线或无线网络连接,具体可以通过GSM、GPRS、LTE等移动网络实现通信连接,或者是通过蓝牙、WIFI、红外线等方式进行通信连接,本申请实施例对数据迁移工具与终端设备A之间的具体通信连接方式不做限定。

数据迁移工具可以是设置于用户提供服务的服务设备中的数据迁移工具,具体可以是独立的应用服务设备,本申请实施例对该数据迁移工具的结构及其实现形式不作限定。

终端设备A可以是面向用户,并能够与用户进行交互的终端,如手机、笔记本、电脑、iPad、智能音响等,还可以各种自助终端,如医院、银行、车站等场所中的自助服务机,此外,终端设备A还可以是支持交互的智能机器,如聊天机器人、扫地机器人、点餐服务机器人等。本申请实施例对终端设备的产品类型及其物理形态不做限定,本申请实施例需要其具有交互功能,可以通过安装如数据库类等交互类应用程序实现。

在进行数据迁移时,终端设备A中的客户端可通过网络向数据迁移工具发送数据迁移请求。数据迁移工具接收终端设备A中的客户端发送的数据迁移请求,并基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。由此可见,本申请实施例提供的数据迁移方法可以由数据迁移工具执行,具体实现过程可以参照上述方法实施例一的描述。

通过本申请实施例提供的数据迁移系统,客户端接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,数据迁移工具接收客户端发送的数据迁移请求,并基于数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,与现有的其它方式相比,客户端接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作,并基于操作,向数据迁移工具发送用于请求将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的数据迁移请求,数据迁移工具接收客户端发送的数据迁移请求,并基于数据迁移请求,将源关系型数据库中的用户数据迁移至目标分布式关系型数据库,能够自动地将源关系型数据库中的用户数据迁移至目标分布式关系型数据库。

本实施例的数据迁移装置用于实现前述多个方法实施例中相应的数据迁移方法,在此不再赘述。

参照图5,示出了本申请实施例五中数据迁移装置的结构示意图。

本实施例提供的数据迁移装置包括:确定模块501,用于基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;建立模块502,用于基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;迁移模块503,用于将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

本实施例的数据迁移装置用于实现前述多个方法实施例中相应的数据迁移方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图6,示出了本申请实施例六中数据迁移装置的结构示意图。

本实施例提供的数据迁移装置包括:确定模块605,用于基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;建立模块606,用于基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;迁移模块607,用于将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。

可选地,所述待迁移的用户数据的特征数据包括以下中的至少一者:所述源关系型数据库中的所述用户数据的数据总量、所述源关系型数据库中用于存储所述用户数据的数据表的数据量、历史时间段内针对所述源关系型数据库中的所述用户数据的访问特征数据。

可选地,所述确定模块605之前,所述装置还包括:第一接收模块601,用于接收用户在客户端输入的所述源关系型数据库的账户和密码;第一获取模块602,用于基于所述源关系型数据库的账户和密码,从所述源关系型数据库中获取所述用户数据的数据总量和所述数据表的数据量。

可选地,所述确定模块605之前,所述装置还包括:第二接收模块603,用于接收用户在客户端输入的针对所述源关系型数据库的日志文件的访问权限数据;提取模块604,用于基于所述访问权限数据,从所述日志文件中提取所述历史时间段内针对所述用户数据的访问特征数据,其中,所述日志文件用于记录对所述源关系型数据库中的所述用户数据进行更新的SQL语句。

可选地,所述历史时间段内针对所述用户数据的访问特征数据包括以下中的至少一者:所述历史时间段内针对所述用户数据进行更新的所述SQL语句的数量、所述历史时间段内针对所述用户数据进行更新的所述SQL语句的类型、所述历史时间段内针对所述用户数据进行更新的所述SQL语句中的同一字段名出现的次数。

可选地,所述拆分建议数据包括以下中的至少一者:对所述源关系型数据库进行拆分所获得的分库的建议数量、对所述源关系型数据库中的数据表进行拆分所获得的分表的建议数量、针对所述数据表建议的拆分键。

可选地,所述确定模块605,包括:第一确定子模块6051,用于基于所述源关系型数据库中的所述用户数据的数据总量和所述用户数据在未来时间的增势数据,确定对所述源关系型数据库进行拆分所获得的分库的建议数量;第二确定子模块6052,用于基于所述源关系型数据库中用于存储所述用户数据的数据表的数据量,确定对所述数据表进行拆分所获得的分表的建议数量;第三确定子模块6053,用于基于历史时间段内针对所述源关系型数据库中的所述用户数据的访问特征数据,确定针对所述数据表建议的拆分键。

可选地,所述第三确定子模块6053,具体用于:基于所述历史时间段内针对所述数据表中存储的用户数据进行更新的同一类型SQL语句中的同一字段名出现的次数,确定针对所述数据表建议的拆分键。

可选地,所述目标库包括目标逻辑库和与所述目标逻辑库具有映射关系的目标物理库,所述建立模块606,具体用于:基于对所述源关系型数据库进行拆分所获得的分库的建议数量、对所述源关系型数据库中的数据表进行拆分所获得的分表的建议数量,及针对所述数据表建议的拆分键,在所述目标分布式关系型数据库中建立用于存储所述用户数据的所述目标逻辑库和所述目标物理库。

可选地,所述迁移模块607之后,所述装置还包括:第二获取模块608,用于从所述源关系型数据库的日志文件中,获取所述用户数据的迁移时间段内用于对所述用户数据进行更新的SQL语句,其中,所述日志文件用于记录对所述用户数据进行更新的SQL语句;执行模块609,用于针对所述目标分布式关系型数据库中的所述目标库,执行所述用户数据的迁移时间段内用于对所述用户数据进行更新的SQL语句。

本实施例的数据迁移装置用于实现前述多个方法实施例中相应的数据迁移方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图7,示出了本申请实施例七中数据迁移装置的结构示意图。

本实施例提供的数据迁移装置包括:第三接收模块703,用于接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作;发送模块704,用于基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

可选地,所述第三接收模块703,包括:第一接收子模块7031,用于接收针对客户端的页面中展示的数据迁移控件的操作,所述操作用于指示将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

可选地,所述第一接收子模块7031之前,所述装置还包括:第二接收子模块701,用于接收针对所述客户端的页面中展示的所述用户数据的迁移目的地的选择操作;刷新子模块702,用于基于所述选择操作,刷新所述客户端的页面,以使所述客户端的页面展示所述数据迁移控件。

可选地,所述发送模块704之后,所述装置还包括:第四接收模块705,用于接收所述数据迁移工具基于所述数据迁移请求返回的携带有数据迁移完毕消息的数据迁移响应;切换模块706,用于基于所述数据迁移响应中携带的所述数据迁移完毕消息,将所述源关系型数据库切换至所述目标分布式关系型数据库。

本实施例的数据迁移装置用于实现前述多个方法实施例中相应的数据迁移方法,并具有相应的方法实施例的有益效果,在此不再赘述。

图8为本申请实施例八中电子设备的结构示意图;该电子设备可以包括:

一个或多个处理器801;

计算机可读介质802,可以配置为存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一、实施例二或实施例三所述的数据迁移方法。

图9为本申请实施例九中电子设备的硬件结构;如图9所示,该电子设备的硬件结构可以包括:处理器901,通信接口902,计算机可读介质903和通信总线904;

其中处理器901、通信接口902、计算机可读介质903通过通信总线904完成相互间的通信;

可选地,通信接口902可以为通信模块的接口,如GSM模块的接口;

其中,处理器901具体可以配置为:基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。此外,处理器901还可以配置为:接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作;基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

处理器901可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

计算机可读介质903可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、建立模块和迁移模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据的模块”。

作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一、实施例二或者实施例三所描述的数据迁移方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:基于源关系型数据库中待迁移的用户数据的特征数据,确定所述用户数据从所述源关系型数据库迁移至目标分布式关系型数据库的拆分建议数据;基于所述拆分建议数据,在所述目标分布式关系型数据库中建立用于存储所述用户数据的目标库;将所述用户数据从所述源关系型数据库迁移至所述目标分布式关系型数据库中的所述目标库。此外,还使得该装置:接收用于指示将源关系型数据库中的用户数据迁移至目标分布式关系型数据库的操作;基于所述操作,向数据迁移工具发送用于请求将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库的数据迁移请求,使得所述数据迁移工具基于所述数据迁移请求,将所述源关系型数据库中的用户数据迁移至所述目标分布式关系型数据库。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 数据迁移方法、装置、系统、电子设备及计算机可读介质
  • 数据迁移方法、装置、电子设备及计算机可读介质
技术分类

06120113270270