CN111538719B - 数据迁移方法、装置、设备及计算机存储介质 - Google Patents
数据迁移方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111538719B CN111538719B CN202010371096.8A CN202010371096A CN111538719B CN 111538719 B CN111538719 B CN 111538719B CN 202010371096 A CN202010371096 A CN 202010371096A CN 111538719 B CN111538719 B CN 111538719B
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- snapshot
- target
- backup
- 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.)
- Active
Links
- 230000005012 migration Effects 0.000 title claims abstract description 95
- 238000013508 migration Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000001514 detection method Methods 0.000 claims abstract description 35
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000011084 recovery Methods 0.000 claims description 12
- 230000001680 brushing effect Effects 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000010076 replication Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- JASONGFGOLHLGB-UHFFFAOYSA-N Atranol Chemical compound CC1=CC(O)=C(C=O)C(O)=C1 JASONGFGOLHLGB-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及金融科技(Fintech)技术领域,并公开了一种数据迁移方法,该方法包括:将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。本发明还公开了一种数据迁移装置、设备和一种计算机存储介质。本发明实现了在业务不停服的同时,进行数据迁移。
Description
技术领域
本发明涉及金融科技(Fintech)的测试技术领域,尤其涉及数据迁移方法、装置、设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。目前互联网的爆炸式数据增长会导致对海量数据的存储有迫切需求,由于传统的mysql(关系型数据库管理系统)、orcal(关系型数据库)在百万级的数据能提供很好的事务能力和读写性能,但随着数据量的增加,它的性能急剧下降。而Hbase(开源数据库)是基于google bigtable(分布式存储系统)的开源实现,适合海量的数据存储,和较好的随机读写能力,故Hbase在海量数据的存储方面具有非常典型的应用场景。但由于机房的IDC(Internet Data Center,互联网数据中心)变化和业务需求引起集群迁移会给大数据的维护人员造成很大的挑战,传统的数据迁移方案有的会造成业务停服待集群数据追平后再进行业务写入,有的会涉及到客户端改造,将迁移窗口期间的数据进行缓存,待存量迁移完成后,再由客户端回放数据追平。因此,如何在业务不停服的同时,进行数据的迁移成为了目前亟待解决的技术问题。
发明内容
本发明的主要目的在于提出一种数据迁移方法、装置、设备及计算机存储介质,旨在解决如何在业务不停服的同时,进行数据的迁移的技术问题。
为实现上述目的,本发明提供一种数据迁移方法,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括原有集群和目标集群,所述原有集群包括主集群和备集群,所述数据迁移方法包括如下步骤:
将所述主集群中业务系统写入的数据实时复制到所述备集群,并基于所述备集群中的数据创建快照;
将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;
若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;
若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。
可选地,检测所述快照数据是否满足预设检测条件的步骤,包括:
获取所述备集群的存量数据,检测所述快照数据是否和所述存量数据匹配;
若所述快照数据和所述存量数据不匹配,则获取所述备集群中快照迁移前所在的历史文件,并获取所述目标集群中快照所在的线程文件,检测所述历史文件和所述现存文件是否匹配;
若所述历史文件和所述现存文件不匹配,则确定所述快照数据不满足预设检测条件。
可选地,将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复的步骤,包括:
控制所述备集群中具有所述数据的表处于禁止状态,并根据输入的迁移指令将所述快照迁移至所述目标集群,将所述快照中的数据恢复至所述目标集群的工作目录,将具有所述快照中的数据的工作目录作为快照数据。
可选地,检测所述目标集群中的增量数据是否完整的步骤,包括:
基于预设时间戳获取所述备集群的备集群数据,并获取所述目标集群的目标集群数据,校验所述备集群数据和所述目标集群数据之间的差异数据;
根据所述差异数据对所述备集群数据进行过滤,并检测所述过滤后的备集群数据是否和所述目标集群数据匹配;
若匹配,则确定所述目标集群中的增量数据完整。
可选地,基于所述备集群中的数据创建快照的步骤,包括:
对所述备集群中的数据进行加锁,以获取加锁数据,将所述加锁数据刷盘到所述备集群中的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-volatile memory),例如磁盘存储器。存储器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的形式将source hbase集群的表结构同步(即复制)至备集群。再开启主集群和备集群的replication(add peer)命令,并通过观察预设页面(如hbase web 60010页面),观察是否有相应tps(系统吞吐量)写入备集群,即检测是否有数据写入到备集群,若有,则读写此相应tps,并确定主集群中的regplication功能正常。若没有数据写入到备集群,则检测相应的regplication机制是否正常,不正常就进行修正。并在确定备集群中有写入数据后,需要清理hbase数据,并保留主集群中的原有数据分区。
再在备集群中通过snapshot快照创建source集群表快照,并通过对此集群表进行如图4所示的加锁,刷判断,创建指针等操作,来创建海量(可达到PB级别)数据的快照,并保留截止当前时刻的存量数据,即确定备集群中快照对应的数据节点。
步骤S20,将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;
当快照创建成功后,可以通过hadoop MR exportSnaphost(迁移快照)将快照导出到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任务统计行数进行比对:
hbase org.apache.hadoop.hbase.mapreduce.RowCounter‘table’:
Usage:RowCounter[options]<tablename>[--starttime=[start]--endtime=[end][--range=[startKey],[endKey]][<column1><column2>...]
For performance consider the following options:
-Dhbase.client.scanner.caching=100
-Dmapreduce.map.speculative=false
步骤S30,若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;
当经过判断发现快照数据不满足预设检测条件时,也就是在原有集群中仍然有业务系统写入数据时,就可以在flush(清空)到磁盘hdfs wallog时,在zk中记录相应的目录和hdfs wallog文件ID,由于已将原有集群中的大部分数据通过快照的方式迁移到目标集群中,因此在快速时间节点之后产生的数据并不会很多,此时就可以按照相应的wallog格式标准将数据序列化顺序存放在hdfs上(即确定增量数据),并通过回放的方式在目标hbase集群中将数据重写,即将增量数据迁移到目标集群。并且在source原有集群查找相应的主备replication peer,并enable(允许),回放相应堆积在source集群的wallog数据文件,相应wallog文件存储在hdfs上,具体的文件目录管理是存放在zookeeper中相应的peer目录下。再通过观察hbase web 60010观察是否有相应的数据在正常回放至目标hbase集群,待目标集群tps和原有集群tps相差无误时,则意味着增量数据已和原有集群相同。并在目标集群获取到增量数据后,还需要检测目标集群中的增量数据是否完整,并根据不同的检测结果执行不同的操作。但是当快照数据满足预设检测条件时,则可以确定已将原有集群中的所有数据都迁移到目标集群了。
其中,可以通过改进的WbVerifyReplication MR工具验证增量数据完整性。即WbVerifyReplication可指定-slaveClusterKey target slaveClusterKey可直接忽略掉-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的形式,并通过备集群与改进的WbVerifyReplication MR工具的接口和差异数据再次获取过滤后的备集群数据。
步骤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,然后会通过从meta region中获取photo表的所有region信息和所在regionserver信息并直至结束,最后会调用completeSnapshot将真正工作目录working dir改正hdfs://parent/hbase/.hbase-snapshot/PhotoSnapshot。至此快照建立完成。
在本实施例中,通过对备集群中的数据进行加锁,刷盘,创建引用指针,并根据引用指针创建快照,从而保障了快照的准确性。
进一步地,基于所述快照获取所述备集群中的增量数据的步骤,包括:
步骤f,确定所述快照在所述备集群中所有数据的数据节点,根据所述数据节点对所述备集群中的所有数据进行回放,以获取所述备集群中的增量数据。
在本实施例中,当将快照迁移到目标集群,且对快照的完整性检测成功后,还需要在备集群中确定快照在备集群中所有数据的数据节点(即可以根据获取快照的时间来确定进行快照操作的数据节点),并在确定数据节点后,确定自此数据节点之后是否有产生新的数据,并可以通过对备集群中的所有数据进行回放的方式,将数据节点之后产生的新的数据(即增量数据)迁移到目标集群。即可以按照相应的wallog格式标准将数据序列化顺序存放在hdfs上,并通过回放的方式在目标hbase集群将数据重写如集群,所以在source原有集群查找相应的主备replication peer,并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、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据迁移方法,其特征在于,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括原有集群和目标集群,所述原有集群包括主集群和备集群,所述数据迁移方法包括如下步骤:
在业务不停服的情况下,将所述主集群中业务系统写入的数据实时复制到所述备集群,具体为:开启所述主集群中的regplication创建dest集群表结构,并采用enable_table_replication的形式将source hbase集群的表结构同步至所述备集群,开启所述主集群和所述备集群的replication命令,并通过观察预设页面,观察是否有相应tps写入所述备集群,即检测是否有数据写入到所述备集群,若有,则读写此相应tps,并确定所述主集群中的regplication功能正常;若没有数据写入到所述备集群,则检测相应的regplication机制是否正常,不正常就进行修正;并在确定所述备集群中有写入数据后,清理hbase数据,并保留所述主集群中的原有数据分区;
基于所述备集群中的数据创建快照,以避免影响到所述业务系统和所述主集群之间的服务交流;
将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;
若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;
若完整,则确定所述原有集群中的数据已完全迁移至所述目标集群。
2.如权利要求1所述的数据迁移方法,其特征在于,所述检测所述快照数据是否满足预设检测条件的步骤,包括:
获取所述备集群的存量数据,检测所述快照数据是否和所述存量数据匹配;
若所述快照数据和所述存量数据不匹配,则获取所述备集群中快照迁移前所在的历史文件,并获取所述目标集群中快照所在的线程文件,检测所述历史文件和所述线程文件是否匹配;
若所述历史文件和所述线程文件不匹配,则确定所述快照数据不满足预设检测条件。
3.如权利要求1所述的数据迁移方法,其特征在于,所述将所述快照迁移到所述目标集群,并对所述目标集群中的快照进行数据恢复的步骤,包括:
控制所述备集群中具有所述数据的表处于禁止状态,并根据输入的迁移指令将所述快照迁移至所述目标集群,将所述快照中的数据恢复至所述目标集群的工作目录,将具有所述快照中的数据的工作目录作为快照数据。
4.如权利要求1所述的数据迁移方法,其特征在于,所述检测所述目标集群中的增量数据是否完整的步骤,包括:
基于预设时间戳获取所述备集群的备集群数据,并获取所述目标集群的目标集群数据,校验所述备集群数据和所述目标集群数据之间的差异数据;
根据所述差异数据对所述备集群数据进行过滤,并检测过滤后的备集群数据是否和所述目标集群数据匹配;
若匹配,则确定所述目标集群中的增量数据完整。
5.如权利要求1所述的数据迁移方法,其特征在于,所述基于所述备集群中的数据创建快照的步骤,包括:
对所述备集群中的数据进行加锁,以获取加锁数据,将所述加锁数据刷盘到所述备集群中的hfile文件,并对具有所述加锁数据的hfile文件创建引用指针,根据所述引用指针创建快照。
6.如权利要求1所述的数据迁移方法,其特征在于,所述基于所述快照获取所述备集群中的增量数据的步骤,包括:
确定所述快照在所述备集群中所有数据的数据节点,根据所述数据节点对所述备集群中的所有数据进行回放,以获取所述备集群中的增量数据。
7.如权利要求1-6任一项所述的数据迁移方法,其特征在于,所述将所述主集群中业务系统写入的数据实时复制到所述备集群的步骤,包括:
将所述主集群中的表结构复制到所述备集群,并检测所述备集群接收的表结构中是否存在业务系统写入的数据;
若存在,则执行所述基于所述备集群中的数据创建快照的步骤;
若不存在,则对所述主集群中的复制机制进行修正,并输出未复制成功的提示信息。
8.一种数据迁移装置,其特征在于,所述数据迁移装置包括:
复制模块,用于在业务不停服的情况下,将主集群中业务系统写入的数据实时复制到备集群,具体为:开启所述主集群中的regplication创建dest集群表结构,并采用enable_table_replication的形式将source hbase集群的表结构同步至所述备集群,开启所述主集群和所述备集群的replication命令,并通过观察预设页面,观察是否有相应tps写入所述备集群,即检测是否有数据写入到所述备集群,若有,则读写此相应tps,并确定所述主集群中的regplication功能正常;若没有数据写入到所述备集群,则检测相应的regplication机制是否正常,不正常就进行修正;并在确定所述备集群中有写入数据后,清理hbase数据,并保留所述主集群中的原有数据分区;基于所述备集群中的数据创建快照,以避免影响到所述业务系统和所述主集群之间的服务交流;
恢复模块,用于将所述快照迁移到目标集群,并对所述目标集群中的快照进行数据恢复,以获取快照数据,检测所述快照数据是否满足预设检测条件;
检测模块,用于若不满足,则基于所述快照获取所述备集群中的增量数据,并将所述增量数据迁移至所述目标集群,检测所述目标集群中的增量数据是否完整;
确定模块,用于若完整,则确定原有集群中的数据已完全迁移至所述目标集群。
9.一种数据迁移设备,其特征在于,所述数据迁移设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010371096.8A CN111538719B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010371096.8A CN111538719B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538719A CN111538719A (zh) | 2020-08-14 |
CN111538719B true CN111538719B (zh) | 2024-04-19 |
Family
ID=71977876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010371096.8A Active CN111538719B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538719B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069152B (zh) * | 2020-09-08 | 2023-10-03 | 北京达佳互联信息技术有限公司 | 一种数据库集群升级方法、装置、设备以及存储介质 |
CN112445759B (zh) * | 2020-11-30 | 2024-04-16 | 中国人寿保险股份有限公司 | 跨分布式数据库的集群复制数据的方法、装置和电子设备 |
CN112689015B (zh) * | 2020-12-24 | 2023-06-06 | 北京顺达同行科技有限公司 | 跨集群服务发现实现集群迁移的方法、系统及计算机设备 |
CN113220662B (zh) * | 2021-04-30 | 2024-02-09 | 广州市百果园信息技术有限公司 | 索引迁移方法、装置、电子设备及存储介质 |
CN114466067B (zh) * | 2021-12-21 | 2023-08-04 | 天翼云科技有限公司 | 一种数据迁移的方法及装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
WO2018149221A1 (zh) * | 2017-02-20 | 2018-08-23 | 京信通信系统(中国)有限公司 | 一种设备管理方法及网管系统 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN110209653A (zh) * | 2019-06-04 | 2019-09-06 | 中国农业银行股份有限公司 | HBase数据迁移方法及迁移装置 |
CN110851237A (zh) * | 2019-11-13 | 2020-02-28 | 北京计算机技术及应用研究所 | 一种面向国产平台的容器跨异构集群重构方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909069B2 (en) * | 2015-01-05 | 2021-02-02 | Iguazio Systems Ltd. | Service oriented data management and architecture |
-
2020
- 2020-04-30 CN CN202010371096.8A patent/CN111538719B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
WO2018149221A1 (zh) * | 2017-02-20 | 2018-08-23 | 京信通信系统(中国)有限公司 | 一种设备管理方法及网管系统 |
CN108628874A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 迁移数据的方法、装置、电子设备和可读存储介质 |
CN110209653A (zh) * | 2019-06-04 | 2019-09-06 | 中国农业银行股份有限公司 | HBase数据迁移方法及迁移装置 |
CN110851237A (zh) * | 2019-11-13 | 2020-02-28 | 北京计算机技术及应用研究所 | 一种面向国产平台的容器跨异构集群重构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111538719A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538719B (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
US11500897B2 (en) | Allocation and reassignment of unique identifiers for synchronization of content items | |
US20200356447A1 (en) | Manifest-based snapshots in distributed computing environments | |
RU2449358C1 (ru) | Распределенная файловая система и способ управления согласованностью блоков данных в такой системе | |
US20070112887A1 (en) | Slave replica member | |
CN110209653B (zh) | HBase数据迁移方法及迁移装置 | |
JP2013222373A (ja) | ストレージシステム、キャッシュ制御プログラムおよびキャッシュ制御方法 | |
CN111597270A (zh) | 数据同步方法、装置、设备及计算机存储介质 | |
CN114661818B (zh) | 图数据库中集群间数据实时同步的方法、系统和介质 | |
US20230132830A1 (en) | Data migration | |
JP2008097156A (ja) | 記憶制御装置、記憶制御方法および記憶制御プログラム | |
JP2007264814A (ja) | レプリケーションデータ作成プログラム、レプリケーションデータ反映プログラムおよびデータベース装置 | |
CN111522688A (zh) | 分布式系统的数据备份方法及装置 | |
US20230385304A1 (en) | Snapshots for distributed object-based datastores | |
EP4124938A1 (en) | Synchronizing file system items having a data and metadata portion between a source storage system and a destination storage system | |
WO2024078677A1 (en) | Mapping identifiers to maintain name and location coherency in file system objects | |
CN116302696A (zh) | 数据库系统的归档日志生成方法、存储介质及计算机设备 | |
JP2008097087A (ja) | 階層構造オブジェクトのコピー方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |