CN115905179A - 一种数据迁移方法、装置、可读存储介质及电子设备 - Google Patents
一种数据迁移方法、装置、可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN115905179A CN115905179A CN202211563812.8A CN202211563812A CN115905179A CN 115905179 A CN115905179 A CN 115905179A CN 202211563812 A CN202211563812 A CN 202211563812A CN 115905179 A CN115905179 A CN 115905179A
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- index
- index library
- library
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据迁移方法、装置、计算机可读存储介质及电子设备,该方法包括:响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。本发明提供的技术方案实现数据完整地线上迁移,提高数据迁移的效率。
Description
技术领域
本发明涉及数据处理领域,且更具体地,涉及一种数据迁移方法、装置、可读存储介质及电子设备。
背景技术
分布式搜索引擎例如ES(Elasticsearch)通过在多台服务器上部署搜索引擎集群的方式,实现对海量数据建立索引。在实际使用中,分布式搜索引擎的索引数据常常需要进行数据迁移,在数据迁移的过程中,为了防止在数据迁移过程中对数据进行修改导致的数据逻辑混乱,常常会进行离线的数据迁移,即暂停分布式搜索引擎与外界间的交互,对分布式搜索引擎的正常运行产生影响,且数据迁移效率较低。
发明内容
本发明提供了一种数据迁移方法、装置、计算机可读存储介质及电子设备,以解决现有技术中为了保证数据的完整性需要线下进行迁移,数据迁移效率较低的技术问题。
根据本发明的第一方面,提供了一种数据迁移方法,包括:
响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;
在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;
在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
可选地,所述方法还包括:
在所述数据迁移过程不符合所述预设迁移正常条件的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
可选地,所述方法还包括:
在所述第二索引数量信息小于所述第一索引数量信息的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
可选地,所述重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,包括:
确定目标索引库、所述迁移标识信息和所述第一索引数量信息对应的确定次数;
在所述确定次数小于设定阈值的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息。
可选地,所述确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息的步骤前,所述方法还包括:
对所述源索引库中的数据进行分片处理,确定至少两个数据分片;
调用至少两个创建的线程异步读取所述至少两个数据分片中的数据,以将所述源索引库中的数据写入所述目标索引库。
可选地,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:
确定所述源索引库对应的索引别名;
建立所述目标索引库与所述索引别名的对应关系,并移除所述源索引库与所述索引别名的对应关系。
可选地,所述响应于接收到的数据迁移指令,还包括:
将所述目标索引库的刷新参数设置为第一预设值,副本参数设置为第二预设值,以使得在所述数据迁移过程中,所述目标索引库基于所述第一预设值对应的刷新周期进行数据刷新,并基于所述第二预设值进行数据备份;
所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:
将所述目标索引库的所述刷新参数设置为第三预设值,所述副本参数设置为第四预设值,以使得在所述数据迁移过程结束后,所述目标索引库基于所述第三预设值对应的刷新周期进行数据刷新,并基于所述第四预设值进行数据备份;
其中,所述第一预设值对应的刷新周期大于所述第三预设值对应的刷新周期,所述第四预设值大于所述第二预设值。
可选地,在所述迁移标识信息为迁移时间信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:
在所述源索引库中,确定出更新时间信息晚于所述迁移时间信息的第一数据,将所述第一数据作为所述数据迁移过程中的增量数据;
在所述迁移标识信息为迁移版本信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:
在所述源索引库中,确定出索引版本信息大于所述迁移版本信息的第二数据,并将所述第二数据作为所述数据迁移过程中的增量数据。
根据本发明的第二方面,提供了一种数据迁移装置,包括:
指令响应模块,用于响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;
第一迁移处理模块,用于在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;
第二迁移处理模块,用于在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
根据本发明的第三方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述数据迁移方法。
根据本发明的第四方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的数据迁移方法。
与现有技术相比,本发明提供的数据迁移方法、装置、计算机可读存储介质及电子设备,至少包括以下有益效果:
本发明的技术方案在接收到数据迁移指令后,响应该数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;并将源索引库中的数据写入目标索引库,在将源索引库中的数据写入目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定数据迁移过程结束后目标索引库对应的第二索引数量信息;将第二索引数量信息与第一索引数量信息进行比较,在第二索引数量信息大于或等于第一索引数量信息的情况下,根据迁移标识信息,确定出源索引库在数据迁移过程中的增量数据,并将增量数据写入目标索引库。在本发明提供的技术方案中,对数据迁移过程进行监控,以确定数据迁移过程是否符合预设迁移正常条件,并对迁移结果进行验证,在第二索引数量信息大于或等于第一索引数量信息的情况下,利用迁移标识信息准确地确定出数据迁移过程中的增量数据,该增量数据是在数据迁移过程中产生,由此可见本发明中的数据迁移是基于线上进行的,无需暂停分布式搜索引擎与外界间的交互,避免因离线迁移对分布式搜索引擎的正常运行带来的影响;且通过引入迁移标识信息,保证增量数据确定的准确性,实现数据完整有序地线上迁移,提高数据迁移的效率。
附图说明
为了更清楚地说明本的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一示例性实施例提供的数据迁移方法的流程示意图一;
图2是本发明一示例性实施例提供的数据迁移方法的流程示意图二;
图3是本发明一示例性实施例提供的数据迁移方法的流程示意图三;
图4是本发明一示例性实施例提供的数据迁移方法的流程示意图四;
图5是本发明一示例性实施例提供的数据迁移装置的结构示意图;
图6是本发明一示例性实施例提供的电子设备的结构图。
具体实施方式
下面将结合本中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本实施例保护的范围。
示例性方法
图1是本发明一示例性实施例提供的数据迁移方法的流程示意图,至少包括如下步骤:
步骤10,响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息。
在一实施例中,数据迁移指令用于指示进行数据迁移,目标索引库是接收数据迁移的索引库,源索引库是将数据迁出的索引库,第一索引数量信息是开始进行数据迁移时源索引库中数据的总量。迁移标识信息用于指示在开始进行数据迁移时源索引库的特征信息,具体地,迁移标识信息可以用于指示在开始进行数据迁移时源索引库的时间特征信息,或者迁移标识信息可以用于指示在开始进行数据迁移时源索引库的版本特征信息。
在一种可能的实现方式中,数据迁移指令携带有目标索引库和源索引库。例如,用户在交互界面中输入目标索引库和源索引库,然后在交互界面上点击“迁移”按钮,下达数据迁移指令。在接收到数据迁移指令后,对数据迁移指令进行解析,确定出数据迁移指令携带的目标索引库和源索引库。进一步确定源索引库对应的第一索引数量信息,以及记录源索引库开始进行数据迁移的时间,将该迁移时间信息作为迁移标识信息,然后开始进行数据迁移任务,即将源索引库中的数据写入目标索引库中。
在另一种可能的实现方式中,数据迁移指令携带源索引库。例如,用户在交互界面中输入源索引库,然后在交互界面上点击“迁移”按钮,下达数据迁移指令。在接收到数据迁移指令后,对数据迁移指令进行解析,确定出数据迁移指令携带的源索引库。创建一新的索引库,将该新创建的索引库作为目标索引库,也就是说此时目标索引库无需用户指定。进一步确定源索引库对应的第一索引数量信息,以及记录源索引库开始进行数据迁移时的数据版本,组成迁移版本信息,将该迁移版本信息作为迁移标识信息,然后开始进行数据迁移任务,即将源索引库中的数据写入目标索引库中。
具体地,在开始进行数据迁移任务时,生成源索引库开始进行数据迁移时的快照,也就是说将源索引库开始进行数据迁移时刻的数据进行备份,进而将该快照对应的备份数据写入目标索引库中,实现将源索引库中在数据迁移前的数据写入目标索引库,即目标索引库中被写入的数据是截止到开始进行数据迁移时,然而在数据迁移过程中分布式搜索引擎与外界间依然存在交互,因此会在数据迁移过程中产生的增量数据,若不将该增量数据写入目标索引库,则会存在数据丢失。
步骤20,在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息。
在一实施例中,预设迁移正常条件是预先设置的用于指示数据迁移过程不存在异常的条件。具体地,可以确定出数据迁移过程中存在的异常事件,如网络异常、写入异常、读取异常等,需要说明的是异常事件可以根据用户的实际应用场景进行设置。在确定出异常事件后,即可以将预设迁移正常条件设置为数据迁移过程中不包括异常事件,也就是说对数据迁移过程进行监控,确定数据迁移过程是否存在异常事件,若数据迁移过程中不存在异常事件,即数据迁移过程符合预设迁移正常条件,进而确定出数据迁移过程结束后目标索引库对应的第二索引数量信息,其中,数据迁移过程结束是指源索引库中的数据写入目标索引库结束,第二索引数量信息是数据迁移过程结束后目标索引库中数据的总量。
步骤30,在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
在一实施例中,将第二索引数量信息与第一索引数量信息进行比较,在第二索引数量信息大于或等于第一索引数量信息的情况下,表明开始数据迁移时源索引库中的数据均已写入目标索引库中,进而根据迁移标识信息,确定源索引库在数据迁移过程中的增量数据,将增量数据写入目标索引库中,以使得将源索引库在开始进行数据迁移时以及数据迁移过程中的数据均写入目标索引库中,保证数据迁移的完整性。
在一种可能的实现方式中,在所述迁移标识信息为迁移时间信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:在所述源索引库中,确定出更新时间信息晚于所述迁移时间信息的第一数据,将所述第一数据作为所述数据迁移过程中的增量数据。
具体地,迁移时间信息用于指示开始进行数据迁移的时刻,从而在迁移标识信息为迁移时间信息时,源索引库中更新时间信息晚于迁移时间信息的第一数据即为数据迁移过程中的增量数据。其中在对源索引库中的数据进行更改时,该更改时间即为数据的更新时间信息,更新时间信息晚于迁移时间信息表明在开始进行数据迁移后,源索引库中的某些数据存在更改,即为需要确定出的增量数据。
举例来说,若开始进行数据迁移的时间为9月15日下午8点05分30秒,也就是说迁移时间信息对应9月15日下午8点05分30秒,生成9月15日下午8点05分30秒时源索引库的快照,将快照对应的备份数据写入目标索引库,在源索引库中的数据写入目标索引库的数据迁移过程符合预设迁移正常条件、且第二索引数量信息大于或等于第一索引数量信息的情况下,表明快照对应的备份数据均已写入目标索引库,此时若直接结束流程,会存在数据丢失,即9月15日下午8点05分30秒以后的数据迁移过程中的数据会丢失,因此需要在源数据库中确定出更新时间信息晚于迁移时间信息的数据,如9月15日下午8点05分59秒更新的索引1、9月15日下午8点06分35秒更新的索引5、9月15日下午8点09分15秒更新的索引10等,将上述更新时间信息晚于迁移时间信息的第一数据确定为增量数据,将确定出的增量数据写入目标索引库,实现源索引库中数据的完整迁移。
在另一种可能的实现方式中,在所述迁移标识信息为迁移版本信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:在所述源索引库中,确定出索引版本信息大于所述迁移版本信息的第二数据,将所述第二数据作为所述数据迁移过程中的增量数据。
具体地,迁移版本信息用于指示开始进行数据迁移时的数据版本。需要说明的是,若对源索引库中的数据进行更新时,数据版本也会随之更新,例如,第一次写入索引A时对应版本1,对索引A进行第一次更改时,对应版本2,对索引A进行第二次更改时,对应版本3,也就是说对数据进行更改即会引起数据版本的变化,因此可以通过对比数据版本的方式进行增量数据的确定,即将源索引库中索引版本信息大于迁移版本信息的第二数据作为数据迁移过程中的增量数据。
举例来说,开始进行数据迁移的时存在索引A、索引B、索引C和索引D,其中迁移标识信息包括索引A对应版本2,索引B对应版本1,索引C对应版本4,索引D对应版本2,在第二索引数量信息大于或等于第一索引数量信息的情况下,再次确定源索引库中数据的索引版本信息,若索引版本信息包括索引A对应版本3,索引B对应版本1,索引C对应版本5,索引D对应版本2,索引E对应版本1,进一步确定出源索引库中索引版本信息大于迁移版本信息的第二数据即索引A(版本3大于版本2)、索引C(版本5大于版本4)和新增数据索引E,从而将索引A、索引C和索引E作为增量数据写入目标索引库中,将目标索引库中索引A对应的版本2更改为版本3,索引C对应的版本4更改为版本5,并写入新数据索引E,索引E对应版本1,从而实现源索引库中数据的完整迁移。
在上述实施例中,在接收到数据迁移指令后,响应该数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;并将源索引库中的数据写入目标索引库,在将源索引库中的数据写入目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定数据迁移过程结束后目标索引库对应的第二索引数量信息;将第二索引数量信息与第一索引数量信息进行比较,在第二索引数量信息大于或等于第一索引数量信息的情况下,根据迁移标识信息,确定出源索引库在数据迁移过程中的增量数据,并将增量数据写入目标索引库。在本发明提供的技术方案中,对数据迁移过程进行监控,以确定数据迁移过程是否符合预设迁移正常条件,并对迁移结果进行验证,在第二索引数量信息大于或等于第一索引数量信息的情况下,利用迁移标识信息准确地确定出数据迁移过程中的增量数据,该增量数据是在数据迁移过程中产生,由此可见本发明中的数据迁移是基于线上进行的,无需暂停分布式搜索引擎与外界间的交互,避免因离线迁移对分布式搜索引擎的正常运行带来的影响;且通过引入迁移标识信息,保证增量数据确定的准确性,实现数据完整有序地线上迁移,提高数据迁移的效率。
如图2所示,在本发明一示例性实施例中,所述方法还包括:
步骤40,在所述数据迁移过程不符合所述预设迁移正常条件的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
在一实施例中,存在数据迁移过程不符合预设迁移正常的情况,即数据迁移失败的情况,例如存在网络异常无法实现数据迁移,此时重新确定目标索引库、迁移标识信息和第一索引数量信息,并重新将源索引库中的数据写入目标索引库,即再次执行数据迁移。同样地,在数据迁移过程中会存在两种情况,即数据迁移过程符合预设迁移正常条件的情况,此时再次执行步骤20,以及数据迁移过程不符合预设迁移正常条件的情况,此时再次执行步骤40。也就是说在数据迁移异常时,自动重试,增加数据迁移成功的可能性,并且避免人工因素的介入,自动化程度较高。
进一步地,所述重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,包括:确定目标索引库、所述迁移标识信息和所述第一索引数量信息对应的确定次数;在所述确定次数小于设定阈值的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息。
在一实施例中,预先设置设定阈值,利用设定阈值对重新确定目标索引库、迁移标识信息和第一索引数量信息的次数进行限制,从而避免在多次数据迁移失败后仍继续进行数据迁移的情况出现,实现在多次数据迁移失败后及时停止后续流程,避免系统资源的浪费。
举例来说,对源索引库中的数据写入目标索引库的数据迁移过程进行监控,确定数据迁移过程中是否存在异常,若数据迁移过程中存在异常,即数据迁移过程不符合预设迁移正常条件,删除目标索引库、迁移标识信息和第一索引数量信息,并确定目标索引库、迁移标识信息和第一索引数量信息的确定次数,在确定次数为2小于设定阈值3的情况下,重新确定目标索引库、迁移标识信息和第一索引数量信息,并重新开始进行数据迁移任务,即重新将源索引库中的数据写入目标索引库。
如图2所示,在本发明一示例性实施例中,所述方法还包括:
步骤50,在所述第二索引数量信息小于所述第一索引数量信息的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
在一实施例中,将第二索引数量信息与第一索引数量信息进行比较,存在第二索引数量信息大于或等于第一索引数量信息的情况,当然也存在第二索引数量信息小于第一索引数量信息的情况,此时表明在数据迁移过程中存在数据丢失,即数据迁移失败,因此重新确定目标索引库、迁移标识信息和第一索引数量信息,并重新将源索引库中的数据写入目标索引库,即再次执行数据迁移。同样地,在数据迁移过程中会存在两种情况,即数据迁移过程符合预设迁移正常条件的情况,此时再次执行步骤20,以及数据迁移过程不符合预设迁移正常条件的情况,此时再次执行步骤40。也就是说在可能存在数据丢失时,自动重试,增加数据迁移成功的可能性,并且避免人工因素的介入,自动化程度较高。通过对数据迁移过程进行监控,确定数据迁移过程是否存在异常,以及在数据迁移过程符合预设迁移正常条件的情况下,进行数量的验证,通过多重验证的方式,提高数据完整迁移的可能性。
进一步地,所述重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,包括:确定目标索引库、所述迁移标识信息和所述第一索引数量信息对应的确定次数;在所述确定次数小于设定阈值的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息。
在一实施例中,预先设置设定阈值,利用设定阈值对重新确定目标索引库、迁移标识信息和第一索引数量信息的次数进行限制,从而避免在多次数据迁移失败后仍继续进行数据迁移的情况出现,实现在多次数据迁移失败后及时停止后续流程,避免系统资源的浪费。
举例来说,对第二索引数量信息与第一索引数量信息进行对比,在第二索引数量信息小于第一索引数量信息的情况下,删除目标索引库、迁移标识信息和第一索引数量信息,并确定目标索引库、迁移标识信息和第一索引数量信息的确定次数,在确定次数为3等于设定阈值3的情况下,结束后续流程。
当然在一种可能的实现方式中,在所述数据迁移过程不符合所述预设迁移正常条件的情况下,生成数据迁移指令,即重新执行步骤10。在所述第二索引数量信息小于所述第一索引数量信息的情况下,生成数据迁移指令,即重新执行步骤10。
如图3所示,在本发明一示例性实施例中,所述步骤20中确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息的步骤前,所述方法还包括:
步骤60,对所述源索引库中的数据进行分片处理,确定至少两个数据分片;调用至少两个创建的线程异步读取所述至少两个数据分片中的数据,以将所述源索引库中的数据写入所述目标索引库。
在一实施例中,分片处理即对源索引库中数据进行拆分,将一个整体数据拆分为至少两个数据分片,每个数据分片为源索引库中数据的一部分。并调用至少两个创建的线程异步读取至少两个数据分片中的数据,以将源索引库中的数据写入目标索引库。从而可以根据源索引库中数据的大小,对数据分片的数量进行控制,并根据分片数量控制并行的线程,对系统资源的消耗和数据迁移速度进行平衡,有利于系统资源的有效利用。
具体地,在确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息后,设置任务参数,其中任务参数包括数据分片数和线程数等,并开始进行数据迁移的异步任务,即调用多线程异步读取至少两个数据分片中的数据,以将源索引库中的数据写入目标索引库。
在本发明一示例性实施例中,所述步骤30中基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:确定所述源索引库对应的索引别名;建立所述目标索引库与所述索引别名的对应关系,并移除所述源索引库与所述索引别名的对应关系。
在一实施例中,索引别名用于标识不同的索引库,当需要访问索引库时,根据索引库的索引别名进行索引库的区分。在第二索引数量信息大于或等于第一索引数量信息的情况下,需要进行索引别名的切换,即建立源索引库对应的索引别名与目标索引库的对应关系,并移除源索引库与该索引别名的对应关系,从而使得目标索引库替代源索引库,后续过程中将由目标索引库提供索引服务。
在本发明一示例性实施例中,所述步骤10中响应于接收到的数据迁移指令,还包括:将所述目标索引库的刷新参数设置为第一预设值,副本参数设置为第二预设值,以使得在所述数据迁移过程中,所述目标索引库基于所述第一预设值对应的刷新周期进行数据刷新,并基于所述第二预设值进行数据备份。
在一实施例中,在接收数据迁移指令后,不仅要确定目标索引库、迁移标识信息和第一索引数量信息,还需要进行参数的设置,主要是刷新参数和副本参数的设置。具体地,将目标索引库的刷新参数设置为第一预设值,将目标索引库的副本参数设置为第二预设值。其中第一预设值可以为一个较大的数值,即在数据迁移过程中,目标索引库中的数据不稳定,因此设置较长的刷新周期;或者第一预设值用于指示关闭刷新,也就是说在数据迁移过程中,无需为目标索引库进行数据刷新。第二预设值可以为0,即在数据迁移过程中,无需为目标索引库进行数据备份。
相应的,所述步骤30中,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:
将所述目标索引库的所述刷新参数设置为第三预设值,所述副本参数设置为第四预设值,以使得在所述数据迁移过程结束后,所述目标索引库基于所述第三预设值对应的刷新周期进行数据刷新,并基于所述第四预设值进行数据备份;
其中,所述第一预设值对应的刷新周期大于所述第三预设值对应的刷新周期,所述第四预设值大于所述第二预设值。
在一实施例中,在第二索引数量信息大于或等于第一索引数量信息的情况下,对目标索引库再次进行参数的设置。具体地,将目标索引库的刷新参数设置为第三预设值,将目标索引库的副本参数设置为第四预设值,其中第一预设值对应的刷新周期大于第三预设值对应的刷新周期,第四预设值大于第二预设值,也就是说在数据迁移过程结束后,减少目标数据库的刷新周期,保证数据的实时性,并增加目标数据库的数据备份,保证数据的安全性。需要说明的是,在第一预设值用于指示关闭刷新,可以视为刷新周期无限大,即此时仍存在第一预设值对应的刷新周期大于第三预设值对应的刷新周期。举例来说,第三预设值可以为2s,也就是需要在很短的时间对目标索引库进行数据刷新,保证数据更新的实时性;第四预设值可以为2,即为目标索引库建立两个数据副本,降低数据丢失的可能性。
如图4所示,在本发明一示例性实施例中,接收到数据迁移指令后,创建目标索引库,在创建该目标索引库时不指定目标索引库的别名。然后记录源索引库对应的第一索引数量信息;记录开始数据迁移的时间,将记录的该开始数据迁移的时间作为迁移标识信息;并设置目标索引库的参数,即关闭目标索引库的刷新,将副本数设置为零。
进一步地,设置迁移任务参数,迁移任务参数包括线程数和数据分片数等,设置迁移任务参数后,开始数据迁移异步任务,即通过多个线程异步读取至少两个数据分片中的数据,以将源索引库中的数据写入目标索引库。
进一步地,在进行数据迁移过程中,需要对数据迁移过程进行监控,即开启数据迁移监控任务,对迁移任务进行检测,检测多个线程任务是否已经完成,若未完成,则休眠10s继续检测;若已经完成,确定数据迁移过程是否符合预设迁移正常条件,若在数据迁移过程中存在异常即不符合预设迁移正常条件,则删除目标索引库,清理第一索引数量信息和记录的开始数据迁移时间,并确定目标索引库、迁移标识信息和第一索引数量信息的确认次数即重试次数,在确认次数小于3次时,再次重新创建目标索引库,重新确定第一索引数量信息,重新记录开始数据迁移的时间;若确认次数大于3次,结束流程。若在数据迁移过程中不存在异常即符合预设迁移正常条件,则刷新目标索引库,确定目标索引库对应的第二索引数量信息。
进一步地,将第二索引数量信息和第一索引数量信息进行对比,确定第二索引数量信息是否大于或等于第一索引数量信息,若第二索引数量信息是否小于第一索引数量信息,则删除目标索引库,清理第一索引数量信息和记录的开始数据迁移时间,并确定目标索引库、迁移标识信息和第一索引数量信息的确认次数即重试次数,在确认次数小于3次时,再次重新创建目标索引库,重新确定第一索引数量信息,重新记录开始数据迁移的时间;若确认次数大于3次,结束流程。若第二索引数量信息大于或等于第一索引数量信息,则建立目标索引库与索引别名间的关系即将目标索引库纳入别名,并移除索引别名与源索引库的关系即将源索引库移除别名,并将源索引库置位为只读,使得后续过程中不可对源索引库进行数据更改,避免同时存在源索引库和目标索引库造成的数据更新的混乱。
进一步,确定源索引库中更新时间信息晚于记录的开始数据迁移的时间的增量数据,将增量数据导入目标索引库。在将增量数据导入目标索引库时,若目标索引库中已存在相同标识的数据,则选择更新时间信息最晚的数据作为最终数据更新的结果。从而通过上述流程,可以完成对源索引库中的数据在数据迁移开始时和数据迁移过程中的完整迁移,保证数据迁移的安全性,提高数据迁移效率。
示例性装置
基于与本发明方法实施例相同的构思,本发明实施例还提供了一种数据迁移装置。
图5示出了本发明一示例性实施例提供的数据迁移装置的结构示意图,包括:
指令响应模块51,用于响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;
第一迁移处理模块52,用于在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;
第二迁移处理模块53,用于在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
在本发明一示例性实施例中,所述第一迁移处理模块,还用于在所述数据迁移过程不符合所述预设迁移正常条件的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
在本发明一示例性实施例中,所述第二迁移处理模块,还用于在所述第二索引数量信息小于所述第一索引数量信息的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
在本发明一示例性实施例中,所述第一迁移处理模块和/或所述第二迁移处理模块,包括:
次数确定单元,用于确定目标索引库、所述迁移标识信息和所述第一索引数量信息对应的确定次数;
重新处理单元,用于在所述确定次数小于设定阈值的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息。
在本发明一示例性实施例中,所述装置还包括:
数据处理模块,用于对所述源索引库中的数据进行分片处理,确定至少两个数据分片;调用至少两个创建的线程异步读取所述至少两个数据分片中的数据,以将所述源索引库中的数据写入所述目标索引库。
在本发明一示例性实施例中,所述装置还包括:
别名处理模块,用于确定所述源索引库对应的索引别名;建立所述目标索引库与所述索引别名的对应关系,并移除所述源索引库与所述索引别名的对应关系。
在本发明一示例性实施例中,所述指令响应模块,还用于将所述目标索引库的刷新参数设置为第一预设值,副本参数设置为第二预设值,以使得在所述数据迁移过程中,所述目标索引库基于所述第一预设值对应的刷新周期进行数据刷新,并基于所述第二预设值进行数据备份;
所述第二迁移处理模块,还用于将所述目标索引库的所述刷新参数设置为第三预设值,所述副本参数设置为第四预设值,以使得在所述数据迁移过程结束后,所述目标索引库基于所述第三预设值对应的刷新周期进行数据刷新,并基于所述第四预设值进行数据备份;
所述第一预设值对应的刷新周期大于所述第三预设值对应的刷新周期,所述第四预设值大于所述第二预设值。
在本发明一示例性实施例中,在所述迁移标识信息为迁移时间信息时,第二迁移处理模块,还用于在所述源索引库中,确定出更新时间信息晚于所述迁移时间信息的第一数据,将所述第一数据作为所述数据迁移过程中的增量数据。
在本发明一示例性实施例中,在所述迁移标识信息为迁移版本信息时,第二迁移处理模块,还用于在所述源索引库中,确定出索引版本信息大于所述迁移版本信息的第二数据,将所述第二数据作为所述数据迁移过程中的增量数据。
示例性电子设备
图6图示了根据本发明实施例的电子设备的框图。
如图6所示,电子设备60包括一个或多个处理器61和存储器62。
处理器61可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备60中的其他组件以执行期望的功能。
存储器62可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器61可以运行所述程序指令,以实现上文所述的本发明的各个实施例的数据迁移方法以及/或者其他期望的功能。
在一个示例中,电子设备60还可以包括:输入装置63和输出装置64,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
当然,为了简化,图6中仅示出了该电子设备60中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备60还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
第六方面,除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的数据迁移方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的数据迁移方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述发明的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本发明中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。
提供所发明的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此发明的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此发明的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种数据迁移方法,其特征在于,包括:
响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;
在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;
在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述数据迁移过程不符合所述预设迁移正常条件的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库;
和/或,在所述第二索引数量信息小于所述第一索引数量信息的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,并重新将所述源索引库中的数据写入所述目标索引库。
3.根据权利要求2所述的方法,其特征在于,所述重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息,包括:
确定目标索引库、所述迁移标识信息和所述第一索引数量信息对应的确定次数;
在所述确定次数小于设定阈值的情况下,重新确定所述目标索引库、所述迁移标识信息和所述第一索引数量信息。
4.根据权利要求1所述的方法,其特征在于,所述确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息的步骤前,所述方法还包括:
对所述源索引库中的数据进行分片处理,确定至少两个数据分片;
调用至少两个创建的线程异步读取所述至少两个数据分片中的数据,以将所述源索引库中的数据写入所述目标索引库。
5.根据权利要求1所述的方法,其特征在于,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:
确定所述源索引库对应的索引别名;
建立所述目标索引库与所述索引别名的对应关系,并移除所述源索引库与所述索引别名的对应关系。
6.根据权利要求1所述的方法,其特征在于,所述响应于接收到的数据迁移指令,还包括:
将所述目标索引库的刷新参数设置为第一预设值,副本参数设置为第二预设值,以使得在所述数据迁移过程中,所述目标索引库基于所述第一预设值对应的刷新周期进行数据刷新,并基于所述第二预设值进行数据备份;
所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据的步骤前,所述方法还包括:
将所述目标索引库的所述刷新参数设置为第三预设值,所述副本参数设置为第四预设值,以使得在所述数据迁移过程结束后,所述目标索引库基于所述第三预设值对应的刷新周期进行数据刷新,并基于所述第四预设值进行数据备份;
其中,所述第一预设值对应的刷新周期大于所述第三预设值对应的刷新周期,所述第四预设值大于所述第二预设值。
7.根据权利要求1-6任一项所述的方法,其特征在于,在所述迁移标识信息为迁移时间信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:
在所述源索引库中,确定出更新时间信息晚于所述迁移时间信息的第一数据,将所述第一数据作为所述数据迁移过程中的增量数据;
在所述迁移标识信息为迁移版本信息时,所述基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,包括:
在所述源索引库中,确定出索引版本信息大于所述迁移版本信息的第二数据,将所述第二数据作为所述数据迁移过程中的增量数据。
8.一种数据迁移装置,其特征在于,包括:
指令响应模块,用于响应于接收到的数据迁移指令,确定目标索引库、迁移标识信息和源索引库对应的第一索引数量信息;
第一迁移处理模块,用于在所述源索引库中的数据写入所述目标索引库的数据迁移过程符合预设迁移正常条件的情况下,确定所述数据迁移过程结束后所述目标索引库对应的第二索引数量信息;
第二迁移处理模块,用于在所述第二索引数量信息大于或等于所述第一索引数量信息的情况下,基于所述迁移标识信息,确定所述源索引库在所述数据迁移过程中的增量数据,并将所述增量数据写入所述目标索引库。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一项所述的数据迁移方法。
10.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一项所述的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211563812.8A CN115905179A (zh) | 2022-12-07 | 2022-12-07 | 一种数据迁移方法、装置、可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211563812.8A CN115905179A (zh) | 2022-12-07 | 2022-12-07 | 一种数据迁移方法、装置、可读存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905179A true CN115905179A (zh) | 2023-04-04 |
Family
ID=86489518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211563812.8A Pending CN115905179A (zh) | 2022-12-07 | 2022-12-07 | 一种数据迁移方法、装置、可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905179A (zh) |
-
2022
- 2022-12-07 CN CN202211563812.8A patent/CN115905179A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9063894B2 (en) | Cascade ordering | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
US20130246358A1 (en) | Online verification of a standby database in log shipping physical replication environments | |
US20140068325A1 (en) | Test case result processing | |
CN115145697A (zh) | 数据库事务的处理方法、装置及电子设备 | |
US8489938B2 (en) | Diagnostic data capture in a computing environment | |
CN109726264B (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
CN105608150A (zh) | 一种业务数据的处理方法及系统 | |
WO2015173857A1 (ja) | 情報処理方法及び情報処理装置 | |
CN112231403B (zh) | 数据同步的一致性校验方法、装置、设备和存储介质 | |
EP3149587B1 (en) | System and method for the production of job level pre-processed backup of critical data and/or datasets in a mainframe computing environment | |
US20150378799A1 (en) | Automatic memory leak detection | |
US9009430B2 (en) | Restoration of data from a backup storage volume | |
CN115905179A (zh) | 一种数据迁移方法、装置、可读存储介质及电子设备 | |
CN117112522A (zh) | 并发进程日志管理方法、装置、设备和存储介质 | |
CN108197041B (zh) | 一种确定子进程的父进程的方法、设备及其存储介质 | |
CN111078418A (zh) | 操作同步方法、装置、电子设备及计算机可读存储介质 | |
CN111427588A (zh) | 中止固件包的安装 | |
CN107958414B (zh) | 一种清除cics系统长交易的方法及系统 | |
CN107092671B (zh) | 一种元信息管理的方法及设备 | |
US8516297B2 (en) | Recovery from medium error on tape on which data and metadata are to be stored by using medium to medium data copy | |
KR20230004235A (ko) | 제어 장치, 제어 방법, 및 프로그램 | |
CN110716798B (zh) | 一种php定时任务管理方法及系统 | |
CN114490802A (zh) | 一种时序数据管理方法、装置、设备及可读存储介质 | |
CN112035292A (zh) | 一种数据写入异常的处理方法、装置、设备及存储介质 |
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 |