数据迁移方法、装置、设备及计算机存储介质与流程

文档序号:21848078发布日期:2020-08-14 17:16阅读:116来源:国知局
本发明涉及金融科技(fintech)的测试
技术领域
:,尤其涉及数据迁移方法、装置、设备及计算机存储介质。
背景技术
::随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。目前互联网的爆炸式数据增长会导致对海量数据的存储有迫切需求,由于传统的mysql(关系型数据库管理系统)、orcal(关系型数据库)在百万级的数据能提供很好的事务能力和读写性能,但随着数据量的增加,它的性能急剧下降。而hbase(开源数据库)是基于googlebigtable(分布式存储系统)的开源实现,适合海量的数据存储,和较好的随机读写能力,故hbase在海量数据的存储方面具有非常典型的应用场景。但由于机房的idc(internetdatacenter,互联网数据中心)变化和业务需求引起集群迁移会给大数据的维护人员造成很大的挑战,传统的数据迁移方案有的会造成业务停服待集群数据追平后再进行业务写入,有的会涉及到客户端改造,将迁移窗口期间的数据进行缓存,待存量迁移完成后,再由客户端回放数据追平。因此,如何在业务不停服的同时,进行数据的迁移成为了目前亟待解决的技术问题。技术实现要素:本发明的主要目的在于提出一种数据迁移方法、装置、设备及计算机存储介质,旨在解决如何在业务不停服的同时,进行数据的迁移的技术问题。为实现上述目的,本发明提供一种数据迁移方法,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括原有集群和目标集群,所述原有集群包括主集群和备集群,所述数据迁移方法包括如下步骤:将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。可选地,检测所述快照数据是否满足预设检测条件的步骤,包括:获取所述备集群的存量数据,检测所述快照数据是否和所述存量数据匹配;若所述快照数据和所述存量数据不匹配,则获取所述备集群中快照迁移前所在的历史文件,并获取所述目标集群中快照所在的线程文件,检测所述历史文件和所述现存文件是否匹配;若所述历史文件和所述现存文件不匹配,则确定所述快照数据不满足预设检测条件。可选地,将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复的步骤,包括:控制所述备集群中具有所述数据的表处于禁止状态,并根据输入的迁移指令将所述快照迁移至所述目标集群,将所述快照中的数据恢复至所述目标集群的工作目录,将具有所述快照中的数据的工作目录作为快照数据。可选地,检测所述目标集群中的增量数据是否完整的步骤,包括:基于预设时间戳获取所述备集群的备集群数据,并获取所述目标集群的目标集群数据,校验所述备集群数据和所述目标集群数据之间的差异数据;根据所述差异数据对所述备集群数据进行过滤,并检测所述过滤后的备集群数据是否和所述目标集群数据匹配;若匹配,则确定所述目标集群中的增量数据完整。可选地,基于所述备集群中的数据创建快照的步骤,包括:对所述备集群中的数据进行加锁,以获取加锁数据,将所述加锁数据刷盘到所述备集群中的hfile文件,并对具有所述加锁数据的hfile文件创建引用指针,根据所述引用指针创建快照。可选地,基于所述快照获取所述备集群中的增量数据的步骤,包括:确定所述快照在所述备集群中所有数据的数据节点,根据所述数据节点对所述备集群中的所有数据进行回放,以获取所述备集群中的增量数据。可选地,将所述主集群中业务系统写入的数据实时复制到所述备集群的步骤,包括:将所述主集群中的表结构复制到所述备集群,并检测所述备集群接收的表结构中是否存在业务系统写入的数据;若存在,则执行所述基于所述备集群中的数据创建快照的步骤;若不存在,则对所述主集群中的复制机制进行修正,并输出未复制成功的提示信息。此外,为实现上述目的,本发明还提供一种数据迁移装置,所述数据迁移装置包括:复制模块,用于将主集群中业务系统写入的数据实时复制到备集群,并基于所述备集群中的数据创建快照;恢复模块,用于将所述快照迁移到目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;检测模块,用于若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;确定模块,用于若完整,则确定原有集群中的数据已完全迁移至所述目标集群。此外,为实现上述目的,本发明还提供一种数据迁移设备,所述数据迁移设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如上所述的数据迁移方法的步骤。此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如上所述的数据迁移方法的步骤。本发明通过将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。通过原有集群划分为主集群和备集群,再将主集群中业务系统写入的数据实时复制到备集群,并对备集群创建快照,再将快照迁移到目标集群,从而可以避免影响到业务系统和主集群之间的服务交流,保障了在业务系统写入原有集群的数据不间断的情况下,又能将原有集群中的数据迁移到目标集群,并且在将快照复制到目标集群后,还会获取原有集群中的增量数据,并将增量数据迁移到目标集群,从而保障了将原有集群中的所有数据都迁移到目标集群,使得业务系统在原有集群将所有数据迁移到目标集群后,能无缝直接切换到目标集群,避免了现有技术中在进行数据迁移时,会造成业务系统停止服务的现象发生。附图说明图1是本发明实施例方案涉及的硬件运行环境的数据迁移设备结构示意图;图2为本发明数据迁移方法第一实施例的流程示意图;图3为本发明数据迁移装置的装置模块示意图;图4为本发明数据迁移方法中快照创建的流程示意图;图5为本发明数据迁移方法的流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的数据迁移设备结构示意图。本发明实施例数据迁移设备可以是pc机或服务器设备,其上运行有java虚拟机。如图1所示,该数据迁移设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的数据迁移设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据迁移程序。在图1所示的数据迁移设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据迁移程序,并执行下述数据迁移方法中的操作。基于上述硬件结构,提出本发明数据迁移方法实施例。参照图2,图2为本发明数据迁移方法第一实施例的流程示意图,所述方法包括:步骤s10,将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;在本实施例中,数据迁移方法应用于数据迁移系统,数据迁移系统包括原有集群和目标集群。原有集群包括主集群和备集群。并且本实施例中的相关术语解释如下:hadoop是一个能够对大量数据进行分布式处理的软件框架。并且hadoop包括四个模块,即common:支持其他模块的公共工具;hdfs:提供高吞吐访问性能的分布式文件系统;yarn:提供作业调度和集群资源管理的框架;mapreduce:大数据并行计算框架,简称mr。hbase是一个开源的非关系型分布式数据库(nosql)。并且hbase对数据存储管理包括两方面:一是元数据的管理、二是数据的管理。其中,元数据是hbase将相应的region信息存储在meta表中,客户端的读写每次都会先读meta表找到响应region所在的server,进而通过rpc直接进行读写操作。并且hbase的数据存储在hdfs中,以严格的字典序、以hfile为最小文件单元存储。在本实施例中,再将主集群中业务系统写入的数据实时复制到备集群时,需要先开启主集群中的regplication(复制)创建dest(目的)集群表结构,并采用enable_table_replication的形式将sourcehbase集群的表结构同步(即复制)至备集群。再开启主集群和备集群的replication(addpeer)命令,并通过观察预设页面(如hbaseweb60010页面),观察是否有相应tps(系统吞吐量)写入备集群,即检测是否有数据写入到备集群,若有,则读写此相应tps,并确定主集群中的regplication功能正常。若没有数据写入到备集群,则检测相应的regplication机制是否正常,不正常就进行修正。并在确定备集群中有写入数据后,需要清理hbase数据,并保留主集群中的原有数据分区。再在备集群中通过snapshot快照创建source集群表快照,并通过对此集群表进行如图4所示的加锁,刷判断,创建指针等操作,来创建海量(可达到pb级别)数据的快照,并保留截止当前时刻的存量数据,即确定备集群中快照对应的数据节点。步骤s20,将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;当快照创建成功后,可以通过hadoopmrexportsnaphost(迁移快照)将快照导出到dest集群(即目标集群)。并且,exportsnaphost是底层采用distcp的形式传输hdfs文件,因此可以通过控制mappers(映射器)和bandwidth(带宽)来控制相应的hdfs数据传输速度,并且由于是采用分布式传输的方式,因此可以去掉-no-checksum-verify和-no-target-verify,并检查传输前后的checksum(校验和),以确保传输过程中不存在数据丢失或者数据错乱的现象发生。当目标集群收到备集群发送的快照后,可以采用恢复快照技术来恢复快照的快照内容,即对快照进行数据恢复,以获取快照数据。并且恢复快照技术为创建快照的逆操作,并且在恢复快照时,需要将提前在目标集群中创建的表设置为diable状态,并通过restore_snapshot将快照中的元数据信息恢复至当前hbase集群,待hbase进行合并时,才会将相应快照中的hfile逐步的移动至当前hbase中的工作目录。至此,存量数据恢复完成,由于存量数据的迁移是保证当前原集群正常业务运行做操的,故不会影响业务。当获取到大量的数据迁移,且不需要业务进行暂停服务后,还需要进一步验证传递过来的快照数据的完整性,即检测快照数据是否满足预设检测条件(可以为用户设置的任意条件,在本实施例中优选的,是检测快照数据的完整性)。并且由于hbase(集群)中的数据是来自于hive(数据仓库),因此可以通过对比hive数据仓库中的数据和目标集群中的数据进行校验,并由于快照在进行迁移完成后也会校验迁移前后的hdfs的文件(即快照所在文件)完整性,并在这两个校验都通过时,则可以确定快照数据满足预设检测条件。其中,在hive中通过统计总行数和hbase通过以下mr任务统计行数进行比对:hbaseorg.apache.hadoop.hbase.mapreduce.rowcounter‘table’:usage:rowcounter[options]<tablename>[--starttime=[start]--endtime=[end][--range=[startkey],[endkey]][<column1><column2>...]forperformanceconsiderthefollowingoptions:-dhbase.client.scanner.caching=100-dmapreduce.map.speculative=false步骤s30,若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;当经过判断发现快照数据不满足预设检测条件时,也就是在原有集群中仍然有业务系统写入数据时,就可以在flush(清空)到磁盘hdfswallog时,在zk中记录相应的目录和hdfswallog文件id,由于已将原有集群中的大部分数据通过快照的方式迁移到目标集群中,因此在快速时间节点之后产生的数据并不会很多,此时就可以按照相应的wallog格式标准将数据序列化顺序存放在hdfs上(即确定增量数据),并通过回放的方式在目标hbase集群中将数据重写,即将增量数据迁移到目标集群。并且在source原有集群查找相应的主备replicationpeer,并enable(允许),回放相应堆积在source集群的wallog数据文件,相应wallog文件存储在hdfs上,具体的文件目录管理是存放在zookeeper中相应的peer目录下。再通过观察hbaseweb60010观察是否有相应的数据在正常回放至目标hbase集群,待目标集群tps和原有集群tps相差无误时,则意味着增量数据已和原有集群相同。并在目标集群获取到增量数据后,还需要检测目标集群中的增量数据是否完整,并根据不同的检测结果执行不同的操作。但是当快照数据满足预设检测条件时,则可以确定已将原有集群中的所有数据都迁移到目标集群了。其中,可以通过改进的wbverifyreplicationmr工具验证增量数据完整性。即wbverifyreplication可指定-slaveclusterkeytargetslaveclusterkey可直接忽略掉-peer信息,直接设置另一被比较集群的zookeeper地址,解决不能比对非replication的集群。而且对于设置了ttl的数据比对源码缺陷,可通过二次重校验的形式避免,由于在scan的时候根据时间进行扫描,会过滤掉最终数据在输出时的ttl校验,所以在源码中新增了如果在校验失败的情况下,再次进行二次校验,并采用get的形式。因为get会在最终返回结果的时候,在服务端内存中根据表的ttl会进行过滤。并且改进后的wbverifyreplication可以通过时间很好的校验当前迁移前和迁移后的增量数据完整性。也就是在本实施例中是直接将目标集群中的增量数据和备集群中的增量数据进行对比,以确定备集群中的数据是否全部迁移到目标集群。步骤s40,若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。当经过判断发现目标集群中的增量数据完整时,就可以直接确定原有集群中的数据已完全迁移至目标集群,可以通知业务系统直接无缝切换到新集群,正常提供服务。但是若目标集群中的增量数据不完整,则需要继续进行数据迁移操作。另外,为辅助理解本实施例中的数据迁移的原理的理解,下面进行举例说明。例如,如图5所示,数据迁移系统包括原有集群hbase集群source和目标集群hbase集群destination,及多zookeeper(分布式应用程序)协调集群,并且在采用enable_table_replication的形式同步表结构是,确定peer(身份)01,wallog(用户)或peer02等,并观察是否有相应tps(系统吞吐量)写入备集群,若无,则暂停同步,并对主集群中的replication机制进行修正,再清理目标集群中htable(线程)的hbase数据。再创建快照(即加锁(禁止更新、添加等操作)、hdfs创建目录,并生成相应描述信息,再进行刷盘操作,即刷新memstore中的数据到hfile,并为hfile文件创建引用指针,释放表级锁)。再通过export导出快照到目标集群,并在目标集群中恢复快照,即先disablie(禁用)表,再进行restore_snapshot(快照恢复),并自动启动enable表。并在快照数据导出后,验证存量快照数据,若快照数据完整,且备集群中存在增量数据,则回放增量wallog到目标集群,并验证增量数据。在本实施例中,通过将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。通过原有集群划分为主集群和备集群,再将主集群中业务系统写入的数据实时复制到备集群,并对备集群创建快照,再将快照迁移到目标集群,从而可以避免影响到业务系统和主集群之间的服务交流,保障了在业务系统写入原有集群的数据不间断的情况下,又能将原有集群中的数据迁移到目标集群,并且在将快照复制到目标集群后,还会获取原有集群中的增量数据,并将增量数据迁移到目标集群,从而保障了将原有集群中的所有数据都迁移到目标集群,使得业务系统在原有集群将所有数据迁移到目标集群后,能无缝直接切换到目标集群,避免了现有技术中在进行数据迁移时,会造成业务系统停止服务的现象发生。进一步地,基于本发明数据迁移方法第一实施例,提出本发明数据迁移方法第二实施例。本实施例是本发明第一实施例的步骤s20,检测所述快照数据是否满足预设检测条件的步骤之后,包括:步骤a,获取所述备集群的存量数据,检测所述快照数据是否和所述存量数据匹配;在本实施例中,当将快照已迁移到目标集群,并进行快照恢复后,需要对恢复的快照数据进行检测,即检测备集群中的数据是否已全部迁移到目标集群。因此可以获取备集群对应的数据仓库中的存量数据(即当前时刻备集群已存储的所有数据),并检测快照数据是否和存量数据匹配,再基于不同的检测结果执行不同的操作。步骤b,若所述快照数据和所述存量数据不匹配,则获取所述备集群中快照迁移前所在的历史文件,并获取所述目标集群中快照所在的线程文件,检测所述历史文件和所述现存文件是否匹配;当经过判断发现快照数据和存量数据不匹配,则获取备集群中快照在进行迁移前所在的hdfs文件(即历史文件)。并获取目标集群中快照所在的hdfs文件(即现存文件),再检测历史文件和现存文件是否匹配,并根据不同的检测结果执行不同的操作。但是若快照数据和存量数据匹配,则确定备集群中的所有数据已全部迁移到目标集群,此时还需要检测历史文件和现存文件是否匹配。步骤c,若所述历史文件和所述现存文件不匹配,则确定所述快照数据满足预设检测条件。当经过判断发现历史文件和现存文件不匹配时,则可以确定快照数据不满足预设检测条件。但是若历史文件和现存文件匹配,也确定快照数据不满足预设检测条件。也就是在本实施例中,只有当快照数据和存量数据匹配,且历史文件和现存文件也匹配时,才能够确定快照数据满足预设检测条件。若快照数据和存量数据不匹配,或者历史文件和现存文件也不匹配时,则确定快照数据不满足预设检测条件。在本实施例中,通过在备集群的存量数据和快照数据不匹配时,检测快照迁移前所在的历史文件和快照迁移后所在的现存文件是否匹配,并在匹配时,确定快照数据不满足预设检测条件,从而保障了迁移到目标集群中的快照数据的完整性。进一步地,将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复的步骤,包括:步骤d,控制所述备集群中具有所述数据的表处于禁止状态,并根据输入的迁移指令将所述快照迁移至所述目标集群,将所述快照中的数据恢复至所述目标集群的工作目录,将具有所述快照中的数据的工作目录作为快照数据。在本实施例中,当准备将备集群中的快照迁移至目标集群时,可以先控制备集群中具有数据的表处于禁止状态(即禁止备集群中的读操作或写操作)。并根据用户手动输入或根据其它设备输入的迁移指令将备集群中的快照迁移至目标集群,并且在迁移的过程中,exportsnaphost是底层采用distcp的形式传输hdfs文件,因此可以通过控制mappers和bandwidth来控制相应的hdfs数据传输速度。在将快照迁移至目标集群后,可以通过快照恢复技术将快照中的数据恢复至目标集群的工作目标,并将具有快照中的数据的工作目录作为快照数据。在本实施例中,通过进行快照迁移前,先控制备集群处于禁止状态,再根据迁移指令将快照迁移至目标集群,并进行数据恢复,得到快照数据,从而保障了获取到的快照数据的准确性。进一步地,检测所述目标集群中的增量数据是否完整的步骤,包括:步骤p,基于预设时间戳获取所述备集群的备集群数据,并获取所述目标集群的目标集群数据,校验所述备集群数据和所述目标集群数据之间的差异数据;在本实施例中,在对增量数据进行检测时,可以通过改进的wbverifyreplicationmr工具验证增量数据完整性,通过提前制定时间范围进行验证备集群的数据(即备集群数据)和目标集群的数据(即目标集群数据)是否匹配。也就是通过预设时间戳来获取备集群中的备集群数据和目标集群的目标集群数据,然后再检测备集群数据和目标集群数据是否匹配。若不匹配,则可以确定备集群数据中存在各种无用数据、过期数据等,再获取备集群数据和目标集群数据之间的差异数据。步骤x,根据所述差异数据对所述备集群数据进行过滤,并检测所述过滤后的备集群数据是否和所述目标集群数据匹配;当获取到差异数据后,就可以对增量数据进行二次校验,即根据此差异数据对备集群数据进行过滤处理,以过滤掉备集群数据中的过期数据、无用数据等,然后再将过滤后的备集群数据和目标集群数据进行匹配,并基于不同的匹配结果执行不同的操作。需要说明的是,在进行二次校验时,会采用get的形式,并通过备集群与改进的wbverifyreplicationmr工具的接口和差异数据再次获取过滤后的备集群数据。步骤y,若匹配,则确定所述目标集群中的增量数据完整。当经过判断发现过滤后的备集群数据和目标集群数据匹配时,则确定目标集群中的增量数据完整。若不匹配,则确定目标集群中的增量数据不完整。另外,对增量数据进行两次校验的代码程序可以采用如下方式进行:在本实施例中,通过根据预设时间戳校验备集群和目标集群数据之间的差异数据,并根据差异数据对备集群数据进行过滤,并在过滤后的备集群数据和目标集群数据匹配时,确定目标集群中的增量数据完整。进一步地,基于所述备集群中的数据创建快照的步骤,包括:步骤e,对所述备集群中的数据进行加锁,以获取加锁数据,将所述加锁数据刷盘到所述备集群中的hfile文件,并对具有所述加锁数据的hfile文件创建引用指针,根据所述引用指针创建快照。在本实施例中,可以通过snapshot快照创建source集群表快照,并通过对备集群中的数据进行加锁,得到加锁后的数据(即加锁数据),将加锁数据同步到备集群中的hfile文件(即将加锁数据刷盘到备集群中的hfile文件),再对具有加锁数据的hfile文件创建引用指针,并释放表级锁,以生成快照。即将snapshotdescription对象序列化写入到hdfs://parent/hbase/.hbase-snapshot/.tmp/photosnapshot目录的.snapshotinfo文件中,进而photo表的最新的.tableinfo拷到hdfs://parent/hbase/.hbase-snapshot/.tmp/photosnapshot/.tabledesc/目录下,名字命名为.tableinfo.0000000001,然后会通过从metaregion中获取photo表的所有region信息和所在regionserver信息并直至结束,最后会调用completesnapshot将真正工作目录workingdir改正hdfs://parent/hbase/.hbase-snapshot/photosnapshot。至此快照建立完成。在本实施例中,通过对备集群中的数据进行加锁,刷盘,创建引用指针,并根据引用指针创建快照,从而保障了快照的准确性。进一步地,基于所述快照获取所述备集群中的增量数据的步骤,包括:步骤f,确定所述快照在所述备集群中所有数据的数据节点,根据所述数据节点对所述备集群中的所有数据进行回放,以获取所述备集群中的增量数据。在本实施例中,当将快照迁移到目标集群,且对快照的完整性检测成功后,还需要在备集群中确定快照在备集群中所有数据的数据节点(即可以根据获取快照的时间来确定进行快照操作的数据节点),并在确定数据节点后,确定自此数据节点之后是否有产生新的数据,并可以通过对备集群中的所有数据进行回放的方式,将数据节点之后产生的新的数据(即增量数据)迁移到目标集群。即可以按照相应的wallog格式标准将数据序列化顺序存放在hdfs上,并通过回放的方式在目标hbase集群将数据重写如集群,所以在source原有集群查找相应的主备replicationpeer,并enable(允许),回放相应堆积在source集群的wallog数据文件,相应wallog文件存储在hdfs上,具体的文件目录管理是存放在zookeeper中相应的peer目录下。在本实施例中,通过确定快照的数据节点,并根据数据节点进行回放,以获取增量数据,从而保障了获取到的增量数据的准确性。进一步地,将所述主集群中业务系统写入的数据实时复制到所述备集群的步骤,包括:步骤h,将所述主集群中的表结构复制到所述备集群,并检测所述备集群接收的表结构中是否存在业务系统写入的数据;在本实施例中,由于原有集群包括主集群和备集群,并且是将主集群的数据复制到备集群,并将备集群中的数据迁移到目标集群的,从而保障,业务系统和原有集群进行正常的服务的同时,又能完成原有集群和目标集群的数据迁移操作。因此,需要先将主集群中的表结构复制到备集群,并在业务系统将数据写入主集群时,会同步复制此数据到备集群对应的表结构中。因此需要在主集群中的表结构迁移到备集群,且业务系统已开始往主集群中写入数据时,检测备集群中的表结构是否存在业务系统写入的数据,并根据不同的检测结果执行不同的操作。步骤m,若存在,则执行所述基于所述备集群中的数据创建快照的步骤;当经过判断发现备集群接收的表结构中存在业务系统写入的数据时,则确定主集群已成功将表结构复制到备集群,且成功复制到主集群中的数据,此时就可以执行后续的基于备集群中的数据创建快照的操作。步骤n,若不存在,则对所述主集群中的复制机制进行修正,并输出未复制成功的提示信息。若备集群中接收到的表结构中不存在业务系统写入的数据时,则需要检测主集群中的replication(复制)机制是否正常,若不正常,则对其进行修正,并输出未复制成功的提示信息。在本实施例中,通过在备集群中的表结构中不存在业务系统写入的数据时,对复制机制进行修正,并输出相应的提示信息,从而保障了备集群中能获取到准确的数据,方便后续的数据迁移操作。本发明还提供一种数据迁移装置,参照图3,所述数据迁移装置包括:复制模块a10,用于将主集群中业务系统写入的数据实时复制到备集群,并基于所述备集群中的数据创建快照;恢复模块a20,用于将所述快照迁移到目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;检测模块a30,用于若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;确定模块a40,用于若完整,则确定原有集群中的数据已完全迁移至所述目标集群。可选地,所述恢复模块a20,还用于:获取所述备集群的存量数据,检测所述快照数据是否和所述存量数据匹配;若所述快照数据和所述存量数据不匹配,则获取所述备集群中快照迁移前所在的历史文件,并获取所述目标集群中快照所在的线程文件,检测所述历史文件和所述现存文件是否匹配;若所述历史文件和所述现存文件不匹配,则确定所述快照数据不满足预设检测条件。可选地,所述恢复模块a20,还用于:控制所述备集群中具有所述数据的表处于禁止状态,并根据输入的迁移指令将所述快照迁移至所述目标集群,将所述快照中的数据恢复至所述目标集群的工作目录,将具有所述快照中的数据的工作目录作为快照数据。可选地,所述检测模块a30,还用于:基于预设时间戳获取所述备集群的备集群数据,并获取所述目标集群的目标集群数据,校验所述备集群数据和所述目标集群数据之间的差异数据;根据所述差异数据对所述备集群数据进行过滤,并检测所述过滤后的备集群数据是否和所述目标集群数据匹配;若匹配,则确定所述目标集群中的增量数据完整。可选地,所述复制模块a10,还用于:对所述备集群中的数据进行加锁,以获取加锁数据,将所述加锁数据刷盘到所述备集群中的hfile文件,并对具有所述加锁数据的hfile文件创建引用指针,根据所述引用指针创建快照。可选地,所述检测模块a30,还用于:确定所述快照在所述备集群中所有数据的数据节点,根据所述数据节点对所述备集群中的所有数据进行回放,以获取所述备集群中的增量数据。可选地,所述复制模块a10,还用于:将所述主集群中的表结构复制到所述备集群,并检测所述备集群接收的表结构中是否存在业务系统写入的数据;若存在,则执行所述基于所述备集群中的数据创建快照的步骤;若不存在,则对所述主集群中的复制机制进行修正,并输出未复制成功的提示信息。上述各程序模块所执行的方法可参照本发明数据迁移方法各个实施例,此处不再赘述。本发明还提供一种计算机存储介质。本发明计算机存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如上所述的数据迁移方法的步骤。其中,在所述处理器上运行的数据迁移程序被执行时所实现的方法可参照本发明数据迁移方法各个实施例,此处不再赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1