CN114090539A - 数据迁移方法、装置、计算机系统及存储介质 - Google Patents

数据迁移方法、装置、计算机系统及存储介质 Download PDF

Info

Publication number
CN114090539A
CN114090539A CN202110262392.9A CN202110262392A CN114090539A CN 114090539 A CN114090539 A CN 114090539A CN 202110262392 A CN202110262392 A CN 202110262392A CN 114090539 A CN114090539 A CN 114090539A
Authority
CN
China
Prior art keywords
data
migrated
target database
present disclosure
database
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.)
Pending
Application number
CN202110262392.9A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110262392.9A priority Critical patent/CN114090539A/zh
Publication of CN114090539A publication Critical patent/CN114090539A/zh
Pending legal-status Critical Current

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
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据迁移方法、装置、计算机系统及存储介质,包括:获取源数据库中的待迁移表,以及,待迁移表对应的待迁移数据,对待迁移数据进行分片,并查找与待迁移数据所在分片对应的目标数据库,将待迁移数据迁入所述目标数据库。可以实现将分布式数据库中的待迁移数据迁入至实时分析型数据库中。

Description

数据迁移方法、装置、计算机系统及存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据迁移方法、装置、计算机系统及存储介质。
背景技术
实时分析型数据库本身承担的更多的是查询的功能,因此需要将业务数据经过数据加工后存储在分布式数据库中,然后再将加工后的数据传入实时分析型数据库中。
因此有必要提供一种数据迁移方法,将在分布式数据库中的数据转移至实时分析型数据库中。
发明内容
有鉴于此,本公开提供了一种数据迁移方法、装置、计算机系统及存储介质。
本公开的一个方面提供了一种数据迁移方法,包括:
获取源数据库中的待迁移表,以及,所述待迁移表对应的待迁移数据;
对所述待迁移数据进行分片,并查找与所述待迁移数据所在分片对应的目标数据库;
将所述待迁移数据迁入所述目标数据库。
在本公开其中一个实施例中,所述将所述待迁移数据迁入所述目标数据库包括:
获取源数据库中的待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量;
根据所述待迁移表的数量、所述所有分片的数量、所述并发分片的数量、目标数据库的预设线程的数量,计算目标数据库的实际线程的数量;
基于所述目标数据库的实际线程的数量,将所述待迁移数据迁入所述目标数据库。
其中,
Figure BDA0002970157020000021
n为目标数据库的实际线程的数量,p为待迁移表的数量、k为所有分片的数量、h为并发分片的数量、m为目标数据库的预设线程的数量。
在本公开其中一个实施例中,所述对所述待迁移数据进行分片包括:
将待迁移数据对应的标识信息与目标数据库索引对应的所有分片的数量进行取模运算。
在本公开其中一个实施例中,当所述索引的字段的离散度低于预设值时,增加一个或者多个离散度高于预设值的字段。
在本公开其中一个实施例中,所述将所述待迁移数据迁入所述目标数据库之前包括:
获取所述目标数据库中每个分区下的数据;
判断所述每个分区的数据的大小是否超过预设阈值;
若存在分区的数据的大小超过所述预设阈值,则对所述分区的数据进行DetachPartition;
等待所述目标数据库处于空闲状态时,进行DropDetachPartition。
在本公开其中一个实施例中,还包括:
获取目标数据库集群中每个目标数据库的性能状态;
判断所述目标数据库集群中是否存在性能状态在指定范围内的目标数据库集合;
若存在,则降低所述并发分片数,直至所述目标数据库集合中每个目标数据库的实际线程数为0。
在本公开其中一个实施例中,所述性能状态包括负载状态,所述方法还包括:
当所述目标数据库的实际线程的数量小于所述目标数据库的预设线程的数量时,获取所述目标数据库的副本集合;
比较所述副本集合内每个副本的负载状态;
动态选择负载状态最小的副本进行数据迁移。
在本公开其中一个实施例中,还包括:
统计未迁入成功的数据的数量和已迁入成功的数据的数量;
判断所述未迁入成功的数据的数量和所述已迁入成功的数据的数量是否等于所述待迁移数据的数量;
若不一致,则发出相应的错误提示信息。
本公开的另一个方面提供了一种数据迁移装置,包括:
获取模块,用于获取源数据库中的待迁移表,以及,所述待迁移表对应的待迁移数据;
分片模块,用于对所述待迁移数据进行分片;
查找模块,用于查找与所述待迁移数据所在分片对应的目标数据库;
迁移模块,用于将所述待迁移数据迁入所述目标数据库。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
根据本公开的实施例,获取源数据库中的待迁移表,以及,待迁移表对应的待迁移数据,对待迁移数据进行分片,并查找与待迁移数据所在分片对应的目标数据库,将待迁移数据迁入所述目标数据库。可以实现将分布式数据库中的待迁移数据迁入至实时分析型数据库中。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用数据迁移方法的示例性系统架构;
图2示意性示出了根据本公开实施例的数据迁移方法的流程图;
图3示意性示出了根据本公开实施例的数据迁移方法的流程图;
图4示意性示出了根据本公开实施例的数据迁移方法的流程图;
图5示意性示出了根据本公开的实施例的数据迁移装置的框图;以及
图6示意性示出了根据本公开实施例的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种数据迁移方法。该方法包括当接收到数据迁移请求时,获取待迁移数据,对待迁移数据进行分片,并查找与待迁移数据所在分片对应的目标数据库,将待迁移数据迁入目标数据库。
图1示意性示出了根据本公开实施例的可以应用数据迁移方法的示例性系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,分布式系统是多个节点通过通信线路互联而构成的松散耦合的系统。业务数据经过数据加工后存储在MySQL、Hive、Kafka等分布式数据库中,而当用户需要查询数据时,需要通过具有查询功能的数据库进行数据查询,因此,需要将数据从MySQL、Hive、Kafka等分布式数据库迁移至Clickhouse等实时分析型数据库。
图2示意性示出了根据本公开实施例的数据迁移方法的流程图。
如图2所示,该方法包括操作S201~S203。
在操作S201,获取源数据库中的待迁移表,以及,待迁移表对应的待迁移数据。
在操作S202,对待迁移数据进行分片。
在操作S203,查找与待迁移数据所在分片对应的目标数据库。
在操作S204,将待迁移数据迁入目标数据库。
在本公开,待迁移数据以表的形式存储在待迁移数据库中。源数据库可以是MySQL、Hive、Kafka等分布式数据库。在获取到待迁移数据之后,对待迁移数据进行分片。目标数据库可以是Clickhouse等实时分析型数据库。
在本公开中,对待迁移数据进行分片,且每一个分片对应一个目标数据库,其中,每一个分片可以具有各自的分片编号,每一个分片的编号不同。根据这种对应关系,用户只需输入所需的库表名称、分区字段、索引字段、条件信息和字段名称完成初始参数的配置,即可并向指定的目标数据库集群进行数据迁移,无需根据业务的不同每次输入指定的目标数据库集群的信息。
在本公开其中一个实施例中,操作S202包括:将待迁移数据对应的标识信息与目标数据库索引对应的所有分片的数量进行取模运算。
具体例如,
COALCASE(CAST(ABS(HASH(A,B,离散度高的字段))as int)%集群分片数,0)
其中,A,B为索引字段,当索引的字段的离散度低于预设值时,增加一个或者多个离散度高于预设值的字段。可以通过计算多个索引的字段的平均值作为预设值,也可以用户自行设定,本公开对此不做限制。根据本实施例,当索引的字段的离散度低于预设值时,增加一个或者多个离散度高于预设值的字段,可以使得待迁移数据均匀的分布在各个分片上。
图3示意性示出了根据本公开实施例的数据迁移方法的流程图。
如图3所示,操作S204包括操作S301~S303。
在操作S301,获取源数据库中的待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量。
在操作S302,根据待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量,计算目标数据库的实际线程的数量。
在操作S303,基于目标数据库的表实际线程的数量,将待迁移数据迁入目标数据库。
其中,
Figure BDA0002970157020000061
n为目标数据库的实际线程的数量,p为待迁移表的数量、k为所有分片的数量、h为并发分片的数量、m为目标数据库的预设线程的数量。
在本公开中,目标数据库的预设线程的数量可以是根据目标数据库的性能参数进行设置的。并发分片的数量是指进行数据迁移任务时,所有待迁移数据所在分片的总数量,可理解的,该总数量不大于所有分片的数量k。
在本公开其中一个实施例中,获取目标数据库集群中每个目标数据库的性能状态;判断目标数据库集群中是否存在性能状态在指定范围内的目标数据库集合;若存在,则降低并发分片数,直至目标数据库集合中每个目标数据库的实际线程数为0。保证数据迁移过程中目标数据库集群的稳定使用。
在本公开中,可以调用目标数据库集群接口或者直接访问目标数据库集群物理机,获取目标数据库集群中存在性能状态在指定范围内的目标数据库集合。
在本公开中,性能参数例如中央处理器、内存、负载等其中的任意一项或多项。指定范围例如中央处理器的占用率低于80%、内存占用率低于70%、负载低于峰值60%等,以上数值仅为示意性说明,不得理解为对本公开的限制。
在本公开其中一个实施例中,性能状态包括负载状态,当目标数据库的实际线程的数量小于目标数据库的预设线程的数量时,获取目标数据库的副本集合,比较副本集合内每个副本的负载状态,动态选择负载状态最小的副本进行数据迁移。
图4示意性示出了根据本公开实施例的数据迁移方法的流程图。
如图4所示,该方法除了包括操作S201~S203之外,还包括:
在操作S401,获取目标数据库中每个分区下的数据;
在操作S402,判断每个分区的数据的大小是否超过预设阈值;
在操作S403,若存在分区的数据的大小超过预设阈值,则对该分区的数据进行DetachPartition,等目标数据库处于空闲状态时,进行DropDetachPartition。
在本公开中,对于分区的数据的大小没有超过预设阈值的分区,直接进行数据删除,删除后可以通过分布式表查看数据是否已删除完成。
在本公开中,预设阈值可以是1G、2G等等,本公开对此不做限制。以预设阈值为1G为例,所以数据大小超过1G分区的数据先进行DetachPartition再在空闲时段进行DropDetachPartition,数据大小低于1G的小分区,删除后通过分布式表查看数据是否已删除完成。
在本公开其中一个实施例中,数据迁移方法还包括:统计未迁入成功的数据的数量和已迁入成功的数据的数量;判断未迁入成功的数据的数量和已迁入成功的数据的数量是否等于待迁移数据的数量;若不一致,则发出相应的错误提示信息。
在本公开中,由于在MySQL、Hive、Kafka等分布式数据库中正确的数据可能无法迁入至目标数据库。通过统计未迁入成功的数据的数量和已迁入成功的数据的数量,对数据迁移结果进行检查,保证了推入目标数据库的数据和源数据保持一致。
更多的,还可选择需要验证的指标,根据历史数据情况进行检查,目标数据库的数据增长如果超出了合理的区间,则需检查迁移至该目标数据库的数据是否正确。更多的,目标数据库迁入的数据量为0时,发出相应的错误提示信息。
图5示意性示出了根据本公开的实施例的数据迁移装置的框图。
如图5所示,数据迁移装置500包括获取模块510、分片模块520、查找模块530和迁移模块540。
获取模块510,用于获取源数据库中的待迁移表,以及,待迁移表对应的待迁移数据。
分片模块520,用于对待迁移数据进行分片。
查找模块530,用于查找与待迁移数据所在分片对应的目标数据库。
迁移模块540,用于将待迁移数据迁入目标数据库。
在本公开其中一个实施例中,迁移模块540包括:
获取子模块,用于获取源数据库中的待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量;
计算子模块,用于根据待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量,计算目标数据库的实际线程的数量;
迁移子模块,用于基于目标数据库的实际线程的数量,将待迁移数据迁入目标数据库。
其中,
Figure BDA0002970157020000091
n为目标数据库的实际线程的数量,p为待迁移表的数量、k为所有分片的数量、h为并发分片的数量、m为目标数据库的预设线程的数量。
在本公开其中一个实施例中,分片模块520具体用于将待迁移数据对应的标识信息与目标数据库索引对应的所有分片的数量进行取模运算。
在本公开其中一个实施例中,还包括增加模块,用于当索引的字段的离散度低于预设值时,增加一个或者多个离散度高于预设值的字段。
在本公开其中一个实施例中,数据迁移装置500还包括:
分数数据获取模块,用于获取源数据库中的目标数据库中每个分区下的数据;
大小判断模块,用于判断每个分区的数据的大小是否超过预设阈值;
第一处理模块,用于若存在分区的数据的大小超过预设阈值,则对该分区的数据进行DetachPartition;
第二处理模块,用于等待目标数据库处于空闲状态时,进行DropDetachPartition。
在本公开其中一个实施例中,数据迁移装置500还包括:
性能状态获取模块,用于获取目标数据库集群中每个目标数据库的性能状态;
节点判断模块,用于判断目标数据库集群中是否存在性能状态在指定范围内的目标数据库集合;
降低模块,用于若存在,则降低待并发分片数,直至目标数据库集合中每个目标数据库的实际线程数为0。
在本公开其中一个实施例中,性能状态包括负载状态,数据迁移装置500还包括:
节点集合获取模块,用于当目标写入线程数小于实际线程数时,获取性能状态在指定范围内的所有目标数据库集合;
比较模块,用于比较所有副本集合内每个目标数据库集合的负载状态;
选择模块,用于动态选择负载状态最小的目标数据库集合进行数据迁移。
在本公开其中一个实施例中数据迁移装置500还包括:
统计模块,用于统计未迁入成功的数据的数量和已迁入成功的数据的数量;
数量判断模块,用于判断未迁入成功的数据的数量和已迁入成功的数据的数量是否等于待迁移数据的数量;
提示模块,用于若不一致,则发出相应的错误提示信息。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、分片模块520、查找模块530和迁移模块540中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块510、分片模块520、查找模块530和迁移模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、分片模块520、查找模块530和迁移模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中数据迁移装置部分与本公开的实施例中数据迁移方法部分是相对应的,数据迁移装置部分的描述具体参考数据迁移方法部分,在此不再赘述。
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有系统600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时电可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种数据迁移方法,包括:
获取源数据库中的待迁移表,以及,所述待迁移表对应的待迁移数据;
对所述待迁移数据进行分片,并查找与所述待迁移数据所在分片对应的目标数据库;
将所述待迁移数据迁入所述目标数据库。
2.根据权利要求1所述的方法,所述将所述待迁移数据迁入所述目标数据库包括:
获取源数据库中的待迁移表的数量、所有分片的数量、并发分片的数量、目标数据库的预设线程的数量;
根据所述待迁移表的数量、所述所有分片的数量、所述并发分片的数量、目标数据库的预设线程的数量,计算目标数据库的实际线程的数量;
基于所述目标数据库的实际线程的数量,将所述待迁移数据迁入所述目标数据库。
其中,
Figure FDA0002970157010000011
n为目标数据库的实际线程的数量,p为待迁移表的数量、k为所有分片的数量、h为并发分片的数量、m为目标数据库的预设线程的数量。
3.根据权利要求1所述的方法,所述对所述待迁移数据进行分片包括:
将待迁移数据对应的标识信息与目标数据库索引对应的所有分片的数量进行取模运算。
4.根据权利要求3所述的方法,其中,当所述索引的字段的离散度低于预设值时,增加一个或者多个离散度高于预设值的字段。
5.根据权利要求1至4任意一项所述的方法,所述将所述待迁移数据迁入所述目标数据库之前包括:
获取所述目标数据库中每个分区下的数据;
判断所述每个分区的数据的大小是否超过预设阈值;
若存在分区的数据的大小超过所述预设阈值,则对所述分区的数据进行DetachPartition;
等待所述目标数据库处于空闲状态时,进行DropDetachPartition。
6.根据权利要求1所述的方法,还包括:
获取目标数据库集群中每个目标数据库的性能状态;
判断所述目标数据库集群中是否存在性能状态在指定范围内的目标数据库集合;
若存在,则降低所述并发分片数,直至所述目标数据库集合中每个目标数据库的实际线程数为0。
7.根据权利要求6所述的方法,所述性能状态包括负载状态,所述方法还包括:
当所述目标数据库的实际线程的数量小于所述目标数据库的预设线程的数量时,获取所述目标数据库的副本集合;
比较所述副本集合内每个副本的负载状态;
动态选择负载状态最小的副本进行数据迁移。
8.根据权利要求1所述的方法,还包括:
统计未迁入成功的数据的数量和已迁入成功的数据的数量;
判断所述未迁入成功的数据的数量和所述已迁入成功的数据的数量是否等于所述待迁移数据的数量;
若不一致,则发出相应的错误提示信息。
9.一种数据迁移装置,包括:
获取模块,用于获取源数据库中的待迁移表,以及,所述待迁移表对应的待迁移数据;
分片模块,用于对所述待迁移数据进行分片;
查找模块,用于查找与所述待迁移数据所在分片对应的目标数据库;
迁移模块,用于将所述待迁移数据迁入所述目标数据库。
10.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至8中任一项所述的方法。
CN202110262392.9A 2021-03-10 2021-03-10 数据迁移方法、装置、计算机系统及存储介质 Pending CN114090539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110262392.9A CN114090539A (zh) 2021-03-10 2021-03-10 数据迁移方法、装置、计算机系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110262392.9A CN114090539A (zh) 2021-03-10 2021-03-10 数据迁移方法、装置、计算机系统及存储介质

Publications (1)

Publication Number Publication Date
CN114090539A true CN114090539A (zh) 2022-02-25

Family

ID=80295979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110262392.9A Pending CN114090539A (zh) 2021-03-10 2021-03-10 数据迁移方法、装置、计算机系统及存储介质

Country Status (1)

Country Link
CN (1) CN114090539A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676141A (zh) * 2022-03-31 2022-06-28 北京泰迪熊移动科技有限公司 一种数据处理方法、装置及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676141A (zh) * 2022-03-31 2022-06-28 北京泰迪熊移动科技有限公司 一种数据处理方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US10169409B2 (en) System and method for transferring data between RDBMS and big data platform
CN108549683B (zh) 数据查询方法以及系统
US10318512B2 (en) Storing and querying multidimensional data using first and second indicies
US20180165331A1 (en) Dynamic computation node grouping with cost based optimization for massively parallel processing
US8548986B2 (en) Adaptive row-batch processing of database data
US11074242B2 (en) Bulk data insertion in analytical databases
US10262025B2 (en) Managing a temporal key property in a database management system
US20140250103A1 (en) Obtaining partial results from a database query
TW201415262A (zh) 基於Lucene的倒排索引系統構建、資料處理方法及裝置
CN109271380B (zh) 一种数据表海量数据校验方法及终端设备
US9734177B2 (en) Index merge ordering
CN109634989B (zh) 一种hive任务执行引擎选择方法和系统
US9020911B2 (en) Name search using multiple bitmap distributions
US10331670B2 (en) Value range synopsis in column-organized analytical databases
CN113765814A (zh) 网络访问的限流方法及装置
CN113535773A (zh) 数据库优化方法、数据库优化装置、电子设备和存储介质
CN114090539A (zh) 数据迁移方法、装置、计算机系统及存储介质
US11544260B2 (en) Transaction processing method and system, and server
KR101772333B1 (ko) 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템
US20190258736A1 (en) Dynamic Execution of ETL Jobs Without Metadata Repository
CN110674177B (zh) 数据查询方法、装置、电子设备和存储介质
CN111831453A (zh) 信息处理方法、装置、电子设备和介质
US20150302047A1 (en) Handling an increase in transactional data without requiring relocation of preexisting data between shards
CN107451142B (zh) 在数据库中写入和查询数据的方法与装置及其管理系统和计算机可读存储介质
US20180107713A1 (en) Adaptive query row selection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination