CN118981459A - 数据迁移方法、电子设备、存储介质及程序产品 - Google Patents
数据迁移方法、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN118981459A CN118981459A CN202411006561.2A CN202411006561A CN118981459A CN 118981459 A CN118981459 A CN 118981459A CN 202411006561 A CN202411006561 A CN 202411006561A CN 118981459 A CN118981459 A CN 118981459A
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- target
- preset
- pieces
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据迁移方法、电子设备、存储介质及程序产品。涉及的大数据技术领域。该方法包括:接收数据迁移请求,数据迁移请求包括连接信息、迁移时段和预设迁移数量;访问连接信息对应的第一数据库,并在第一数据库中获取迁移时段内生成的多条当前数据;根据预设迁移数量和多条当前数据,确定多条目标数据;根据预设迁移数量,确定多条目标数据对应的目标线程数量N,N为正整数;若目标线程数量N大于1,则根据目标线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;通过每个线程对至少一个目标数据进行数据迁移处理。提高了数据迁移的效率。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种数据迁移方法、电子设备、存储介质及程序产品。
背景技术
农产品溯源平台可以以溯源二维码为载体,提供农产品从生产、加工、流通、仓储、销售等各个环节的溯源信息的查询,保障农产品的安全。农产品溯源平台的数据存储在第一数据库中,第一数据库为关系数据库,需要将第一数据库中的数据传输至目标数据库,以便对农产品数据进行分析处理。
在现有技术中,可以使用数据仓库技术(Extract-Transform-Load,ETL)工具在不同数据源之间进行数据迁移。工作人员可以选择通过ETL工具执行抽取、转换及加载操作,从而将数据从待维护数据库迁移至目标数据库。
然而,工作人员需要手动操作文件传输或者开发脚本实现任务传输,并且传输数据需求有所变化的时候,脚本需要重新开发,使得数据迁移的效率较低。
发明内容
本申请实施例提供数据迁移方法、电子设备、存储介质及程序产品,用以达到提高数据迁移的效率的效果。
第一方面,本申请实施例提供一种数据迁移方法,包括:
接收数据迁移请求,所述数据迁移请求用于将多条原始数据从第一数据库迁移至目标数据库,所述数据迁移请求包括连接信息、迁移时段和预设迁移数量;
访问所述连接信息对应的第一数据库,并在所述第一数据库中获取所述迁移时段内生成的多条当前数据;
根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,所述目标数据包括至少一个预设字段、以及每个预设字段对应的字符;
根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量N,所述N为正整数;
若所述目标线程数量N大于1,则根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;
通过每个线程对所述至少一个目标数据进行数据迁移处理,以实现将所述多条目标数据的迁移至所述目标数据库。
在一种可能的实施方式中,根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,包括:
确定所述多条当前数据的第一数量;
根据所述第一数量和所述预设迁移数量,确定多条原始数据;
根据至少一个预设字段,对所述多条原始数据进行筛选处理,得到所述多条目标数据。
在一种可能的实施方式中,根据所述第一数量和所述预设迁移数量,确定所述多条原始数据,包括:
若所述第一数量大于或等于预设迁移数量,则将所述多条当前数据确定为所述多条原始数据;
若所述第一数量小于所述预设迁移数量,则根据所述第一数量和所述预设迁移数量,确定多个待迁移数据,将所述多个待迁移数据和所述多条当前数据确定为所述多条原始数据。
在一种可能的实施方式中,根据所述第一数量和所述预设迁移数量,确定多个待迁移数据,包括:
将所述预设迁移数量和所述第一数量的差值,确定为第二数量M,所述M为正整数;
在所述第一数据库中获取M条历史数据,所述历史数据为未迁移至目标数据库的数据;
将所述M条历史数据确定为所述多个待迁移数据。
在一种可能的实施方式中,根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据,包括:
将所述多条目标数据对应的迁移时段划分为N个切分时段;
确定每个线程对应的切分时段;
针对任意一个切分时段,将所述切分时段对应的至少一条目标数据,确定为所述切分时段对应线程的至少一条目标数据。
在一种可能的实施方式中,针对任意一个线程;通过所述线程对至少一个目标数据进行数据迁移处理,包括:
针对任意一个目标数据,判断所述目标数据库中是否存在所述目标数据对应的第一列表,所述第一列表包括多个列族字段;
若是,则将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段;
若否,则根据所述至少一个预设字段,生成第一列表,并将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段。
在一种可能的实施方式中,所述第一列表还包括默认列族;针对任意一个预设字段;将所述预设字段对应的字符存储至所述第一列表对应的列族字段,包括:
若所述预设字段不存在对应的列族字段,则将所述预设字段对应的字符存储至所述默认列族。
在一种可能的实施方式中,根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量,包括:
获取第一对应表,所述第一对应表包括多个迁移数量区间、以及每个迁移数据区间对应的线程数量;
在第一对应表中,确定预设迁移数量对应的目标数量区间;
将目标数量区间对应的线程数量确定为目标线程数量。
在一种可能的实施方式中,还包括:
生成所述数据迁移请求对应的迁移结果,所述迁移结果包括传输结果、传输数量和传输时长;
向用户终端发送所述迁移结果。
第二方面,本申请实施例提供的一种数据迁移装置,包括接收模块、访问模块、第一确定模块、第二确定模块、切分处理模块和迁移处理模块:
所述接收模块用于,接收数据迁移请求,所述数据迁移请求用于将多条原始数据从第一数据库迁移至目标数据库,所述数据迁移请求包括连接信息、迁移时段和预设迁移数量;
所述访问模块用于,访问所述连接信息对应的第一数据库,并在所述第一数据库中获取所述迁移时段内生成的多条当前数据;
所述第一确定模块用于,根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,所述目标数据包括至少一个预设字段、以及每个预设字段对应的字符;
所述第二确定模块用于,根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量N,所述N为正整数;
所述切分处理模块用于,若所述目标线程数量N大于1,则根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;
所述迁移处理模块用于,通过每个线程对所述至少一个目标数据进行数据迁移处理,以实现将所述多条目标数据的迁移至所述目标数据库。
在一种可能的实施方式中,所述第一确定模块具体用于:
确定所述多条当前数据的第一数量;
根据所述第一数量和所述预设迁移数量,确定多条原始数据;
根据至少一个预设字段,对所述多条原始数据进行筛选处理,得到所述多条目标数据。
在一种可能的实施方式中,所述第一确定模块具体用于:
若所述第一数量大于或等于预设迁移数量,则将所述多条当前数据确定为所述多条原始数据;
若所述第一数量小于所述预设迁移数量,则根据所述第一数量和所述预设迁移数量,确定多个待迁移数据,将所述多个待迁移数据和所述多条当前数据确定为所述多条原始数据。
在一种可能的实施方式中,所述第一确定模块具体用于:
将所述预设迁移数量和所述第一数量的差值,确定为第二数量M,所述M为正整数;
在所述第一数据库中获取M条历史数据,所述历史数据为未迁移至目标数据库的数据;
将所述M条历史数据确定为所述多个待迁移数据。
在一种可能的实施方式中,所述切分处理模块具体用于:
将所述多条目标数据对应的迁移时段划分为N个切分时段;
确定每个线程对应的切分时段;
针对任意一个切分时段,将所述切分时段对应的至少一条目标数据,确定为所述切分时段对应线程的至少一条目标数据。
在一种可能的实施方式中,针对任意一个线程;所述迁移处理模块具体用于:
针对任意一个目标数据,判断所述目标数据库中是否存在所述目标数据对应的第一列表,所述第一列表包括多个列族字段;
若是,则将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段;
若否,则根据所述至少一个预设字段,生成第一列表,并将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段。
在一种可能的实施方式中,所述第一列表还包括默认列族;针对任意一个预设字段;所述迁移处理模块具体用于:
若所述预设字段不存在对应的列族字段,则将所述预设字段对应的字符存储至所述默认列族。
在一种可能的实施方式中,所述第二确定模块具体用于:
获取第一对应表,所述第一对应表包括多个迁移数量区间、以及每个迁移数据区间对应的线程数量;
在第一对应表中,确定预设迁移数量对应的目标数量区间;
将目标数量区间对应的线程数量确定为目标线程数量。
在一种可能的实施方式中,还包括生成模块和发送模块:
所述生成模块用于,生成所述数据迁移请求对应的迁移结果,所述迁移结果包括传输结果、传输数量和传输时长;
所述发送模块用于,向用户终端发送所述迁移结果。
第三方面,本申请实施例提供一种电子设备,包括:存储器,处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如上第一方面和/或第一方面各种可能的实施方式。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上第一方面和/或第一方面各种可能的实施方式。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面和/或第一方面各种可能的实施方式。
本申请实施例提供的数据迁移方法、电子设备、存储介质及程序产品,可以根据数据迁移请求,确定多条目标数据,可以将多条目标数据从第一数据库迁移至目标数据库,在传输数据需求有所变化的时候时,可以更新数据迁移请求,无需重新开发脚本,可以提高数据迁移的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的数据迁移方法的场景示意图;
图2为本申请提供的数据迁移方法的流程示意图一;
图3为本申请提供的数据迁移方法的流程示意图二;
图4为本申请实施例提供的一种数据迁移方法的架构示意图;
图5为本申请提供的一种数据迁移方法的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
图1为本申请提供的数据迁移方法的场景示意图。如图1所示,本申请具体的应用场景包括处理设备101、第一数据库102和第二数据库103。
处理设备101可以接收用户终端104发送的数据迁移请求,数据迁移请求可以包括连接信息、迁移时段和预设迁移数量。处理设备101可以通过连接信息访问第一数据库102,并在第一数据库102中获取迁移时段内生成的多条当前数据。
处理设备101可以根据预设迁移数量和多条当前数据,确定多条目标数据,在目标数据中包括至少一个预设字段、以及每个预设字段对应的字符。可以根据预设迁移数量,确定多条目标数据对应的线程数量N,其中,N为正整数。
若线程数量N大于1,则处理设备101可以根据线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据,并通过每个线程对至少一个目标数据进行数据迁移处理,将多条目标数据的迁移至目标数据库103。
在现有技术中,可以使用数据仓库技术(Extract-Transform-Load,ETL)工具在不同数据源之间进行数据迁移。工作人员可以选择通过ETL工具执行抽取、转换及加载操作,从而将数据从待维护数据库迁移至目标数据库。
然而,工作人员需要手动操作文件传输或者开发脚本实现任务传输,并且传输数据需求有所变化的时候,脚本需要重新开发,使得数据迁移的效率较低。
本申请提供的数据迁移方法,数据迁移请求包括的连接信息、迁移时段和预设迁移数量,可以根据数据迁移请求,确定多条目标数据,可以将多条目标数据从第一数据库迁移至目标数据库,在传输数据需求有所变化的时候时,可以更新数据迁移请求,无需重新开发脚本,可以提高数据迁移的效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请提供的数据迁移方法的流程示意图一。如图2所示,该方法可以包括:
S201、接收数据迁移请求。
本申请实施例的执行主体可以为处理设备,也可以为设置在处理设备中的数据迁移装置可以通过软件实现,也可以通过软件和硬件的结合实现。
数据迁移请求可以用于将多条原始数据从第一数据库迁移至目标数据库,数据迁移请求可以包括连接信息、迁移时段和预设迁移数量。
连接信息可以包括数据库类型、IP地址、端口号、数据库名称、数据库用户、数据库密码等。
迁移时段为在第一数据库中待迁移数据的产生时段。
例如,假设迁移时段为2024年1月13日8:00-2024年1月14日18:00,由于农产品的可能经历从生产、加工、流通、仓储、销售等诸多环节,每个环节会产生对应的数据,数据迁移请求可以用于将迁移时段内产生的数据进行迁移。
预设迁移数量可以用于控制每次迁移数据的数据量。
S202、访问连接信息对应的第一数据库,并在第一数据库中获取迁移时段内生成的多条当前数据。
可以根据连接信息中的数据库名称确定第一数据库,并根据连接信息访问第一数据库。其中,下一次数据迁移,若待访问的数据库发生变化,则可以直接更新连接信息,无需更改脚本。
例如,假设迁移时段为时段1,假设在时段1内产生了50条当前数据,分别为当前数据1-50,则可以获取当前数据1-50。
S203、根据预设迁移数量和多条当前数据,确定多条目标数据。
可以根据如下方式确定多条目标数据:确定多条当前数据的第一数量;根据第一数量和预设迁移数量,确定多条原始数据;根据至少一个预设字段,对多条原始数据进行筛选处理,得到多条目标数据。
目标数据可以包括至少一个预设字段、以及每个预设字段对应的字符。
原始数据可以包括多个原始字段、以及每个原始字段对应的字符。
S204、根据预设迁移数量,确定多条目标数据对应的目标线程数量N。
其中,N为正整数。
若预设迁移数量较多,则确定多个线程同时对多条目标数据进行迁移处理。
可以配置第一对应表,第一对应表可以包括多个迁移数量区间、以及每个迁移数据区间对应的线程数量。
进一步的,可以获取第一对应表;在第一对应表中,确定预设迁移数量对应的目标数量区间;将目标数量区间对应的线程数量确定为目标线程数量。
例如,假设第一对应表共有两个迁移数量区间,分别为区间1和区间2,区间1对应第一线程数量,区间2对应第二线程数量,其中,第一线程数量大于第二线程数量。假设预设迁移数量对应区间1,则确定线程数量为第一线程数量;若预设迁移数量对应区间2,则确定线程数量为第二线程数量。
S205、若线程数量N大于1,则根据线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据。
例如,假设线程数量为2,分别为线程1和线程2。假设共有5条目标数据,分别为目标数据1-5,则线程1可以对应3条目标数据,分别为目标数据1、目标数据2和目标数据3,线程2可以对应2条目标数据,分别为目标数据4和目标数据5。
S206、通过每个线程对至少一个目标数据进行数据迁移处理,以实现将多条目标数据的迁移至目标数据库。
数据迁移处理之后,还可以生成数据迁移请求对应的迁移结果,并向用户终端发送迁移结果,其中,迁移结果可以包括传输结果、传输数量和传输时长。
传输结果可以为传输成功、传输失败或者传输中断,其中,传输失败可以为任意一条或多条目标数据传输失败。
传输数量可以为数据迁移请求对应的实际迁移数量,传输时长可以为对多条目标数据迁移的总时长。
用户终端上可以显示迁移结果,管理人员可以根据迁移结果调整数据迁移请求。
本申请实施例提供的数据迁移方法,可以根据数据迁移请求,在第一数据库中确定多条目标数据,可以将多条目标数据迁移至目标数据库。可以通过更新数据迁移请求,实现在传输数据需求有所变化的时候时的数据迁移,无需重新开发脚本,可以提高数据迁移的效率。
图3为本申请提供的数据迁移方法的流程示意图二,如图3所示,本实施例在图2实施例的基础上,对数据迁移方法进行详细说明,该方法可以包括:
S301、接收数据迁移请求。
S302、访问连接信息对应的第一数据库,并在第一数据库中获取迁移时段内生成的多条当前数据。
S301-S302的执行过程可以参见S201-S202的执行过程,此处不再赘述。
S303、确定多条当前数据的第一数量。
第一数据库可以为关系数据库,在第一数据库中可以存储农产品的溯源数据,由于农产品会不断产生新的溯源数据,需要确定迁移时段内,多条当前数据的第一数量。
S304、若第一数量大于或等于预设迁移数量,则将多条当前数据确定为多条原始数据。
例如,假设第一数量为1000,假设预设迁移数量为800,则可以1000条当前数据,确定为原始数据。
有一些实施例,若第一数量大于或等于预设迁移数量,则在多条当前数据中将预设迁移数量的当前数据,确定为原始数据。
例如,假设第一数量为1000,假设预设迁移数量为800,则可以1000条当前数据中的800条当前数据,确定为多条原始数据。
S305、若第一数量小于预设迁移数量,则根据第一数量和预设迁移数量,确定多个待迁移数据,并将多个待迁移数据和多条当前数据确定为多条原始数据。
第一数据库中可以包括多条历史数据,历史数据为未迁移至目标数据库的数据。
可以将预设迁移数量和第一数量的差值,确定为第二数量M,M为正整数;在第一数据库中获取M条历史数据;将M条历史数据确定为多个待迁移数据。
例如,假设第一数量为800,预设迁移数量为1000,则可以确定第二数量M为200,可以在第一数据库中获取200条历史数据,并将200条历史数据确定为待迁移数据。
S306、根据至少一个预设字段,对多条原始数据进行筛选处理,得到多条目标数据。
针对任意一个目标数据,可以根据至少一个预设字段,在原始数据确定每个预设字段对应的字符,得到目标数据。
例如,假设原始数据1共有5个原始字段,分别为字段1-5,假设每个原始字段对应的字符可以如表1所示,假设至少一个预设字段为字段1、字段2和字段4,则目标数据1可以如表2所示。
表1
表2
进一步的,可以确定原始数据对应的目标溯源码的产品类型,根据数据类型,确定至少一个预设字段。
例如,产品类型可以为蔬菜、水果、海鲜和肉类等。
S307、根据预设迁移数量,确定多条目标数据对应的目标线程数量N。
S307的执行过程可以参见S204的执行过程,此处不再赘述。
S308、若目标线程数量N大于1,则根据目标线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据。
有一些实施例中,可以将多条目标数据对应的迁移时段划分为N个切分时段;确定每个线程对应的切分时段;针对任意一个切分时段,将切分时段对应的至少一条目标数据,确定为切分时段对应线程的至少一条目标数据。
例如,假设目标线程数量N为4,分别为线程1-4,假设迁移时段为2024年1月13日8:00-2024年1月14日18:00,则可以确定4个切分时段,分别为切分时段1-4,可以如表3所示,可以确定每个切分时段生成的至少一条目标数据,线程1可以处理切分时段1对应的至少一个目标数据,线程2可以处理切分时段2对应的至少一个目标数据,线程3可以处理切分时段3对应的至少一个目标数据,线程4可以处理切分时段4对应的至少一个目标数据。
表3
切分时段1 | 2024年1月13日8:00-10:00 |
切分时段2 | 2024年1月13日10:00-13:00 |
切分时段3 | 2024年1月13日13:00-16:00 |
切分时段4 | 2024年1月13日16:00-18:00 |
有一些实施例中,可以确定多条目标数据的当前数量,根据当前数量和目标线程数量,确定每个线程对应的处理数量,并根据处理数量确定每个线程对应的至少一个目标数据。
例如,假设当前数量为1000,假设目标线程数量为4,分别为线程1-4,则可以确定处理数量为250,则可以确定每个线程处理250条目标数据。
S309、通过每个线程对至少一个目标数据进行数据迁移处理,以实现将多条目标数据的迁移至目标数据库。
第一列表可以包括多个列族字段、以及至少一个行,每行对应一条目标数据。第一列表可以为对应溯源二维码对应农产品的溯源数据。
在数据迁移的过程中,可能存在其它线程已经在目标数据库中生成了目标数据对应的第一列表。
针对任意一个目标数据,可以判断目标数据库中是否存在目标数据对应的第一列表;若是,则将每个预设字段对应的字符存储至第一列表对应的列族字段;若否,则根据至少一个预设字段,生成第一列表,并将每个预设字段对应的字符存储至第一列表对应的列族字段。
进一步的,第一列表还包括默认列族,针对任意一个预设字段,若预设字段不存在对应的列族字段,则将预设字段对应的字符存储至默认列族。
例如,假设目标数据1为{预设字段1:字符31;预设字段2:字符32;预设字段3:字符33},假设目标数据1对应的第一列表为第一列表1,假设第一列表1可以如表4所示,假设预设字段1对应列族字段1,预设字段2对应列族字段2,假设预设字段3在第一列表中不存在对应的列族字段,则可以将字符31存储至第一列表1的第三行列族字段1列,将字符32存储至第一列表1的第三行列族字段2列,将字符33存储至第三行默认列族列。
表4
进一步的,可以周期性的生成数据迁移请求将第一数据库中产生的数据迁移至目标数据库。
本申请实施例提供的数据迁移方法,可以根据预设迁移数量,在第一数据库中确定多条目标数据,可以通过线程数量对多条目标数据进行切分处理,每个线程可以对至少一个目标数据进行迁移处理,可以提高数据迁移的效率。同时,可以通过更新数据迁移请求,实现在传输数据需求有所变化的时候时的数据迁移,无需重新开发脚本,提高了数据迁移的效率。
图4为本申请实施例提供的一种数据迁移方法的架构示意图。请参见图4,在接收数据迁移请求后,可以确定连接信息、迁移时段和预设迁移数量,可以连接信息访问第一数据库,在第一数据库中获取迁移时段额你的多条当前数据。
可以确定多条当前数据的第一数量,若第一数量大于或等于预设迁移数量,则可以将多条当前数据确定为多条原始数据;若第一数量小于预设迁移数量,则根据第一数量和预设迁移数量,确定多个待迁移数据,将多个待迁移数据和多条当前数据确定为多条原始数据。根据至少一个预设字段,对多条原始数据进行筛选处理,得到多条目标数据。
可以根据预设迁移数量,确定多条目标数据对应的目标线程数量,若目标线程数量N大于1,则根据目标线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据,通过每个线程对至少一个目标数据进行数据迁移处理,将多个目标数据的迁移至目标数据库。
图5为本申请提供的一种数据迁移方法的结构示意图。如图5所示,本实施例提供的数据迁移装置10可以包括接收模块11、访问模块12、第一确定模块13、第二确定模块14、切分处理模块15和迁移处理模块16:
接收模块11用于,接收数据迁移请求,数据迁移请求用于将多条原始数据从第一数据库迁移至目标数据库,数据迁移请求包括连接信息、迁移时段和预设迁移数量;
访问模块12用于,访问连接信息对应的第一数据库,并在第一数据库中获取迁移时段内生成的多条当前数据;
第一确定模块13用于,根据预设迁移数量和多条当前数据,确定多条目标数据,目标数据包括至少一个预设字段、以及每个预设字段对应的字符;
第二确定模块14用于,根据预设迁移数量,确定多条目标数据对应的目标线程数量N,N为正整数;
切分处理模块15用于,若目标线程数量N大于1,则根据目标线程数量N,对多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;
迁移处理模块16用于,通过每个线程对至少一个目标数据进行数据迁移处理,以实现将多条目标数据的迁移至目标数据库。
本申请实施例提供的数据迁移装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,第一确定模块11具体用于:
确定多条当前数据的第一数量;
根据第一数量和预设迁移数量,确定多条原始数据;
根据至少一个预设字段,对多条原始数据进行筛选处理,得到多条目标数据。
在一种可能的实施方式中,第一确定模块11具体用于:
若第一数量大于或等于预设迁移数量,则将多条当前数据确定为多条原始数据;
若第一数量小于预设迁移数量,则根据第一数量和预设迁移数量,确定多个待迁移数据,将多个待迁移数据和多条当前数据确定为多条原始数据。
在一种可能的实施方式中,第一确定模块11具体用于:
将预设迁移数量和第一数量的差值,确定为第二数量M,M为正整数;
在第一数据库中获取M条历史数据,历史数据为未迁移至目标数据库的数据;
将M条历史数据确定为多个待迁移数据。
在一种可能的实施方式中,切分处理模块15具体用于:
将多条目标数据对应的迁移时段划分为N个切分时段;
确定每个线程对应的切分时段;
针对任意一个切分时段,将切分时段对应的至少一条目标数据,确定为切分时段对应线程的至少一条目标数据。
在一种可能的实施方式中,针对任意一个线程;迁移处理模块16具体用于:
针对任意一个目标数据,判断目标数据库中是否存在目标数据对应的第一列表,第一列表包括多个列族字段;
若是,则将每个预设字段对应的字符存储至第一列表对应的列族字段;
若否,则根据至少一个预设字段,生成第一列表,并将每个预设字段对应的字符存储至第一列表对应的列族字段。
在一种可能的实施方式中,第一列表还包括默认列族;针对任意一个预设字段;迁移处理模块16具体用于:
若预设字段不存在对应的列族字段,则将预设字段对应的字符存储至默认列族。
在一种可能的实施方式中,第二确定模块14具体用于:
获取第一对应表,第一对应表包括多个迁移数量区间、以及每个迁移数据区间对应的线程数量;
在第一对应表中,确定预设迁移数量对应的目标数量区间;
将目标数量区间对应的线程数量确定为目标线程数量。
在一种可能的实施方式中,还包括生成模块17和发送模块18:
生成模块17用于,生成数据迁移请求对应的迁移结果,迁移结果包括传输结果、传输数量和传输时长;
发送模块18用于,向用户终端发送迁移结果。
本申请实施例提供的数据迁移装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。请参见图6,该电子设备20可以包括处理器21和存储器22。示例性地,处理器21、存储器22,各部分之间通过总线23相互连接。
存储器22存储计算机执行指令;
处理器21执行存储器22存储的计算机执行指令,使得处理器21执行如上述方法实施例所示的数据迁移方法。
相应地,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算机执行指令被处理器执行时用于实现上述方法实施例的数据迁移方法。
相应地,本申请实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法实施例所示的数据迁移方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种数据迁移方法,其特征在于,包括:
接收数据迁移请求,所述数据迁移请求用于将多条原始数据从第一数据库迁移至目标数据库,所述数据迁移请求包括连接信息、迁移时段和预设迁移数量;
访问所述连接信息对应的第一数据库,并在所述第一数据库中获取所述迁移时段内生成的多条当前数据;
根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,所述目标数据包括至少一个预设字段、以及每个预设字段对应的字符;
根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量N,所述N为正整数;
若所述目标线程数量N大于1,则根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;
通过每个线程对所述至少一个目标数据进行数据迁移处理,以实现将所述多条目标数据的迁移至所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,包括:
确定所述多条当前数据的第一数量;
根据所述第一数量和所述预设迁移数量,确定多条原始数据;
根据至少一个预设字段,对所述多条原始数据进行筛选处理,得到所述多条目标数据。
3.根据权利要求2所述的方法,其特征在于,根据所述第一数量和所述预设迁移数量,确定所述多条原始数据,包括:
若所述第一数量大于或等于预设迁移数量,则将所述多条当前数据确定为所述多条原始数据;
若所述第一数量小于所述预设迁移数量,则根据所述第一数量和所述预设迁移数量,确定多个待迁移数据,将所述多个待迁移数据和所述多条当前数据确定为所述多条原始数据。
4.根据权利要求3所述的方法,其特征在于,根据所述第一数量和所述预设迁移数量,确定多个待迁移数据,包括:
将所述预设迁移数量和所述第一数量的差值,确定为第二数量M,所述M为正整数;
在所述第一数据库中获取M条历史数据,所述历史数据为未迁移至目标数据库的数据;
将所述M条历史数据确定为所述多个待迁移数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据,包括:
将所述多条目标数据对应的迁移时段划分为N个切分时段;
确定每个线程对应的切分时段;
针对任意一个切分时段,将所述切分时段对应的至少一条目标数据,确定为所述切分时段对应线程的至少一条目标数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,针对任意一个线程;通过所述线程对至少一个目标数据进行数据迁移处理,包括:
针对任意一个目标数据,判断所述目标数据库中是否存在所述目标数据对应的第一列表,所述第一列表包括多个列族字段;
若是,则将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段;
若否,则根据所述至少一个预设字段,生成第一列表,并将所述每个预设字段对应的字符存储至所述第一列表对应的列族字段。
7.根据权利要求6所述的方法,其特征在于,所述第一列表还包括默认列族;针对任意一个预设字段;将所述预设字段对应的字符存储至所述第一列表对应的列族字段,包括:
若所述预设字段不存在对应的列族字段,则将所述预设字段对应的字符存储至所述默认列族。
8.根据权利要求1-7任一项所述的方法,其特征在于,根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量,包括:
获取第一对应表,所述第一对应表包括多个迁移数量区间、以及每个迁移数据区间对应的线程数量;
在第一对应表中,确定预设迁移数量对应的目标数量区间;
将目标数量区间对应的线程数量确定为目标线程数量。
9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:
生成所述数据迁移请求对应的迁移结果,所述迁移结果包括传输结果、传输数量和传输时长;
向用户终端发送所述迁移结果。
10.一种数据迁移装置,其特征在于,包括接收模块、访问模块、第一确定模块、第二确定模块、切分处理模块和迁移处理模块:
所述接收模块用于,接收数据迁移请求,所述数据迁移请求用于将多条原始数据从第一数据库迁移至目标数据库,所述数据迁移请求包括连接信息、迁移时段和预设迁移数量;
所述访问模块用于,访问所述连接信息对应的第一数据库,并在所述第一数据库中获取所述迁移时段内生成的多条当前数据;
所述第一确定模块用于,根据所述预设迁移数量和所述多条当前数据,确定多条目标数据,所述目标数据包括至少一个预设字段、以及每个预设字段对应的字符;
所述第二确定模块用于,根据所述预设迁移数量,确定所述多条目标数据对应的目标线程数量N,所述N为正整数;
所述切分处理模块用于,若所述目标线程数量N大于1,则根据所述目标线程数量N,对所述多条目标数据进行切分处理,得到每个线程对应的至少一个目标数据;
所述迁移处理模块用于,通过每个线程对所述至少一个目标数据进行数据迁移处理,以实现将所述多条目标数据的迁移至所述目标数据库。
11.一种电子设备,其特征在于,包括:存储器和处理器,
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至9任一项所述的数据迁移方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现权利要求1至9任一项所述的数据迁移方法。
13.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至9任一项所述的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411006561.2A CN118981459A (zh) | 2024-07-25 | 2024-07-25 | 数据迁移方法、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411006561.2A CN118981459A (zh) | 2024-07-25 | 2024-07-25 | 数据迁移方法、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118981459A true CN118981459A (zh) | 2024-11-19 |
Family
ID=93452320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411006561.2A Pending CN118981459A (zh) | 2024-07-25 | 2024-07-25 | 数据迁移方法、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118981459A (zh) |
-
2024
- 2024-07-25 CN CN202411006561.2A patent/CN118981459A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9953102B2 (en) | Creating NoSQL database index for semi-structured data | |
EP3299972B1 (en) | Efficient query processing using histograms in a columnar database | |
CN106202092B (zh) | 数据处理的方法及系统 | |
US8380680B2 (en) | Piecemeal list prefetch | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
CN106844288B (zh) | 一种随机字符串生成方法及装置 | |
CN110188100A (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111796993B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN106648839A (zh) | 数据处理的方法和装置 | |
CN117763024A (zh) | 一种数据分片抽取方法及装置 | |
CN118981459A (zh) | 数据迁移方法、电子设备、存储介质及程序产品 | |
CN111125087B (zh) | 数据的存储方法及装置 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN113794727B (zh) | 威胁情报特征库的生成方法、装置、存储介质及处理器 | |
US20160292282A1 (en) | Detecting and responding to single entity intent queries | |
CN107562533B (zh) | 一种数据加载处理方法及装置 | |
CN110968754B (zh) | 一种爬虫翻页策略的检测方法及装置 | |
CN106557469B (zh) | 一种处理数据仓库中数据的方法及装置 | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN110969181A (zh) | 数据推送方法及装置 | |
US20200117763A1 (en) | Relational interval tree with distinct borders | |
CN106776636A (zh) | 数据处理方法及装置 | |
CN118585133B (zh) | 数据库服务器的数据安全存储处理方法及系统 | |
US11120054B2 (en) | Hierarchical label generation for data entries |
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 |