一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据迁移方法及系统、存储介质、电子设备与流程

2021-10-27 20:18:00 来源:中国专利 TAG:迁移 电子设备 申请 数据 方法

一种数据迁移方法及系统、存储介质、电子设备
1.本技术是中国专利申请cn109063005a的分案申请,原申请的申请日为:2018年7月10日;申请号为:201810749595.9;发明创造名称为:一种数据迁移方法及系统、存储介质、电子设备。
技术领域
2.本发明涉及数据迁移领域,尤其涉及一种数据迁移方法及系统、存储介质、电子设备。


背景技术:

3.数据库中间件,是管理按照数据结构来组织、存储和管理数据的中间件系统;中间件用户可以通过数据库语言对数据库进行权限、数据结构的管理,以及数据的增删改查操作。随着应用系统支撑的业务量快速增长,数据库中间件容量和性能遇到瓶颈,无法支撑业务数据存储和业务服务读写操作;数据库技术的快速发展,推陈出新的技术提供更加优质的特性,例如分布式数据库相较于传统的重心化数据库具备无限水平扩容的能力;在业务需求和架构升级的诸多场景中,都存在对数据库中间件升级的需求。
4.数据库中间件升级本身是无状态的,只需要完成新中间件的升级安装即可,但是数据库承载的数据本身是有状态的,如何高效地、保证数据一致性地将数据迁移到新的数据库中间件,是数据库中间件升级过程需要解决的主要难题。当前的数据迁移通常是dba操作完成,其中,数据库管理员(database administrator),负责数据库中间件的系统管理(系统cpu、内存和物理存储资源监控和调配)、库表管理(数据库权限和表结构等)、数据管理(数据迁移、备份和归档等)等。
5.如图1所示的dba操作的数据迁移方法流程与如图2所示的数据迁移系统:
6.q1.新数据表数据清理。为了防止脏数据影响,例如上次校验失败的数据或是某些测试数据,通过删除并重建表,或是清空表数据的方式进行操作;
7.q2.老数据库表数据导出成数据文件。通过数据库自带的数据导出工具,例如mysql的export命令工具,导出生成数据文件,数据文件包含全量表数据;
8.q3.新数据库导入数据文件。通过数据库自带的数据导入工具,例如mysql的import命令工具,导入数据文件,在新数据库中新增数据记录;
9.q4.统计和抽样校验新老数据一致性。统计的常见方式为统计数据表记录数量、满足某种特征的表记录数量、记录某字段的汇总数值等,比较新老表统计指标是否一致;抽样的常见方式为抽样不同特征的数据记录,比较新老表中各字段是否一致;当核对不一致时,重新执行步骤q1到q4,直至步骤q4核对一致时数据迁移完成。
10.dba操作的数据迁移方案具有如下缺点:
11.1.数据库导入导出工具的强依赖,导致不适用于所有类型数据库,或者无法支撑大数据量迁移。当老数据库不存在导出工具,或者新数据库不存在导入工具,该迁移过程无法完成;当导入导出工具对数据文件大小存在限制时,可能需要分阶段迁移数据库,甚至无
法完成数据迁移。
12.2.新老数据一致性核对通过统计和抽样方式执行,核对效率或可行性存在问题,且核对成功无法严格保证数据一致。当表数据数量巨大时,对表进行统计耗时很长效率低下,甚至可能无法执行;核对成功时,可能存在负负得正的情况造成数据一致的误判,核对成功只能保证大概率一致。
13.3.核对不一致时,无法检查出差异数据和异常原因,可能是导出过程或者导入过程异常,所以需要重新导出数据文件和导入,需要反复消耗流程时间。
14.4.dba人工操作,效率低下,且可能存在人为失误。当需要迁移的表数据量巨大时,每个步骤的操作都非常耗时,步骤间串行执行耗费dba大量时间,效率低下,容易引发人为失误。


技术实现要素:

15.本发明正是基于上述技术问题至少之一,提出了一种数据迁移方法及系统、电子设备、存储介质,通过利用数据仓库清洗大数据的能力,核对新老数据的差异;数据仓库使用map reduce原理,对大数据清洗加工分而治之地并行计算,计算性能不会随着数据集合的增加而线性增加。通过数据仓库清洗的方式比对数据,可以快速、精准地比较出异常数据。本发明采用递归比对生成并回流差异数据集合,每次递归只回流差异数据,提升差错补偿的效率。通过精确获取差异数据集合,只需要将差异数据进行回流,不需要像传统方式那样所有步骤全量重新执行,每次递归不断缩小差异数据,大大提升迁移效率。
16.为达到上述目的,本发明提供一种数据迁移方法,包括以下步骤:
17.数据迁移准备,老数据库通过数据仓库同步工具进行数据同步,生成第一数据版本,新数据库表数据清理,清空新数据库内数据;
18.数据回流,先通过数据仓库同步工具回流第一数据版本或数据补丁至新数据库,后通过数据仓库同步工具将新数据库数据同步至数据仓库,生成第二数据版本;
19.数据补丁生成,对比所述第一数据版本与所述第二数据版本的数据差异,若存在差异,则生成数据补丁,若不存在差异,则无数据补丁生成;
20.数据迁移完成判断,判断是否存在数据补丁,若存在数据补丁,则跳转至数据回流,若不存在数据补丁,则数据迁移完成。
21.优选的,数据回流前还包括步骤:首次回流判断,判断第二数据版本中是否存在数据或是否存在,若第二数据版本中不存在数据或不存在,则判定为首次回流,数据回流中数据仓库同步工具回流第一数据版本至新数据库,若第二数据版本存在数据或存在,则判定为非首次回流,数据回流中数据仓库同步工具回流数据补丁至新数据库。
22.优选的,所述数据仓库采用map reduce原理将数据补丁生成任务分解成若干处理逻辑相同的任务单元,将处理完成后的所述任务单元合并输出最终结果集,得到数据补丁。
23.进一步的,所述数据差异采用离线数据仓库通过行级逐字段比对生成。
24.进一步的,所述数据补丁通过数据仓库执行sql脚本生成。
25.进一步的,清空新数据库内数据通过删除并新建表的方式或者直接清空表数据的方式实现。
26.一种数据迁移系统,包括数据仓库、对比单元、清理工具;所述数据仓库内置有同
步工具、用于存储数据的两独立存储区域,所述同步工具用于同步新数据库与老数据库的数据至存储区域内;其中,两独立存储区域分别为第一数据版本与第二数据版本,老数据库通过所述同步工具将数据同步至第一数据版本,新数据库通过所述同步工具将数据同步至第二数据版本;所述清理工具用于清理新数据库并清空新数据库内数据,所述对比单元用于比对所述第一数据版本与所述第二数据版本的数据差异并生成数据补丁;所述数据补丁通过所述同步工具同步至新数据库中。
27.优选的,所述数据仓库采用map reduce原理将数据补丁生成任务分解成若干处理逻辑相同的任务单元,将处理完成后的所述任务单元合并输出最终结果集,得到数据补丁。
28.优选的,所述数据差异采用离线数据仓库通过行级逐字段比对生成。
29.优选的,所述对比单元具体为sql脚本。
30.优选的,所述清理工具包括删除并新建表、直接清空表数据。
31.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种数据迁移方法。
32.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种数据迁移方法。
33.与现有技术相比,本发明的优势在于:
34.本发明提供一种数据迁移方法,包括步骤:数据迁移准备,老数据库通过数据仓库同步工具进行数据同步,生成第一数据版本,新数据库表数据清理,清空新数据库内数据;数据回流,先通过数据仓库同步工具回流第一数据版本或数据补丁至新数据库,后通过数据仓库同步工具将新数据库数据同步至数据仓库,生成第二数据版本;数据补丁生成,对比所述第一数据版本与所述第二数据版本的数据差异,若存在差异,则生成数据补丁,若不存在差异,则无数据补丁生成;数据迁移完成判断,判断是否存在数据补丁,若存在数据补丁,则跳转至数据回流,若不存在数据补丁,则数据迁移完成。本发明还涉及一种数据迁移系统、存储介质、电子设备。本发明克服导入导出工具的强依赖的缺点,采用数据数据仓库的数据同步回流工具,大数据同步和回流工具是独立于数据库的一种解决方案;同时克服核对效率或可行性、核对成功无法严格保证数据一致的缺点:数据同步回流工具一般都是同步读写,没有采用文件进行过渡,不会存在大数据时无法操作的问题;采用行级逐字段比对,核对成功可以保证数据完全一致。克服无法检查出差异数据和异常原因,规避操作反复消耗流程时间的缺点:本发明基于map reduce,借助离线数据仓库的清洗能力,可以精确比较出每一行字段差异,每次只需要再次补处理异常记录即可,逐步缩小异常数据集合,大大提升迁移效率。本发明克服dba人工操作,效率低下,且可能存在人为失误的缺点,数据迁移流程可以通过数据仓库的任务树串行执行,本发明通过系统实现高效、全自动地数据迁移。
35.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
36.下面结合附图和本发明的实施方式作进一步详细说明。
37.图1为一种传统的数据迁移方法流程图;
38.图2为图1的数据迁移系统示意图;
39.图3为本发明一种数据迁移方法流程示意图;
40.图4为本发明实施例1的一种数据迁移方法流程图;
41.图5为本发明实施例2的一种数据迁移方法流程图;
42.图6为本发明一种数据迁移系统示意图。
具体实施方式
43.为了使本发明的目的、技术方案及优点更加清除明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
44.一种数据迁移方法,如图3所示,包括以下步骤:
45.数据迁移准备,老数据库通过数据仓库同步工具进行数据同步,生成第一数据版本,新数据库表数据清理,清空新数据库内数据;
46.数据回流,先通过数据仓库同步工具回流第一数据版本或数据补丁至新数据库,后通过数据仓库同步工具将新数据库数据同步至数据仓库,生成第二数据版本;
47.数据补丁生成,对比所述第一数据版本与所述第二数据版本的数据差异,若存在差异,则生成数据补丁,若不存在差异,则无数据补丁生成;
48.数据迁移完成判断,判断是否存在数据补丁,若存在数据补丁,则跳转至数据回流,若不存在数据补丁,则数据迁移完成。
49.本发明利用数据仓库清洗大数据的能力,核对新老数据的差异,数据仓库使用map reduce原理,对大数据清洗加工分而治之地并行计算,计算性能不会随着数据集合的增加而线性增加,使得数据迁移流程可以通过数据仓库的任务树串行执行;通过数据仓库清洗的方式比对数据,可以快速、精准地比较出异常数据。递归比对生成并回流差异数据集合,每次递归只回流差异数据,提升差错补偿的效率;通过精确获取差异数据集合,不需要像传统方式那样所有步骤全量重新执行,每次递归不断缩小差异数据,大大提升迁移效率。
50.其中,map是一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(例如有人发现所有学生的成绩都被高估了一分,它可以定义一个"减一"的映射函数,用来修正这个错误。)。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案;这就是说,map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。reduce即化简操作指的是对一个列表的元素进行适当的合并(例如,如果有人想知道班级的平均分该怎么做?它可以定义一个化简函数,通过让列表中的元素跟自己的相邻的元素相加的方式把列表减半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分。)。虽然不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。map reduce通过对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的返回它所完成的工作和最新的状态。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同google file system中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲
突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。
51.map reduce提供了以下的主要功能:
52.1)数据划分和计算任务调度:
53.系统自动将一个作业(job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(task),并自动调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(map节点或reduce节点),同时负责监控这些节点的执行状态,并负责map节点执行的同步控制。
54.2)数据/代码互定位:
55.为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻找可用节点以减少通信延迟。
56.3)系统优化:
57.为了减少数据通信开销,中间结果数据进入reduce节点前会进行一定的合并处理;一个reduce节点所处理的数据可能会来自多个map节点,为了避免reduce计算阶段发生数据相关性,map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选最快完成者作为结果。
58.4)出错检测和恢复:
59.以低端商用服务器构成的大规模map reduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件出错是常态,因此map reduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提高数据存储的可靠性,并能及时检测和恢复出错的数据。
60.实施例1,如图4所示,一种数据迁移方法包括以下步骤:
61.s11、老数据库数据同步至数据仓库;通过数据仓库同步工具,将老数据库表数据同步到数据仓库,假定该版本为数据仓库数据版本a。
62.s21、新数据库表数据清理;清理新数据库表数据,通过删除并新建表的方式,或者直接清空表数据的方式建立新数据库;例如mysql中采用drop、truncate、delete或者采用php脚本删除数据表后再利用create或者php脚本创建数据表。
63.s3、通过数据仓库同步工具回流数据或数据补丁至新数据库;通过数据仓库同步工具将数据仓库数据版本a(若存在数据补丁时为数据补丁)同步回流到新数据库中。其中,数据仓库内的核心组件etl即作为同步工具,分别代表:提取extraction、转换transformation、加载load;其中,提取过程表示操作型数据库搜集指定数据,转换过程表示将数据转化为指定格式并进行数据清洗保证数据质量,加载过程表示将转换过后满足指定格式的数据加载进数据仓库。数据仓库会周期不断地从源数据库提取清洗好了的数据。
64.s4、通过数据仓库同步工具将新数据库数据同步至数据仓库;通过数据仓库同步工具,将新数据库表数据同步到数据仓库,假定该版本为数据仓库数据版本b。
65.s5、对比数据仓库新老数据数据差异生成数据补丁;比对数据仓库数据版本a和数据仓库数据版本b,生成数据补丁。数据仓库采用map reduce原理将数据补丁生成任务分解
成若干处理逻辑相同的任务单元,将处理完成后的任务单元合并输出最终结果集,得到数据补丁;通常在数据仓库执行sql脚本生成数据补丁,以表字段[id(主键标识),content(内容)]为例:
[0066]
select id1,c1 from(
[0067]
select a.id id1,a.content content1,b.id id2,b.content content2
[0068]
from数据版本a a
[0069]
left outer join数据版本b b
[0070]
on a.id=b.id
[0071]
)g
[0072]
where g.id2 is null;其中,content的数据差异采用离线数据仓库通过行级逐字段比对,每次只需要再次补处理异常记录即可,逐步缩小异常数据集合,大大提升迁移效率。
[0073]
s6、判断数据补丁,若存在数据补丁,则跳转至s3,若不存在数据补丁,则数据迁移完成。
[0074]
实施例2,如图5所示,一种数据迁移方法包括以下步骤:
[0075]
s12、新数据库表数据清理;清理新数据库表数据,通过删除并新建表的方式,或者直接清空表数据的方式建立新数据库;例如mysql中采用drop、truncate、delete或者采用php脚本删除数据表后再利用create或者php脚本创建数据表。
[0076]
s22、老数据库数据同步至数据仓库;通过数据仓库同步工具,将老数据库表数据同步到数据仓库,生成数据仓库的第一数据版本。应当理解,新数据库表数据清理与老数据库数据同步至数据仓库之间相对隔离,不存在时间或者程序上的顺序限制关系。
[0077]
s23、首次回流判断,判断第二数据版本中是否存在数据或是否存在,若第二数据版本中不存在数据或不存在,则判定为首次回流,跳转至s31,若第二数据版本存在数据或存在,则判定为非首次回流,跳转至s32。首次回流判断相当于先验,通过校验第二数据版本数据来判定回流的类型,当然,在首次回流中,也可定义第二数据版本为空,第一数据版本与第二数据版本的差异为整个,第一数据版本,即数据补丁为整个第一数据版本。
[0078]
s31、通过数据仓库同步工具回流第一数据版本至新数据库;通过数据仓库同步工具将第一数据版本同步回流到新数据库中。
[0079]
s32、通过数据仓库同步工具回流数据补丁至新数据库;通过数据仓库同步工具将数据补丁同步回流到新数据库中。
[0080]
其中,数据仓库内的核心组件etl即作为同步工具,分别代表:提取extraction、转换transformation、加载load;其中,提取过程表示操作型数据库搜集指定数据,转换过程表示将数据转化为指定格式并进行数据清洗保证数据质量,加载过程表示将转换过后满足指定格式的数据加载进数据仓库。数据仓库会周期不断地从源数据库提取清洗好了的数据。
[0081]
s4、通过数据仓库同步工具将新数据库数据同步至数据仓库;通过数据仓库同步工具,将新数据库表数据同步到数据仓库,生成数据仓库的第二数据版本。
[0082]
s5、对比数据仓库新老数据数据差异生成数据补丁;比对数据仓库的第一数据版本和第二数据版本,生成数据补丁。数据仓库采用map reduce原理将数据补丁生成任务分
解成若干处理逻辑相同的任务单元,将处理完成后的任务单元合并输出最终结果集,得到数据补丁;通常在数据仓库执行sql脚本生成数据补丁,以表字段[id(主键标识),content(内容)]为例:
[0083]
select id1,c1 from(
[0084]
select a.id id1,a.content content1,b.id id2,b.content content2
[0085]
from第一数据版本a a
[0086]
left outer join第二数据版本b b
[0087]
on a.id=b.id
[0088]
)g
[0089]
where g.id2 is null;其中,content的数据差异采用离线数据仓库通过行级逐字段比对,每次只需要再次补处理异常记录即可,逐步缩小异常数据集合,大大提升迁移效率。
[0090]
s6、判断数据补丁,若存在数据补丁,则跳转至s23,若不存在数据补丁,则数据迁移完成。
[0091]
一种数据迁移系统,如图6所示,包括数据仓库、对比单元、清理工具;所述数据仓库内置有同步工具、用于存储数据的两独立存储区域,所述同步工具用于同步新数据库与老数据库的数据至存储区域内;其中,两独立存储区域分别为第一数据版本与第二数据版本,老数据库通过所述同步工具将数据同步至第一数据版本,新数据库通过所述同步工具将数据同步至第二数据版本;所述清理工具用于清理新数据库并清空新数据库内数据,所述对比单元用于比对所述第一数据版本与所述第二数据版本的数据差异并生成数据补丁;所述数据补丁通过所述同步工具同步至新数据库中。
[0092]
优选的,所述数据仓库采用map reduce原理将数据补丁生成任务分解成若干处理逻辑相同的任务单元,将处理完成后的所述任务单元合并输出最终结果集,得到数据补丁。
[0093]
优选的,所述数据差异采用离线数据仓库通过行级逐字段比对生成。
[0094]
优选的,所述对比单元具体为sql脚本。
[0095]
优选的,所述清理工具包括删除并新建表、直接清空表数据。
[0096]
一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述一种数据迁移方法。
[0097]
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述一种数据迁移方法。
[0098]
本发明提供一种数据迁移方法,包括步骤:数据迁移准备,老数据库通过数据仓库同步工具进行数据同步,生成第一数据版本,新数据库表数据清理,清空新数据库内数据;数据回流,先通过数据仓库同步工具回流第一数据版本或数据补丁至新数据库,后通过数据仓库同步工具将新数据库数据同步至数据仓库,生成第二数据版本;数据补丁生成,对比所述第一数据版本与所述第二数据版本的数据差异,若存在差异,则生成数据补丁,若不存在差异,则无数据补丁生成;数据迁移完成判断,判断是否存在数据补丁,若存在数据补丁,则跳转至数据回流,若不存在数据补丁,则数据迁移完成。本发明还涉及一种数据迁移系统、存储介质、电子设备。本发明克服导入导出工具的强依赖的缺点,采用数据数据仓库的数据同步回流工具,大数据同步和回流工具是独立于数据库的一种解决方案;同时克服核
对效率或可行性、核对成功无法严格保证数据一致的缺点:数据同步回流工具一般都是同步读写,没有采用文件进行过渡,不会存在大数据时无法操作的问题;采用行级逐字段比对,核对成功可以保证数据完全一致。克服无法检查出差异数据和异常原因,规避操作反复消耗流程时间的缺点,本发明基于map reduce,借助离线数据仓库的清洗能力,可以精确比较出每一行字段差异,每次只需要再次补处理异常记录即可,逐步缩小异常数据集合,大大提升迁移效率。克服dba人工操作,效率低下,且可能存在人为失误的缺点,数据迁移流程可以通过数据仓库的任务树串行执行,本发明通过系统实现高效、全自动地数据迁移。
[0099]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0100]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜