CN116701348A - 数据迁移方法、数据切片方法、分布式***及相关装置 - Google Patents

数据迁移方法、数据切片方法、分布式***及相关装置 Download PDF

Info

Publication number
CN116701348A
CN116701348A CN202310519570.0A CN202310519570A CN116701348A CN 116701348 A CN116701348 A CN 116701348A CN 202310519570 A CN202310519570 A CN 202310519570A CN 116701348 A CN116701348 A CN 116701348A
Authority
CN
China
Prior art keywords
data
slice
value
database
values
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
CN202310519570.0A
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202310519570.0A priority Critical patent/CN116701348A/zh
Publication of CN116701348A publication Critical patent/CN116701348A/zh
Pending legal-status Critical Current

Links

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

Abstract

本公开提供了一种数据迁移方法、数据切片方法、分布式***、电子设备及计算机可读存储介质,数据迁移方法用于迁移全量数据,包括:确定待迁移数据表中每行数据的切片值;基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;获取各组切片值关联的数据,将获取到的各组数据按组进行迁移,能够在提升切片速度的同时降低了临时表空间占用,从而提升数据迁移的效率并有效降低源数据库的负载。

Description

数据迁移方法、数据切片方法、分布式***及相关装置
技术领域
本公开涉及数据库技术,尤其涉及一种数据迁移方法、数据切片方法、分布式***、电子设备及计算机可读存储介质。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
在某些场景下,需要将一个数据库的数据表中的全量数据迁移至另一个数据库,这个过程称为数据迁移。
在对数据库的数据迁移时,由于存储数据的数据表较大,若直接对数据表的数据进行迁移,迁移的稳定性较差,迁移速度较慢,为了增强迁移的稳定性以及提高迁移速度,需要对数据表中的数据进行切片,以获得数据表的多个数据分片,再进行分片迁移,切片过程中需要临时排序值存储到临时表空间,而很多种数据库对临时表的大小有限制,传统切片方式利用数据表中的行索引在数据表中逐个确定切片的临界值以进行切片,切片速度慢且对临时表的空间占用大,导致数据迁移的效率低下。
发明内容
针对上述技术问题,本公开提供一种数据迁移方法、数据切片方法、分布式***、电子设备及计算机可读存储介质,技术方案如下:
根据本说明书实施例的第一方面,提供一种数据迁移方法,用于迁移全量数据,该方法包括:
确定待迁移数据表中每行数据的切片值;
基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;
获取各组切片值关联的数据,将获取到的各组数据按组进行迁移。
根据本说明书实施例的第二方面,提供一种数据切片方法,该方法包括:
确定数据表中每行数据的切片值;
基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;
将每组切片值关联的数据切分成一个数据切片。
根据本说明书实施例的第三方面,提供一种分布式***,该分布式***包括至少一个数据迁移服务器、源数据库和目标数据库;
所述数据迁移服务器用于执行如第一方面或第二方面所述的方法。
根据本说明书实施例的第四方面,提供一种电子设备,该电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现如第一方面或第二方面所述的方法。
根据本说明书实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述方法中的步骤。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,在对全量数据的迁移过程中,确定待迁移数据表中每行数据的切片值,基于预设采样频率,利用取余函数对切片值采样,以将该切片值分成若干组,获取各组切片值关联的数据,再将获取到的各组数据按组进行迁移,基于预设采样频率,利用取余函数对切片值采样能够一次性确定数据表各个切片临界值,从而完成对整张数据表的数据切片,并且无需在临时表中对切片值进行排序,在提升切片速度的同时降低了临时表空间占用,从而提升数据迁移的效率并有效降低源数据库的负载。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本说明书实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是相关技术的数据迁移场景示意图;
图2是相关技术的数据切片示意图;
图3是本说明书一个实施例的数据迁移方法的流程示意图;
图4是本说明书一个实施例的数据切片方法的流程示意图;
图5是本说明书一个实施例的数据切片示意图;
图6是本说明书一个实施例的数据迁移服务器的结构示意图;
图7是本说明书一个实施例的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关技术中,数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
全量数据,指当前数据库中需要迁移的历史数据,即存量数据。
请参见图1,首先对数据迁移进行示例性说明,在某些场景下,例如存在业务迁移需求、数据库拓展需求等需求的场景下,需要将一个数据库的数据表中的全量数据迁移至另一个数据库,例如图1中所示,将源数据库101的数据表中的数据全量迁移至目标数据库102,迁移的是数据表中的存量数据,即数据迁移的过程,可以理解的是,在进行实际的数据迁移时,不限定于图1中所展示的数据表类型。
在对数据库进行数据迁移时,由于存储数据的数据表较大,若直接对数据表的数据进行迁移,迁移的稳定性较差,迁移速度较慢,为了增强迁移的稳定性以及提高迁移速度,需要对数据表中的数据进行切片,以获得数据表的多个数据分片,再进行分片迁移,举例说明:在一个数据表中存在1亿条数据,而对该1亿条数据进行直接迁移的难度较大,则可以对该1亿条数据进行切片,例如切为1万条数据为一个切片,切片完成后再对切片区间进行并发数据迁移,在对数据表中的数据进行切片前,数据区间为1至1亿,而切片完成后,得到该数据表的多个数据区间(例如1至1万、1万至2万、2万至3万、…至1亿)。
在此过程中需要对切片列值进行排序,并将排序值临时存储到临时表,而很多种数据库对临时表的大小有限制,传统切片方式利用数据表中的行切片值在数据表中逐个确定切片的临界值以进行切片,请参见图2,对传统切片方式进行举例说明:滑动切片为传统切片方式的一种,滑动切片通过行切片值(例如图2中所示的key值)从小到大顺序查找的方式,依次查找一个切片区间的数据,其中任一切片区间中的最小值作为该切片区间左值,最大值作为该切片区间右值,每个切片区间的左值、右值为切片的临界值,即传统的滑动切片的步骤是:首先选择合适的行索引,按照行索引从小到大的顺序先确定第一个切片区间,再以第一个切片区间的最大值作为第二个切片区间的左值,从而找到第二个切片区间右值,再重复前述步骤,直到完成整张数据表切片,其中左无穷大为第一个切片区间左值,右无穷大为最后一个切片区间右值,并且在寻找切片区间过程中,需要对切片列值进行全局排序,此过程会大量占用数据库临时表空间,因此传统的切片方式切片速度慢且对临时表的空间占用大,导致数据迁移的效率低下。
针对上述问题,本说明书实施例提供一种数据迁移方法,用于迁移全量数据,以在提升切片速度的同时降低了临时表空间占用,从而提升数据迁移的效率并有效降低源数据库的负载,如图3所示,该方法包括以下步骤:
S301、确定待迁移数据表中每行数据的切片值;
作为例子,该切片值可以是索引值,可以根据该待迁移数据表所属的数据库,调用该数据库自身的索引值获取函数,得到该索引值获取函数被调用后返回的待迁移数据表中每行数据的切片值。
作为例子,在待迁移数据表中可能存在数量较大的多条数据,为了在其中找到某条特定的数据,在数据库层面引入了切片值,可以通过切片值在数据表结构中找到某条特定的数据,因此,需要确定待迁移数据表中每行数据的切片值。
作为例子,切片值可以是主键索引值,主键,即主关键字,其作用可以是唯一标识数据表中的某一行数据,主键索引值可以代表数据位于数据表中哪一行,例如,目标数据的主键索引值为N,则表示该目标数据位于数据表中的第N行。通过主键索引值在数据表中查询数据,可以快速定位到目标数据的位置,查询速度较快,效率较高。
值得说明的是,上述对于切片值的选取方式仅是示例性展示,在实际应用中,不排除存在其他的切片值选取方式,对此具体不作限定。
作为例子,数据表中的数据被结构化,从而简化访问、更新和操作数据的过程。数据表包括行和列,不同的数据表可以在关系的帮助下进行连接,如果需要在不同的数据表间执行与数据相关的任务,可以使用结构化查询语言(structured query language,SQL),通过SQL创建,修改和管理数据库中的数据,例如,可以通过单个SQL查询待迁移数据表中每行数据的切片值。值得说明的是,上述对于切片值的查询方式仅是示例性展示,在实际应用中,不排除存在其他的切片值查询方式,对此具体不作限定。
S302、基于预设采样频率,利用取余函数对所述切片值采样预设采样频率,以将所述切片值分成若干组;
作为例子,预设采样频率可以表征每一组切片值中存在多少行数据。
作为例子,本实施例适用的数据库可以是关系型数据库、PostgreSQL数据库或SQLServer数据库,待迁移数据表可以是关系型数据库、PostgreSQL数据库或SQL Server数据库中的数据表,由于在多种类型的数据库中,关系型数据库、PostgreSQL数据库或SQLServer数据库存在高效的获取数据表中每行数据的切片值的方式(例如,可以通过单个SQL调用上述数据库自身的函数去查询每行数据的切片值),因此,本实施例应用于上述数据库时,对于上述数据库的数据迁移性能提升较为明显,值得说明的是,上述数据库类型仅是示例性展示,在实际应用中,不排除存在其他具有高效获取数据表中每行数据的切片值的方式的数据库类型,对此具体不作限定。
作为例子,可以基于预设采样频率,利用上述数据库自带的取余函数对待迁移数据表中每行数据的切片值进行采样,例如,通过单个SQL,基于预设采样频率,利用上述数据库自带的取余函数,对待迁移数据表中每行数据的切片值进行采样,由于采样采用的是数据库自带的取余函数,调用函数的难度较小,调用效率较高,因此采样的处理性能更高。
作为例子,可以利用取余函数对待迁移数据表中每行数据的切片值采样,并将采样后余数为0的切片值作为临界值,以基于该临界值将待迁移数据表中每行数据的切片值分成若干组。
作为例子,可以将上述取余采样后余数为0的切片值作为数据切片的临界值,从而通过取余函数一次性确定好待迁移数据表中各个数据切片的临界值,以将待迁移数据表中每行数据的切片值分成若干组,值得说明的是,上述对余数的选取方式是示例性展示,在实际应用中,不排除存在其他余数的选取方式,例如,选取某一不为0的固定数值,对此具体不作限定。
S303、获取各组切片值关联的数据,将获取到的各组数据按组进行迁移。
作为例子,各组切片值关联的数据可以是待迁移数据表中与各组切片值分别对应的数据。
作为例子,可以将若干组切片值持久化到上述数据库中,例如,持久化到数据库引擎中,而无需在临时表中对切片值或切片值组进行排序,从而大大减小临时表的空间占用。
作为例子,本实施例可以应用于数据传输服务(data transmission service,DTS),或者应用于除DTS外的其他数据传输产品,具体不作限定。
请参见图4,下面对本说明书实施例的一个具体应用场景进行介绍:
确定待迁移数据表中每行数据的主键索引值,如图5中的key=1、key=2…key=n;将预设采样频率假设为2(预设采样频率可以根据数据分片大小确定,此处的采样频率2仅为方便图示说明的假设值,在实际应用中,由于数据表远比图5中大,预设采样频率实际选取时远远大于2),表示每一组主键索引值中将存在2行数据,基于预设采样频率2,利用数据库自带的取余函数,对每行数据的主键索引值采样,取余采样后余数为0的主键索引值作为数据切片的临界值,如图5中的key=2、key=4…key=n-1,根据采样结果将每行数据的主键索引值分成若干组数据切片,例如相邻临界值可作为左闭右开的切片区间,可得到连续的切片区间,如图5中的[-∞,2),[2,4),[4,6)......[n-1,∞),分别对应分片shard-1、shard-2…shard-n,相邻临界值也可作为左开右闭的切片区间,对此不作限定;获取各组主键索引值关联的数据,将获取到的各组数据按组进行迁移。
本说明书实施例提供的技术方案,在对全量数据的迁移过程中,确定待迁移数据表中每行数据的切片值,基于预设采样频率,利用取余函数对切片值采样,以将该切片值分成若干组,获取各组切片值关联的数据,再将获取到的各组数据按组进行迁移,基于预设采样频率,利用取余函数对切片值采样能够一次性确定数据表各个切片临界值,从而完成对整张数据表的数据切片,并且无需在临时表中对切片值进行排序,在提升切片速度的同时降低了临时表空间占用,从而提升数据迁移的效率并有效降低源数据库的负载。
本说明书实施例还提供一种数据切片方法,该数据切片的方法并不局限于上文所呈现的数据迁移的业务场景,所有需要通过临时表存储索引中的各个切片值的业务场景均可适用本方法。下面对本说明书实施例中的数据切片方法进行描述,如图5所示,该方法包括以下步骤:
S501、确定数据表中每行数据的切片值;
作为例子,该切片值可以是索引值,该数据表可以是数据库中的数据表,可以根据该数据表所属的数据库,调用该数据库自身的索引值获取函数,得到该索引值获取函数被调用后返回的该数据表中每行数据的切片值。
作为例子,在数据表中可能存在数量较大的多条数据,为了在其中找到某条特定的数据,引入了切片值,可以通过切片值在数据表结构中找到某条特定的数据,因此,需要确定数据表中每行数据的切片值。
作为例子,切片值可以是主键索引值,主键索引值可以代表数据位于数据表中哪一行,例如,目标数据的主键索引值为N,则表示该目标数据位于数据表中的第N行。通过主键索引值在数据表中查询数据,可以快速定位到目标数据的位置,查询速度较快,效率较高。
值得说明的是,上述对于切片值的选取方式仅是示例性展示,在实际应用中,不排除存在其他的切片值选取方式,对此具体不作限定。
作为例子,数据表中的数据被结构化,从而简化访问、更新和操作数据的过程。数据表包括行和列,不同的数据表可以在关系的帮助下进行连接,如果需要在不同的数据表间执行与数据相关的任务,可以使用结构化查询语言(structured query language,SQL),通过SQL创建,修改和管理数据库中的数据,例如,可以通过单个SQL查询待迁移数据表中每行数据的切片值。值得说明的是,上述对于切片值的查询方式仅是示例性展示,在实际应用中,不排除存在其他的切片值查询方式,对此具体不作限定。
S502、基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;
作为例子,预设采样频率可以表征每一组切片值中存在多少行数据。
作为例子,本实施例可以适用于数据库,其适用的数据库可以是关系型数据库、PostgreSQL数据库或SQL Server数据库,待迁移数据表可以是关系型数据库、PostgreSQL数据库或SQL Server数据库中的数据表,由于在多种类型的数据库中,关系型数据库、PostgreSQL数据库或SQL Server数据库存在高效的获取数据表中每行数据的切片值的方式(例如,可以通过单个SQL调用上述数据库自身的函数去查询每行数据的切片值),因此,本实施例应用于上述数据库时,对于上述数据库的数据迁移性能提升较为明显,值得说明的是,上述数据库类型仅是示例性展示,在实际应用中,不排除存在其他具有高效获取数据表中每行数据的切片值的方式的数据库类型,对此具体不作限定,并且本实施例不限定于数据库的业务场景,还可应用于数据库以外的业务场景。
作为例子,可以基于预设采样频率,利用上述数据库自带的取余函数对待迁移数据表中每行数据的切片值进行采样,例如,通过单个SQL,基于预设采样频率,利用上述数据库自带的取余函数,对待迁移数据表中每行数据的切片值进行采样,由于采样采用的是数据库自带的取余函数,调用函数的难度较小,调用效率较高,因此采样的处理性能更高。
作为例子,可以利用取余函数对数据表中每行数据的切片值采样,并将采样后余数为0的切片值作为临界值,以基于该临界值将数据表中每行数据的切片值分成若干组。
作为例子,可以将上述取余采样后余数为0的切片值作为数据切片的临界值,从而通过取余函数一次性确定好待迁移数据表中各个数据切片的临界值,以将待迁移数据表中每行数据的切片值分成若干组,值得说明的是,上述对余数的选取方式是示例性展示,在实际应用中,不排除存在其他余数的选取方式,例如,选取某一不为0的固定数值,对此具体不作限定。
S503、将每组切片值关联的数据切分成一个数据切片。
作为例子,各组切片值关联的数据可以是待迁移数据表中与各组切片值分别对应的数据。
作为例子,可以将若干组切片值持久化到上述数据库中,例如,持久化到数据库引擎中,而无需在临时表中对切片值或切片值组进行排序,从而大大减小临时表的空间占用。
作为例子,本实施例可以应用于数据传输服务(data transmission service,DTS),或者应用于除DTS外的其他数据传输产品,具体不作限定。
上面对本说明书实施例中的数据迁移方法以及数据切片方法进行了描述,上述方法可以部署在分布式***上实现,请参阅图6,本说明书实施例中的分布式***一个实施例可以包括至少一个数据迁移服务器602、源数据库601和目标数据库603;
(1)数据迁移服务器602可以用于执行上文中任一实施例所描述的数据迁移方法:
所述数据迁移服务器602,用于确定所述源数据库601中待迁移数据表的每行数据的切片值;基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;以及获取各组切片值关联的数据,将获取到的各组数据按组迁移到所述目标数据库603的指定数据表中。
作为例子,该切片值可以是索引值,数据迁移服务器602具体用于根据待迁移数据表所属的数据库,调用该数据库自身的索引值获取函数,得到该索引值获取函数被调用后返回的待迁移数据表中每行数据的切片值。
作为例子,在源数据库601中的待迁移数据表中可能存在数量较大的多条数据,为了在其中找到某条特定的数据,在数据库层面引入了切片值,可以通过切片值在数据表结构中找到某条特定的数据,因此,数据迁移服务器602需要确定源数据库601中的待迁移数据表中每行数据的切片值。
作为例子,切片值可以是主键索引值,主键,即主关键字,其作用可以是唯一标识数据表中的某一行数据,主键索引值可以代表数据位于数据表中哪一行,例如,目标数据的主键索引值为N,则表示该目标数据位于数据表中的第N行。通过主键索引值在数据表中查询数据,可以快速定位到目标数据的位置,查询速度较快,效率较高。
值得说明的是,上述对于切片值的选取方式仅是示例性展示,在实际应用中,不排除存在其他的切片值选取方式,对此具体不作限定。
作为例子,数据表中的数据被结构化,从而简化访问、更新和操作数据的过程。数据表包括行和列,不同的数据表可以在关系的帮助下进行连接,如果需要在不同的数据表间执行与数据相关的任务,可以使用结构化查询语言(structured query language,SQL),通过SQL创建,修改和管理数据库中的数据,例如,数据迁移服务器602可以用于通过单个SQL查询待迁移数据表中每行数据的切片值。值得说明的是,上述对于切片值的查询方式仅是示例性展示,在实际应用中,不排除存在其他的切片值查询方式,对此具体不作限定。
作为例子,预设采样频率可以表征每一组切片值中存在多少行数据。
作为例子,源数据库601适用的数据库可以包括关系型数据库、PostgreSQL数据库或SQL Server数据库,待迁移数据表可以是关系型数据库、PostgreSQL数据库或SQLServer数据库中的数据表,由于在多种类型的数据库中,关系型数据库、PostgreSQL数据库或SQL Server数据库存在高效的获取数据表中每行数据的切片值的方式(例如,可以通过单个SQL调用上述数据库自身的函数去查询每行数据的切片值),因此,本实施例应用于上述数据库时,对于上述数据库的数据迁移性能提升较为明显,值得说明的是,上述数据库类型仅是示例性展示,在实际应用中,不排除存在其他具有高效获取数据表中每行数据的切片值的方式的数据库类型,对此具体不作限定。
作为例子,数据迁移服务器602具体用于基于预设采样频率,利用上述数据库自带的取余函数对待迁移数据表中每行数据的切片值进行采样,例如,通过单个SQL,基于预设采样频率,利用上述数据库自带的取余函数,对待迁移数据表中每行数据的切片值进行采样,由于采样采用的是数据库自带的取余函数,调用函数的难度较小,调用效率较高,因此采样的处理性能更高。
作为例子,数据迁移服务器602具体用于利用取余函数对待迁移数据表中每行数据的切片值采样,并将采样后余数为0的切片值作为临界值,以基于该临界值将待迁移数据表中每行数据的切片值分成若干组。
作为例子,数据迁移服务器602可以用于将上述取余采样后余数为0的切片值作为数据切片的临界值,从而通过取余函数一次性确定好待迁移数据表中各个数据切片的临界值,以将待迁移数据表中每行数据的切片值分成若干组,值得说明的是,上述对余数的选取方式是示例性展示,在实际应用中,不排除存在其他余数的选取方式,例如,选取某一不为0的固定数值,对此具体不作限定。
作为例子,数据迁移服务器602还用于将若干组切片值持久化到上述数据库中,例如,持久化到数据库引擎中,而无需在临时表中对切片值或切片值组进行排序,从而大大减小临时表的空间占用。
作为例子,各组切片值关联的数据可以是待迁移数据表中与各组切片值分别对应的数据。
作为例子,本实施例可以应用于数据传输服务(data transmission service,DTS),或者应用于除DTS外的其他数据传输产品,具体不作限定。
(2)数据迁移服务器602还可以用于执行上文中任一实施例所描述的数据切片方法:
数据迁移服务器602,用于确定数据表中每行数据的切片值;基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;将每组切片值关联的数据切分成一个数据切片。
作为例子,该切片值可以是索引值,该数据表可以是数据库中的数据表,数据迁移服务器602具体可以用于根据该数据表所属的数据库,调用该数据库自身的索引值获取函数,得到该索引值获取函数被调用后返回的该数据表中每行数据的切片值。
作为例子,在数据表中可能存在数量较大的多条数据,为了在其中找到某条特定的数据,引入了切片值,可以通过切片值在数据表结构中找到某条特定的数据,因此,数据迁移服务器602需要确定数据表中每行数据的切片值。
作为例子,切片值可以是主键索引值,主键索引值可以代表数据位于数据表中哪一行,例如,目标数据的主键索引值为N,则表示该目标数据位于数据表中的第N行。通过主键索引值在数据表中查询数据,可以快速定位到目标数据的位置,查询速度较快,效率较高。
值得说明的是,上述对于切片值的选取方式仅是示例性展示,在实际应用中,不排除存在其他的切片值选取方式,对此具体不作限定。
作为例子,数据表中的数据被结构化,从而简化访问、更新和操作数据的过程。数据表包括行和列,不同的数据表可以在关系的帮助下进行连接,如果需要在不同的数据表间执行与数据相关的任务,可以使用结构化查询语言(structured query language,SQL),通过SQL创建,修改和管理数据库中的数据,例如,数据迁移服务器602可以用于通过单个SQL查询待迁移数据表中每行数据的切片值。值得说明的是,上述对于切片值的查询方式仅是示例性展示,在实际应用中,不排除存在其他的切片值查询方式,对此具体不作限定。
作为例子,预设采样频率可以表征每一组切片值中存在多少行数据。
作为例子,本实施例可以适用于数据库,其适用的数据库可以是关系型数据库、PostgreSQL数据库或SQL Server数据库,待迁移数据表可以是关系型数据库、PostgreSQL数据库或SQL Server数据库中的数据表,由于在多种类型的数据库中,关系型数据库、PostgreSQL数据库或SQL Server数据库存在高效的获取数据表中每行数据的切片值的方式(例如,可以通过单个SQL调用上述数据库自身的函数去查询每行数据的切片值),因此,本实施例应用于上述数据库时,对于上述数据库的数据迁移性能提升较为明显,值得说明的是,上述数据库类型仅是示例性展示,在实际应用中,不排除存在其他具有高效获取数据表中每行数据的切片值的方式的数据库类型,对此具体不作限定,并且本实施例不限定于数据库的业务场景,还可应用于数据库以外的业务场景。
作为例子,数据迁移服务器602具体用于基于预设采样频率,利用上述数据库自带的取余函数对待迁移数据表中每行数据的切片值进行采样,例如,通过单个SQL,基于预设采样频率,利用上述数据库自带的取余函数,对待迁移数据表中每行数据的切片值进行采样,由于采样采用的是数据库自带的取余函数,调用函数的难度较小,调用效率较高,因此采样的处理性能更高。
作为例子,数据迁移服务器602具体用于利用取余函数对数据表中每行数据的切片值采样,并将采样后余数为0的切片值作为临界值,以基于该临界值将数据表中每行数据的切片值分成若干组。
作为例子,数据迁移服务器602可以用于将上述取余采样后余数为0的切片值作为数据切片的临界值,从而通过取余函数一次性确定好待迁移数据表中各个数据切片的临界值,以将待迁移数据表中每行数据的切片值分成若干组,值得说明的是,上述对余数的选取方式是示例性展示,在实际应用中,不排除存在其他余数的选取方式,例如,选取某一不为0的固定数值,对此具体不作限定。
作为例子,数据迁移服务器602还可以用于将若干组切片值持久化到上述数据库中,例如,持久化到数据库引擎中,而无需在临时表中对切片值或切片值组进行排序,从而大大减小临时表的空间占用。
作为例子,各组切片值关联的数据可以是待迁移数据表中与各组切片值分别对应的数据。
作为例子,本实施例可以应用于数据传输服务(data transmission service,DTS),或者应用于除DTS外的其他数据传输产品,具体不作限定。
值得指出的是,源数据库601和目标数据库603可以部署于数据迁移服务器602上,在其他的例子中也可以部署在其他设备上,而并非局限于利用数据迁移服务器602实施。
本说明书实施例还提供了一种电子设备,如图7所示,该电子设备包括:
处理器701;
用于存储处理器可执行指令的存储器702;
其中,所述处理器701被配置为实现上文中任一实施例所描述的数据迁移方法或数据切片方法。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上文中任一实施例所描述的数据迁移方法或数据切片方法。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例可以应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,所述计算机设备的硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该申请的保护范围内。
其中,“具体示例”、或“一些示例”等的描述意指结合所述实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (13)

1.一种数据迁移方法,用于迁移全量数据,包括:
确定待迁移数据表中每行数据的切片值;
基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;
获取各组切片值关联的数据,将获取到的各组数据按组进行迁移。
2.根据权利要求1所述的方法,所述切片值为索引值;所述确定待迁移数据表中每行数据的切片值包括:
根据所述待迁移数据表所属的数据库,调用所述数据库自身的索引值获取函数,得到所述索引值获取函数被调用后返回的所述待迁移数据表中每行数据的切片值。
3.根据权利要求2所述的方法,所述基于预设采样频率,利用取余函数对所述切片值采样包括:
基于所述预设采样频率,利用所述数据库自带的取余函数对所述切片值采样。
4.根据权利要求1所述的方法,所述切片值为主键索引值。
5.根据权利要求1所述的方法,所述方法还包括:
将若干组切片值持久化到所述数据库。
6.根据权利要求1所述的方法,将所述切片值分成若干组的步骤包括:
利用所述取余函数对所述切片值采样,并将采样后余数为0的切片值作为临界值,以基于所述临界值将所述切片值分成若干组。
7.一种数据切片方法,包括:
确定数据表中每行数据的切片值;
基于预设采样频率,利用取余函数对所述切片值采样,以将所述切片值分成若干组;
将每组切片值关联的数据切分成一个数据切片。
8.根据权利要求7所述的方法,所述基于预设采样频率,利用取余函数对所述切片值采样包括:
基于所述预设采样频率,利用所述数据库自带的取余函数对所述切片值采样。
9.根据权利要求7所述的方法,所述切片值为主键索引值。
10.根据权利要求7所述的方法,将所述切片值分成若干组的步骤包括:
利用所述取余函数对所述切片值采样,并将采样后余数为0的切片值作为临界值,以基于所述临界值将所述切片值分成若干组。
11.一种分布式***,所述分布式***包括至少一个数据迁移服务器、源数据库和目标数据库;
所述数据迁移服务器用于执行权利要求1至10中任一项所述的方法。
12.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述方法中的步骤。
CN202310519570.0A 2023-05-08 2023-05-08 数据迁移方法、数据切片方法、分布式***及相关装置 Pending CN116701348A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310519570.0A CN116701348A (zh) 2023-05-08 2023-05-08 数据迁移方法、数据切片方法、分布式***及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310519570.0A CN116701348A (zh) 2023-05-08 2023-05-08 数据迁移方法、数据切片方法、分布式***及相关装置

Publications (1)

Publication Number Publication Date
CN116701348A true CN116701348A (zh) 2023-09-05

Family

ID=87833020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310519570.0A Pending CN116701348A (zh) 2023-05-08 2023-05-08 数据迁移方法、数据切片方法、分布式***及相关装置

Country Status (1)

Country Link
CN (1) CN116701348A (zh)

Similar Documents

Publication Publication Date Title
US10706103B2 (en) System and method for hierarchical distributed processing of large bipartite graphs
US11132388B2 (en) Efficient spatial queries in large data tables
US11003649B2 (en) Index establishment method and device
US10078697B2 (en) Computer-implemented method of and system for searching an inverted index having a plurality of posting lists
CN108197296B (zh) 基于Elasticsearch索引的数据存储方法
CN107103032B (zh) 一种分布式环境下避免全局排序的海量数据分页查询方法
US11294920B2 (en) Method and apparatus for accessing time series data in memory
EP3289484B1 (en) Method and database computer system for performing a database query using a bitmap index
EP3217296A1 (en) Data query method and apparatus
CN110889023A (zh) 一种elasticsearch的分布式多功能搜索引擎
CN111435406A (zh) 一种纠正数据库语句拼写错误的方法和装置
WO2023143095A1 (en) Method and system for data query
CN113177050A (zh) 一种数据均衡的方法、装置、查询***及存储介质
CA2433377A1 (en) Computing frequent value statistics in a partitioned relational database
CN107562762B (zh) 数据索引构建方法及装置
CN111125158B (zh) 数据表处理方法、装置、介质及电子设备
CN111428140B (zh) 高并发数据检索方法、装置、设备及存储介质
CN113849499A (zh) 数据的查询方法、装置、存储介质及电子装置
US10366067B2 (en) Adaptive index leaf block compression
US20200364226A1 (en) Methods and devices for dynamic filter pushdown for massive parallel processing databases on cloud
CN116701348A (zh) 数据迁移方法、数据切片方法、分布式***及相关装置
US20210248142A1 (en) Dual filter histogram optimization
US11494359B2 (en) Index and storage management for multi-tiered databases
CN113535781A (zh) 一种时序库的数据查询方法、装置、设备及存储介质
CN112883143A (zh) 一种基于Elasticsearch的数字展会搜索方法与***

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