CN111651426A - 数据迁移方法、装置及计算机可读存储介质 - Google Patents
数据迁移方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111651426A CN111651426A CN202010360570.7A CN202010360570A CN111651426A CN 111651426 A CN111651426 A CN 111651426A CN 202010360570 A CN202010360570 A CN 202010360570A CN 111651426 A CN111651426 A CN 111651426A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- new
- original table
- original
- 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.)
- Granted
Links
- 230000005012 migration Effects 0.000 title claims abstract description 117
- 238000013508 migration Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003780 insertion Methods 0.000 claims abstract description 64
- 230000037431 insertion Effects 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 17
- 239000006185 dispersion Substances 0.000 claims description 8
- 238000013139 quantization Methods 0.000 claims description 8
- 238000011010 flushing procedure Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000011156 evaluation Methods 0.000 description 24
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 230000001680 brushing effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据技术,揭露了一种数据迁移方法,包括:将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录;对新表和原始表进行数据一致性处理,对新表和原始表进行表名互换,再次对新表和原始表的进行数据一致性处理,得到表名互换之后的所述新表,完成数据迁移操作。本发明可以实现数据表数据迁移的过程中不用锁表依然可以进行数据迁移操作。此外,本发明还涉及区块链技术,所述数据库中的数据可存储于区块链中。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据迁移的方法、装置、电子设备及计算机可读存储介质。
背景技术
随着大数据的兴起,数据库得到了越来越广泛的应用,存储的数据也是越来越大,数据量膨胀的大表查询性能低效,难以维护备份,为解决大表带来的各种问题,将数据库大表改造升级为分区表是一个有效解决方案。
传统的大表改造升级方案主要有两种方式,一种是在线重定义处理,能在不影响系统的情况下双表同步最后切换处理,但是限制较多,适合处理10g以下的表,而且在高并发下会有问题。另一种是通过锁表只读,然后迁移数据到新表完成后再解锁表,后续插入的数据就会插入的新表中,这种方案可以保证新表与原始表的数据一致性,但是会导致涉及数据更新的业务暂停,所以也是有缺陷的。
发明内容
本发明提供一种数据迁移方法、装置、电子设备及计算机可读存储介质,其主要目的在于数据表数据迁移的过程中不用锁表依然可以进行数据更新的方法。
为实现上述目的,本发明提供的一种数据迁移方法,包括:
步骤A:将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;
步骤B:对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间;
步骤C:比较所述新表插入数据时间和所述原始表数据更新时间;
步骤D:当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录;
步骤E:重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间。
步骤F:将所述新表与所述原始表的表名互换,重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间,得到表名互换之后的所述新表。
可选地,所述数据库中的数据存储于区块链中,所述将数据库中的数据进行分布式存储,得到原始表,包括:
利用下述Hash函数对所述数据库中的数据进行分布式存储,得到原始表;
slice_id=(w1×(hash_str(point_name)/b1)+w2×(day_time(time)/b2))
其中:slice_id为对所述数据库中的数据分配的分片号,hash_str(point_name)为所述数据库中的数据的数据名的量化函数,day_time(time)为所述数据库中的数据加入存储节点时间段的量化函数,b1为所述数据库中的数据的数据名的分散程度,b2为所述数据库中的数据的存储节点的时间段的分散程度;w1和w2为权重系数。
可选地,所述建立原始表数据更新时间记录,包括:
在原始表中建立数据创建时间的索引,根据所述索引记录原始表中最新数据创建时间为原始表数据更新时间记录。
可选地,所述对所述原始表中的数据进行数据迁移操作,得到新表,包括:
根据数据在原始表中的创建时间作为迁移标识进行迁移,对所述原始表进行刷盘、创建指针的数据迁移操作,得到所述新表。
可选地,所述数据迁移操作包括:
建立一个过程记录表,记录数据迁移中断的时间点,根据所述数据迁移中断的时间点对数据迁移中断进行恢复。
可选地,所述更新数据为所述原始表中的创建时间在所述原始表数据更新时间与所述新表插入数据时间范围内的数据。
为了解决上述问题,本发明还提供一种数据迁移装置,所述装置包括:
数据存储模块,用于将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;
数据迁移模块,用于对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间;
数据一致性验证模块,用于比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并重复该步骤直到所述新表插入数据时间不早于所述原始表数据更新时间。
表名互换模块,用于将所述新表与所述原始表的表名互换;比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并重复该步骤直到所述新表插入数据时间不早于所述原始表数据更新时间;得到表名互换之后的所述新表。
可选地,所述对所述原始表中的数据进行数据迁移操作,得到新表,包括:
根据数据在原始表中的创建时间作为迁移标识进行迁移,对所述原始表进行刷盘、创建指针的数据迁移操作,得到所述新表。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的数据迁移方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的数据迁移方法。
本发明实施例首先将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录;对新表和原始表进行数据一致性处理,对新表和原始表进行表名互换,再次对新表和原始表的进行数据一致性处理,得到表名互换之后的所述新表,完成数据迁移操作。因此本发明提出的数据迁移方法、装置及计算机可读存储介质,可以实现对数据表数据迁移的过程中不用锁表依然可以进行数据更新的方法。
附图说明
图1为本发明一实施例提供的数据迁移方法的流程示意图;
图2为本发明一实施例提供的数据迁移方法的模块示意图;
图3为本发明一实施例提供的数据迁移方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据迁移方法。参照图1所示,为本发明一实施例提供的数据迁移方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,数据迁移方法包括:
S1、将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间。
详细地,本发明实施例利用下述Hash函数对所述数据库中的数据进行分布式存储,得到原始表;
slice_id=(w1×(hash_str(point_name)/b1)+w2×(day_time(time)/b2))
其中:slice_id为对所述数据库中的数据分配的分片号,hash_str(point_name)为所述数据库中的数据的数据名的量化函数,day_time(time)为所述数据库中的数据加入存储节点时间段的量化函数,b1为所述数据库中的数据的数据名的分散程度,b2为所述数据库中的数据的存储节点的时间段的分散程度;w1和w2为权重系数,可人为设定。极端情况下,当w2设置为0,表示完全按照数据的数据名来分布数据,每个数据名的所有时间的数据都存放在同一个数据分片或其备份分片上;同样的,若w1设置为0,则表示完全按照数据加入存储节点时间段来分布数据,每个时间段的所有数据名的数据都存放在同一个数据分片或其备份分片上。
进一步地,所述数据库中的数据在不断更新,所述原始表中的数据随着数据库中的数据更新也在不断更新,因此,本发明实施例进一步在原始表中建立数据创建时间的索引,根据所述索引记录原始表中最新数据创建时间为原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录。例如:某购物平台的用户评价数据表,随着每天用户评价的不断增加,数据表也随之不断更新,记录数据表中最新的用户评价创建时间为原始表数据更新时间。需要强调的是,为进一步保证上述数据库中的数据的私密和安全性,上述数据库中的数据还可以存储于一区块链的节点中。
S2、对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间。
详细地,本发明实施例根据数据在原始表中的创建时间作为迁移标识进行迁移。所述新表插入数据时间记录为所述新表中数据开始迁入的时间的记录。例如:原始表为某购物平台的用户评价数据表,2020年1月6日对某购物平台的用户评价数据表进行迁移,用户评价数据表中最新的评价创建日期为2020年1月5日,本发明记录2020年1月5日为原始表数据更新时间,并把用户评价数据表中的创建时间在2020年1月5日及其之前的用户评价数据全部迁移到新表中,记录开始迁移的时间2020年1月6日为新表插入数据时间。
在执行数据迁移操作时,本发明的其中一个实施例可以对所述原始表进行刷盘、创建指针的数据迁移操作,得到新表。
例如,本发明实施例以hadoop数据库为本发明示例数据库,使用基于HBase层的Snapshot方式进行数据迁移。所述Hadoop数据库是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。其中snapshot字面意思即快照,所述Hadoop数据库中,所述snapshot是一份元信息的合集,快照不是表的复制而是一个文件名称列表的附属,因而不会复制数据。
因为Snapshot方式不拷贝实际的数据,所以整个过程比较快,相当于对表当前元数据状态作一个克隆。所述Snapshot方式的流程主要有两个步骤:
刷盘:将regionserver(数据管理服务)的memstore(内存)中的数据刷到HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)上,保证快照数据完整。
创建指针:Snapshot过程不拷贝数据,但会创建对HDFS文件的指针,以将数据迁移到新表上,据此完成数据的迁移。
优选地,本发明实施例中数据迁移的过程中可能出现意外情况导致数据迁移中断,因此本发明实施例建立一个过程记录表记录数据迁移中断的时间点,根据所述数据迁移中断的时间点对数据迁移中断进行恢复。
S3、比较所述新表插入数据时间和所述原始表数据更新时间。
本发明实施例中,数据库中的数据不断的存储在原始表中,原始表数据迁移到新表需要迁移时间,在迁移的过程中,原始表可能依然在更新数据,为了确认迁移过程中原始表是否更新了数据,因此在迁移完成时,本发明实施例可以比较所述新表插入数据时间和所述原始表数据更新时间,以判断在迁移过程中,所述原始表中是否有更新数据。
S4、当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并返回执行上述的S3,直到所述新表插入数据时间不早于所述原始表数据更新时间。
详细地,本发明较佳实施例中,所述更新数据为所述原始表中的创建时间在所述原始表数据更新时间与所述新表插入数据时间范围内的数据。例如:原始表为某购物平台的用户评价数据表,本发明实施例于2020年1月6日对某购物平台的用户评价数据表进行迁移,用户评价数据表中最新的创建时间为2020年1月5日,本发明实施例记录2020年1月5日为原始表数据更新时间,把用户评价数据表中的创建时间在2020年1月5日及其之前的用户评价数据全部迁移到新表中,记录开始迁移的时间2020年1月6日为新表插入数据时间,2020年1月9日迁移完成,迁移完成时原始表数据更新时间为2020年1月8日,新表插入数据时间2020年1月6日早于原始表数据更新时间2020年1月8日,证明原始表在数据迁移过程中发生了数据更新,其中,更新数据为创建时间在2020年1月6日-2020年1月8日范围内的数据,将这部分更新数据继续迁移到新表。
S5、将所述新表与所述原始表的表名互换,重复上述步骤S3及步骤S4,直到所述新表插入数据时间不早于所述原始表数据更新时间,得到表名互换之后的所述新表。
详细地,本发明实施例将原始表的数据迁移到新表中,但其它系统调接口中的调用的表名仍然是原始表的表名,因此本发明实施例将新表与原始表的表名互换,为了确认表名互换过程中原始表中没有数据更新,重复上述步骤S3及步骤S4验证原始表与新表的数据一致性,得到表名互换之后的所述新表,完成数据表的迁移操作。
进一步地,本发明实施例可以利用预置的SQL调度脚本执行上述的数据迁移操作。所述SQL调度脚本可用Groovy语言编写,包含request对象和response对象。其中,所述request对象获取数据库中的数据,所述response对象将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,对所述原始表中的数据进行数据迁移操作,得到新表,并在新表中建立新表插入数据时间记录,对新表和原始表进行数据一致性处理,对新表和原始表进行表名互换,再次对新表和原始表的进行数据一致性处理,完成数据迁移操作。其中,所述数据一致性处理包括:更新所述原始表数据更新时间记录,比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,并将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,重复上述过程直到所述新表插入数据时间不早于所述原始表数据更新时间。
本发明利用将原始表中更新数据不断的迁移到新表中直到原始表与新表的数据一致的数据迁移方法,无需对数据表进行锁表,就能实现原始表无缝切换到新表,完成数据迁移操作。
如图2所示,是本发明数据迁移装置的功能模块图。
本发明所述数据迁移装置100可以安装于电子设备中。根据实现的功能,所述数据迁移装置100可以包括数据存储模块101、数据迁移102、数据一致性验证模块103和表名互换模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述数据存储模块101用于将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间。
详细地,本发明实施例利用下述Hash函数对所述数据库中的数据进行分布式存储,得到原始表;
slice_id=(w1×(hash_str(point_name)/b1)+w2×(day_time(time)/b2))
其中:slice_id为对所述数据库中的数据分配的分片号,hash_str(point_name)为所述数据库中的数据的数据名的量化函数,day_time(time)为所述数据库中的数据加入存储节点时间段的量化函数,b1为所述数据库中的数据的数据名的分散程度,b2为所述数据库中的数据的存储节点的时间段的分散程度;w1和w2为权重系数,可人为设定。极端情况下,当w2设置为0,表示完全按照数据的数据名来分布数据,每个数据名的所有时间的数据都存放在同一个数据分片或其备份分片上;同样的,若w1设置为0,则表示完全按照数据加入存储节点时间段来分布数据,每个时间段的所有数据名的数据都存放在同一个数据分片或其备份分片上。
进一步地,所述数据库中的数据在不断更新,所述原始表中的数据随着数据库中的数据更新也在不断更新,因此,本发明实施例进一步在原始表中建立数据创建时间的索引,根据所述索引记录原始表中最新数据创建时间为原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录。例如:某购物平台的用户评价数据表,随着每天用户评价的不断增加,数据表也随之不断更新,记录数据表中最新的用户评价创建时间为原始表数据更新时间。需要强调的是,为进一步保证上述数据库中的数据的私密和安全性,上述数据库中的数据还可以存储于一区块链的节点中。
所述数据迁移模块102用于对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间。
详细地,本发明实施例根据数据在原始表中的创建时间作为迁移标识进行迁移。所述新表插入数据时间记录为所述新表中数据开始迁入的时间的记录。例如:原始表为某购物平台的用户评价数据表,2020年1月6日对某购物平台的用户评价数据表进行迁移,用户评价数据表中最新的评价创建日期为2020年1月5日,本发明记录2020年1月5日为原始表数据更新时间,并把用户评价数据表中的创建时间在2020年1月5日及其之前的用户评价数据全部迁移到新表中,记录开始迁移的时间2020年1月6日为新表插入数据时间。
在执行数据迁移操作时,本发明的其中一个实施例可以对所述原始表进行刷盘、创建指针的数据迁移操作,得到新表。
例如,本发明实施例以hadoop数据库为本发明示例数据库,使用基于HBase层的Snapshot方式进行数据迁移。所述Hadoop数据库是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。其中snapshot字面意思即快照,所述Hadoop数据库中,所述snapshot是一份元信息的合集,快照不是表的复制而是一个文件名称列表的附属,因而不会复制数据。
因为Snapshot方式不拷贝实际的数据,所以整个过程比较快,相当于对表当前元数据状态作一个克隆。所述Snapshot方式的流程主要有两个步骤:
刷盘:将regionserver(数据管理服务)的memstore(内存)中的数据刷到HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)上,保证快照数据完整。
创建指针:Snapshot过程不拷贝数据,但会创建对HDFS文件的指针,以将数据迁移到新表上,据此完成数据的迁移。
优选地,本发明实施例中数据迁移的过程中可能出现意外情况导致数据迁移中断,因此本发明实施例建立一个过程记录表记录数据迁移中断的时间点,根据所述数据迁移中断的时间点对数据迁移中断进行恢复。
所述数据一致性验证模块103用于比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并重复执行所述新表插入数据时间和所述原始表数据更新时间的比较,直到所述新表插入数据时间不早于所述原始表数据更新时间。
本发明实施例中,数据库中的数据不断的存储在原始表中,原始表数据迁移到新表需要迁移时间,在迁移的过程中,原始表可能依然在更新数据,为了确认迁移过程中原始表是否更新了数据,因此在迁移完成时,本发明实施例可以比较所述新表插入数据时间和所述原始表数据更新时间,以判断在迁移过程中,所述原始表中是否有更新数据。
详细地,本发明较佳实施例中,所述更新数据为所述原始表中的创建时间在所述原始表数据更新时间与所述新表插入数据时间范围内的数据。例如:原始表为某购物平台的用户评价数据表,本发明实施例于2020年1月6日对某购物平台的用户评价数据表进行迁移,用户评价数据表中最新的创建时间为2020年1月5日,本发明实施例记录2020年1月5日为原始表数据更新时间,把用户评价数据表中的创建时间在2020年1月5日及其之前的用户评价数据全部迁移到新表中,记录开始迁移的时间2020年1月6日为新表插入数据时间,2020年1月9日迁移完成,迁移完成时原始表数据更新时间为2020年1月8日,新表插入数据时间2020年1月6日早于原始表数据更新时间2020年1月8日,证明原始表在数据迁移过程中发生了数据更新,其中,更新数据为创建时间在2020年1月6日-2020年1月8日范围内的数据,将这部分更新数据继续迁移到新表。
所述表名互换模块104用于将所述新表与所述原始表的表名互换。
在执行表名互换之后,本发明实施例中所述数据一致性验证模块103进一步比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录。进一步地,本发明实施例将原始表的数据迁移到新表中,但其它系统调接口中的调用的表名仍然是原始表的表名,因此本发明实施例将新表与原始表的表名互换,为了确认表名互换过程中原始表中没有数据更新,再次对原始表与新表进行数据一致性处理,得到表名互换之后的所述新表,完成数据表的迁移操作。
如图3所示,是本发明实现数据迁移方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据迁移程序。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如数据迁移程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器12是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如数据迁移程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的请求资源调度程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
步骤A:将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;
步骤B:对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间;
步骤C:比较所述新表插入数据时间和所述原始表数据更新时间;
步骤D:当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录;
步骤E:重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间。
步骤F:将所述新表与所述原始表的表名互换,重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间,得到表名互换之后的所述新表。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种数据迁移方法,其特征在于,所述方法包括:
步骤A:将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;
步骤B:对所述原始表中的数据进行数据迁移操作,得到新表,在所述新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间;
步骤C:比较所述新表插入数据时间和所述原始表数据更新时间;
步骤D:当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录;
步骤E:重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间;
步骤F:将所述新表与所述原始表的表名互换,重复上述步骤C及步骤D,直到所述新表插入数据时间不早于所述原始表数据更新时间,得到表名互换之后的所述新表。
2.如权利要求1所述的数据迁移方法,其特征在于,所述数据库中的数据存储于区块链中,所述将数据库中的数据进行分布式存储,包括:
利用下述Hash函数对所述数据库中的数据进行分布式存储:
slice_id=(w1×(hash_str(point_name)/b1)+w2×(day_time(time)/b2))
其中:slice_id为对所述数据库中的数据分配的分片号,hash_str(point_name)为所述数据库中的数据的数据名的量化函数,day_time(time)为所述数据库中的数据加入存储节点的时间段的量化函数,b1为所述数据库中的数据的数据名的分散程度,b2为所述数据库中的数据的存储节点的时间段的分散程度;w1和w2为权重系数。
3.如权利要求1所述的数据迁移方法,其特征在于,所述建立原始表数据更新时间记录,包括:
在原始表中建立数据创建时间的索引,根据所述索引记录原始表中最新数据创建时间为原始表数据更新时间记录。
4.如权利要求1所述的数据迁移方法,其特征在于,所述对所述原始表中的数据进行数据迁移操作,得到新表,包括:
根据数据在原始表中的创建时间作为迁移标识进行迁移,对所述原始表进行刷盘、创建指针的数据迁移操作,得到所述新表。
5.如权利要求4所述的数据迁移方法,其特征在于,所述数据迁移操作包括:
建立一个过程记录表,记录数据迁移中断的时间点,根据所述数据迁移中断的时间点对数据迁移中断进行恢复。
6.如权利要求1至5中任意一项所述的数据迁移方法,其特征在于,所述更新数据为所述原始表中的创建时间在所述原始表数据更新时间与所述新表插入数据时间范围内的数据。
7.一种数据迁移装置,其特征在于,所述装置包括:
数据存储模块,用于将数据库中的数据进行分布式存储,得到原始表,建立原始表数据更新时间记录,并在所述原始表数据发生更新时,更新所述原始表数据更新时间记录中的原始表数据更新时间;
数据迁移模块,用于对所述原始表中的数据进行数据迁移操作,得到新表,在新表中建立新表插入数据时间记录,并在有新的数据插入到所述新表中时,更新所述新表插入数据时间记录中的新表插入数据时间;
数据一致性验证模块,用于比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并重复该步骤直到所述新表插入数据时间不早于所述原始表数据更新时间;
表名互换模块,用于将所述新表与所述原始表的表名互换,比较所述新表插入数据时间和所述原始表数据更新时间,当所述新表插入数据时间早于所述原始表数据更新时间时,获取所述原始表中的更新数据,将所述更新数据迁移到所述新表中,并更新所述新表插入数据时间记录,并重复该步骤直到所述新表插入数据时间不早于所述原始表数据更新时间;得到表名互换之后的所述新表。
8.如权利7所述的数据迁移装置,其特征在于,所述对所述原始表中的数据进行数据迁移操作,得到新表,包括:
根据数据在原始表中的创建时间作为迁移标识进行迁移,对所述原始表进行刷盘、创建指针的数据迁移操作,得到所述新表。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一所述的数据迁移方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一所述的数据迁移方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010360570.7A CN111651426B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置及计算机可读存储介质 |
PCT/CN2020/131912 WO2021218142A1 (zh) | 2020-04-30 | 2020-11-26 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010360570.7A CN111651426B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651426A true CN111651426A (zh) | 2020-09-11 |
CN111651426B CN111651426B (zh) | 2024-06-25 |
Family
ID=72349599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010360570.7A Active CN111651426B (zh) | 2020-04-30 | 2020-04-30 | 数据迁移方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111651426B (zh) |
WO (1) | WO2021218142A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732676A (zh) * | 2021-01-12 | 2021-04-30 | 成都库珀区块链科技有限公司 | 基于区块链的数据迁移方法、装置、设备及存储介质 |
WO2021218142A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
CN115422165A (zh) * | 2022-09-22 | 2022-12-02 | 北京奥星贝斯科技有限公司 | 数据库数据迁移方法和数据库 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391634A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据迁移方法及装置 |
CN107958010A (zh) * | 2016-10-18 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 用于在线数据迁移的方法及系统 |
CN110019140A (zh) * | 2017-12-29 | 2019-07-16 | 华为技术有限公司 | 数据迁移方法、装置、设备以及计算机可读存储介质 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446979B (zh) * | 2014-06-27 | 2019-02-01 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN108446315B (zh) * | 2018-02-07 | 2021-11-05 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN108519862B (zh) * | 2018-03-30 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 区块链系统的存储方法、装置、系统和存储介质 |
CN109684304B (zh) * | 2018-12-13 | 2020-12-15 | 中国联合网络通信集团有限公司 | 数据迁移方法及装置 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
CN111651426B (zh) * | 2020-04-30 | 2024-06-25 | 平安科技(深圳)有限公司 | 数据迁移方法、装置及计算机可读存储介质 |
-
2020
- 2020-04-30 CN CN202010360570.7A patent/CN111651426B/zh active Active
- 2020-11-26 WO PCT/CN2020/131912 patent/WO2021218142A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107958010A (zh) * | 2016-10-18 | 2018-04-24 | 北京京东尚科信息技术有限公司 | 用于在线数据迁移的方法及系统 |
CN107391634A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据迁移方法及装置 |
CN110019140A (zh) * | 2017-12-29 | 2019-07-16 | 华为技术有限公司 | 数据迁移方法、装置、设备以及计算机可读存储介质 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218142A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 数据迁移方法、装置、电子设备及计算机可读存储介质 |
CN112732676A (zh) * | 2021-01-12 | 2021-04-30 | 成都库珀区块链科技有限公司 | 基于区块链的数据迁移方法、装置、设备及存储介质 |
CN112732676B (zh) * | 2021-01-12 | 2023-12-05 | 库珀科技集团有限公司 | 基于区块链的数据迁移方法、装置、设备及存储介质 |
CN115422165A (zh) * | 2022-09-22 | 2022-12-02 | 北京奥星贝斯科技有限公司 | 数据库数据迁移方法和数据库 |
Also Published As
Publication number | Publication date |
---|---|
CN111651426B (zh) | 2024-06-25 |
WO2021218142A1 (zh) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651426B (zh) | 数据迁移方法、装置及计算机可读存储介质 | |
CN102955845B (zh) | 数据访问方法、装置与分布式数据库系统 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN112328677B (zh) | 基于表关联的丢失数据回收方法、装置、设备及介质 | |
CN111538573A (zh) | 异步任务处理方法、装置及计算机可读存储介质 | |
CN115118738B (zh) | 基于rdma的灾备方法、装置、设备及介质 | |
CN112685117A (zh) | 系统语言国际化维护方法、装置及计算机可读存储介质 | |
CN112580079A (zh) | 权限配置方法、装置、电子设备及可读存储介质 | |
CN112256783A (zh) | 数据导出方法、装置、电子设备及存储介质 | |
CN112256472B (zh) | 分布式数据调取方法、装置、电子设备及存储介质 | |
CN112948380A (zh) | 基于大数据的数据存储方法、装置、电子设备及存储介质 | |
CN112685384A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN115687384A (zh) | Uuid标识生成方法、装置、设备及存储介质 | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN114626103A (zh) | 数据一致性比对方法、装置、设备及介质 | |
CN113347451B (zh) | 视频上传方法、装置、电子设备及计算机可读存储介质 | |
CN115495620A (zh) | 基于图结构的数据管理方法及相关设备 | |
CN113076069A (zh) | 双缓存方法、装置、电子设备及计算机可读存储介质 | |
CN113297180A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN113918296A (zh) | 模型训练任务调度执行方法、装置、电子设备及存储介质 | |
CN113254446A (zh) | 数据融合方法、装置、电子设备及介质 | |
CN113515265A (zh) | 站点配置方法、装置、设备及计算机可读存储介质 | |
CN114860349B (zh) | 数据加载方法、装置、设备及介质 | |
CN114925138A (zh) | 基于Hadoop的ES数据同步方法、装置、设备及介质 | |
CN115114377B (zh) | 一种大规模分布式可信数据同步方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40031430 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |