CN116627934A - 数据迁移方法及装置 - Google Patents

数据迁移方法及装置 Download PDF

Info

Publication number
CN116627934A
CN116627934A CN202310531205.1A CN202310531205A CN116627934A CN 116627934 A CN116627934 A CN 116627934A CN 202310531205 A CN202310531205 A CN 202310531205A CN 116627934 A CN116627934 A CN 116627934A
Authority
CN
China
Prior art keywords
read
write state
preset
condition
preset read
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
Application number
CN202310531205.1A
Other languages
English (en)
Inventor
宁杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
CCB Finetech Co Ltd
Original Assignee
China Construction Bank Corp
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202310531205.1A priority Critical patent/CN116627934A/zh
Publication of CN116627934A publication Critical patent/CN116627934A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种数据迁移方法及装置,涉及大数据技术领域,其中该方法包括:采用JSON格式导出Cassandra数据库中的第一业务数据;读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中。本发明可以提高数据迁移效率。

Description

数据迁移方法及装置
技术领域
本发明涉及大数据技术领域,尤其涉及数据迁移方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
Cassandra数据库,作为分布式数据库提供了可调节一致性级别,最终实现对应级别的最终一致性。但是在日常维护和灾备建设中,有些特性及表现不太适合内部系统建设。TiKV数据库,作为分布式键值数据库,在满足业务系统要求前提下,同样提供了高可用,高扩展能力。从Cassandra向TiKV数据库迁移数据时,现有方案需要对在线业务停机,然后根据已有的工具针对两种库分别进行数据导出和数据导入。由于数据基础大,导出和导入操作也是比较耗时的操作,在线业务不能接受长时间的停止。如果不停机,在线业务有写入请求需要处理,这部分增量数据也需要迁移处理。为了支持在线迁移数据,在现有导出和导入流程中,需要额外的工具提供增量数据处理。现有的数据迁移方法迁移效率低,操作繁琐。
发明内容
本发明实施例提供一种数据迁移方法,用以在不停机的情况下实现高效的数据迁移,提高数据迁移效率,简化数据迁移操作过程,该方法包括:
采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
本发明实施例还提供一种数据迁移装置,用以在不停机的情况下实现高效的数据迁移,提高数据迁移效率,简化数据迁移操作过程,该装置包括:
第一处理模块,用于采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
第二处理模块,用于读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
第三处理模块,用于根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
第四处理模块,用于根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据迁移方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据迁移方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据迁移方法。
本发明实施例中,采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。这样,在不停机的情况下就能实现高效的数据迁移,提高数据迁移效率,简化数据迁移操作过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种数据迁移方法的流程图;
图2为本发明实施例中提供的一种采用JSON格式导出Cassandra数据库中的第一业务数据的方法流程图;
图3为本发明实施例中提供的一种根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中的方法流程图;
图4为本发明实施例中提供的一种数据迁移装置的示意图;
图5为本发明实施例中提供的一种计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
经研究发现,Cassandra数据库,作为分布式数据库提供了可调节一致性级别,最终实现对应级别的最终一致性。但是在日常维护和灾备建设中,有些特性及表现不太适合内部系统建设。TiKV数据库,作为分布式键值数据库,在满足业务系统要求前提下,同样提供了高可用,高扩展能力。从Cassandra向TiKV数据库迁移数据时,现有方案需要对在线业务停机,然后根据已有的工具针对两种库分别进行数据导出和数据导入。由于数据基础大,导出和导入操作也是比较耗时的操作,在线业务不能接受长时间的停止。如果不停机,在线业务有写入请求需要处理,这部分增量数据也需要迁移处理。为了支持在线迁移数据,在现有导出和导入流程中,需要额外的工具提供增量数据处理。现有的数据迁移方法迁移效率低,操作繁琐。
针对上述研究,如图1所示,本发明实施例提供一种数据迁移方法,包括:
S101:采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
S102:读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
S103:根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
S104:根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
本发明实施例中,采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。这样,在不停机的情况下就能实现高效的数据迁移,提高数据迁移效率,简化数据迁移操作过程。
下面对上述数据迁移方法加以详细说明。
针对上述S101,第一业务数据例如包括:Cassandra数据库中的存量数据,也即在预设导出时刻开始做数据迁移,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据。
具体的,采用JSON格式导出Cassandra数据库中的第一业务数据时,可以使用已有的数据导出工具进行导出,此处不再赘述。
此外,在第一业务数据导出过程中,可能会存在导出失败的情况,为了哪一步提升数据迁移效率,如图2所示,为本发明实施例提供的一种采用JSON格式导出Cassandra数据库中的第一业务数据的方法流程图,包括:
S201:在Cassandra数据库中的第一业务数据导出失败时,从错误日志中提取导出失败的第一业务数据内容范围;
S202:根据导出失败的第一业务数据内容范围,生成新导出脚本;
S203:执行新导出脚本,导出失败的第一业务数据内容范围。
针对上述S1012~S103,从JSON格式的第一业务数据中读取出数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移。
其中,TiKV数据库中以key(键)-value(值)的方式存储数据,因此,生成第一业务数据在TiKV数据库中对应的键和值后可以完成对第一业务数据的迁移。
针对上述S104,流转条件例如包括:第一流转条件、第二流转条件、第三流转条件、第四流转条件、第五流转条件、第六流转条件、第七流转条件。
其中,第一流转条件包括:根据启动过程日志确定启动成功(例如,检查所有需要连接库的应用的启动过程日志,对应状态正确的视为启动成功);第二流转条件包括:根据启动过程日志,确定TiKV数据库集群启动无异常;第三流转条件包括:根据启动过程日志,确定TiKV数据库集群启动异常;第四流转条件包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志正确;第五流转条件,包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志异常;第六流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志没有异常情况;第七流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志有异常情况。
其中,消费者模块是指用于读取队列中需要写入到对应库中的消息,根据具体操作类型(例如插入、更新、删除),写入到对应库中的功能模块。
此外,预设读写状态例如包括:第一预设读写状态、第二预设读写状态、第三预设读写状态、第四预设读写状态、第五预设读写状态、第六预设读写状态。
其中,第一预设读写状态包括:配置单写,双库启动开关关闭;第二预设读写状态包括:配置单写,双库启动开关开启,双读模式配置只读源库;或者,配置双写先写源库,双库启动开关开启,双读模式配置只读源库;第三预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读源库;或者,配置双写先写源库,双读启动开关开启,双读模式配置先读源库,消费者模块启动;第四预设读写状态包括:第三预设读写状态和第五预设读写状态同时存在的状态;第五预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读目标库;或者,配置双写先写目标库,双库启动开关开启,双读模式配置先读目标库,消费者模块启动;第六预设读写状态包括:配置单写,双读启动开关关闭,消费者模块不启动。
其中,在迁移操作中源库包括:Cassandra数据库,目标库包括:TiKV数据库。
本发明实施例所述的单写单读启动包括:只连接单库,读写都只访问单库。双库启动包括:连接双库启动。写入库情况:有单写情况,有通过队列异步双写情况。读取库情况:只读源库;先读源库,再读目标库;先读目标库,再读源库;只读目标库。.
如图3所示,为本发明实施例提供的一种根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中的方法流程图,包括:
S301:初始执行第一预设读写状态,在满足第一流转条件时,切换到第二预设读写状态。
本发明一实施例中,初始执行第一预设读写状态,在满足第一流转条件时,切换到第二预设读写状态,包括:初始执行第一预设读写状态,在满足第一流转条件时,针对需要双写的应用,配置双写,开启队列写入;双库启动开关开启,只读源库,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块保持关闭。
S302:在执行第二预设读写状态的过程中,在满足第二流转条件时,切换到第三预设读写状态。
本发明一实施例中,在执行第二预设读写状态的过程中,在满足第二流转条件时,切换到第三预设读写状态,包括:在执行第二预设读写状态的过程中,在满足第二流转条件时,导出Cassandra数据库中的第二业务数据;将第二业务数据导入TiKV数据库;校验导入TiKV数据库的第二业务数据;切换双读模式,重启生效客户端或者切换生效客户端;消费者模块启动。
S303:在执行第二预设读写状态的过程中,在满足第三流转条件时,切换到第一预设读写状态。
本发明一实施例中,在执行第二预设读写状态的过程中,在满足第三流转条件时,切换到第一预设读写状态,包括:在执行第二预设读写状态的过程中,在满足第三流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块保持关闭。
S304:在执行第三预设读写状态的过程中,在满足第四流转条件时,切换到第五预设读写状态,其中从第三预设读写状态切换到第五预设读写状态的过程中存在第四预设读写状态。
本发明一实施例中,在执行第三预设读写状态的过程中,在满足第四流转条件时,切换到第五预设读写状态,包括:在执行第三预设读写状态的过程中,在满足第四流转条件时,配置双写先写目标库,读模式切换为双库启动-先读目标库。
S305:在执行第三预设读写状态的过程中,在满足第五流转条件时,切换到第一预设读写状态。
本发明一实施例中,在执行第三预设读写状态的过程中,在满足第五流转条件时,切换到第一预设读写状态,包括:在执行第三预设读写状态的过程中,在满足第五流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块关闭。
S306:在执行第五预设读写状态的过程中,在满足第六流转条件时,切换到第六预设读写状态。
本发明一实施例中,在执行第五预设读写状态的过程中,在满足第六流转条件时,切换到第六预设读写状态,包括:在执行第五预设读写状态的过程中,在满足第六流转条件时,单读单写模式启动,检查日志状态切换后;重启连接Cassandra数据库的应用程序;检查日志状态及资源连接情况。
S307:在执行第五预设读写状态的过程中,满足第七流转条件时,导出cassandra数据库中的全部业务数据,使用检查工具,筛选出第二业务数据导入TiKV数据库,双读源库数据修复后切换到第六预设读写状态。
S308:在执行第五预设读写状态的过程中,满足第七流转条件时,双读源库数据无法修复,切换到第一预设读写状态。
此外,本发明另一实施例中,在进行增量数据迁移时,也可以直接同步双写,不基于队列,全量数据导入时,有记录就不写入的方式。该种方式需要针对删除类操作单独标记,避免已删除数据在全量导入时又出现。
本发明一实施例中,在执行第五预设读写状态的过程中,满足第七流转条件时,双读源库数据无法修复,切换到第一预设读写状态,包括:在执行第五预设读写状态的过程中,满足第七流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块关闭。
本发明实施例中还提供了一种数据迁移装置,如下面的实施例所述。由于该装置解决问题的原理与数据迁移方法相似,因此该装置的实施可以参见数据迁移方法的实施,重复之处不再赘述。
如图4所示,为本发明实施例提供的一种数据迁移装置的示意图,包括:
第一处理模块401,用于采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
第二处理模块402,用于读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
第三处理模块403,用于根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
第四处理模块404,用于根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
在一种可能的实施方式中,第一处理模块,具体用于在Cassandra数据库中的第一业务数据导出失败时,从错误日志中提取导出失败的第一业务数据内容范围;根据导出失败的第一业务数据内容范围,生成新导出脚本;执行新导出脚本,导出失败的第一业务数据内容范围。
在一种可能的实施方式中,第一流转条件、第二流转条件、第三流转条件、第四流转条件、第五流转条件、第六流转条件、第七流转条件;其中,第一流转条件包括:根据启动过程日志确定启动成功;第二流转条件包括:根据启动过程日志,确定TiKV数据库集群启动无异常;第三流转条件包括:根据启动过程日志,确定TiKV数据库集群启动异常;第四流转条件包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志正确;第五流转条件,包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志异常;第六流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志没有异常情况;第七流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志有异常情况。
在一种可能的实施方式中,预设读写状态包括:第一预设读写状态、第二预设读写状态、第三预设读写状态、第四预设读写状态、第五预设读写状态、第六预设读写状态;其中,第一预设读写状态包括:配置单写,双库启动开关关闭;第二预设读写状态包括:配置单写,双库启动开关开启,双读模式配置只读源库;或者,配置双写先写源库,双库启动开关开启,双读模式配置只读源库;第三预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读源库;或者,配置双写先写源库,双读启动开关开启,双读模式配置先读源库,消费者模块启动;第四预设读写状态包括:第三预设读写状态和第五预设读写状态同时存在的状态;第五预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读目标库;或者,配置双写先写目标库,双库启动开关开启,双读模式配置先读目标库,消费者模块启动;第六预设读写状态包括:配置单写,双读启动开关关闭,消费者模块不启动。
在一种可能的实施方式中,第四处理模块,具体用于初始执行第一预设读写状态,在满足第一流转条件时,切换到第二预设读写状态;在执行第二预设读写状态的过程中,在满足第二流转条件时,切换到第三预设读写状态;在执行第二预设读写状态的过程中,在满足第三流转条件时,切换到第一预设读写状态;在执行第三预设读写状态的过程中,在满足第四流转条件时,切换到第五预设读写状态,其中从第三预设读写状态切换到第五预设读写状态的过程中存在第四预设读写状态;在执行第三预设读写状态的过程中,在满足第五流转条件时,切换到第一预设读写状态;在执行第五预设读写状态的过程中,在满足第六流转条件时,切换到第六预设读写状态;在执行第五预设读写状态的过程中,满足第七流转条件时,导出cassandra数据库中的全部业务数据,使用检查工具,筛选出第二业务数据导入TiKV数据库,双读源库数据修复后切换到第六预设读写状态;在执行第五预设读写状态的过程中,满足第七流转条件时,双读源库数据无法修复,切换到第一预设读写状态。
在一种可能的实施方式中,第四处理模块,具体用于初始执行第一预设读写状态,在满足第一流转条件时,针对需要双写的应用,配置双写,开启队列写入;双库启动开关开启,只读源库,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块保持关闭。
在一种可能的实施方式中,第四处理模块,具体用于在执行第二预设读写状态的过程中,在满足第二流转条件时,导出Cassandra数据库中的第二业务数据;将第二业务数据导入TiKV数据库;校验导入TiKV数据库的第二业务数据;切换双读模式,重启生效客户端或者切换生效客户端;消费者模块启动。
在一种可能的实施方式中,第四处理模块,具体用于在执行第二预设读写状态的过程中,在满足第三流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块保持关闭。
在一种可能的实施方式中,第四处理模块,具体用于在执行第三预设读写状态的过程中,在满足第四流转条件时,配置双写先写目标库,读模式切换为双库启动-先读目标库。
在一种可能的实施方式中,第四处理模块,具体用于在执行第三预设读写状态的过程中,在满足第五流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块关闭。
在一种可能的实施方式中,第四处理模块,具体用于在执行第五预设读写状态的过程中,在满足第六流转条件时,单读单写模式启动,检查日志状态切换后;重启连接Cassandra数据库的应用程序;检查日志状态及资源连接情况。
在一种可能的实施方式中,第四处理模块,具体用于在执行第五预设读写状态的过程中,满足第七流转条件时,关闭队列写入;双读启动开关关闭,重启生效客户端或者切换生效客户端;日志检查所有节点状态;消费者模块关闭。
基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述数据迁移方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据迁移方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据迁移方法。
本发明实施例中,采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。这样,在不停机的情况下就能实现高效的数据迁移,提高数据迁移效率,简化数据迁移操作过程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种数据迁移方法,其特征在于,包括:
采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
2.如权利要求1所述的数据迁移方法,其特征在于,采用JSON格式导出Cassandra数据库中的第一业务数据,包括:
在Cassandra数据库中的第一业务数据导出失败时,从错误日志中提取导出失败的第一业务数据内容范围;
根据导出失败的第一业务数据内容范围,生成新导出脚本;
执行新导出脚本,导出失败的第一业务数据内容范围。
3.如权利要求1所述的数据迁移方法,其特征在于,流转条件包括:第一流转条件、第二流转条件、第三流转条件、第四流转条件、第五流转条件、第六流转条件、第七流转条件;其中,第一流转条件包括:根据启动过程日志确定启动成功;第二流转条件包括:根据启动过程日志,确定TiKV数据库集群启动无异常;第三流转条件包括:根据启动过程日志,确定TiKV数据库集群启动异常;第四流转条件包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志正确;第五流转条件,包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志异常;第六流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志没有异常情况;第七流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志有异常情况。
4.如权利要求3所述的数据迁移方法,其特征在于,预设读写状态包括:第一预设读写状态、第二预设读写状态、第三预设读写状态、第四预设读写状态、第五预设读写状态、第六预设读写状态;其中,第一预设读写状态包括:配置单写,双库启动开关关闭;第二预设读写状态包括:配置单写,双库启动开关开启,双读模式配置只读源库;或者,配置双写先写源库,双库启动开关开启,双读模式配置只读源库;第三预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读源库;或者,配置双写先写源库,双读启动开关开启,双读模式配置先读源库,消费者模块启动;第四预设读写状态包括:第三预设读写状态和第五预设读写状态同时存在的状态;第五预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读目标库;或者,配置双写先写目标库,双库启动开关开启,双读模式配置先读目标库,消费者模块启动;第六预设读写状态包括:配置单写,双读启动开关关闭,消费者模块不启动。
5.如权利要求4所述的数据迁移方法,其特征在于,根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中,包括:
初始执行第一预设读写状态,在满足第一流转条件时,切换到第二预设读写状态;
在执行第二预设读写状态的过程中,在满足第二流转条件时,切换到第三预设读写状态;
在执行第二预设读写状态的过程中,在满足第三流转条件时,切换到第一预设读写状态;
在执行第三预设读写状态的过程中,在满足第四流转条件时,切换到第五预设读写状态,其中从第三预设读写状态切换到第五预设读写状态的过程中存在第四预设读写状态;
在执行第三预设读写状态的过程中,在满足第五流转条件时,切换到第一预设读写状态;
在执行第五预设读写状态的过程中,在满足第六流转条件时,切换到第六预设读写状态;
在执行第五预设读写状态的过程中,满足第七流转条件时,导出cassandra数据库中的全部业务数据,使用检查工具,筛选出第二业务数据导入TiKV数据库,双读源库数据修复后切换到第六预设读写状态;
在执行第五预设读写状态的过程中,满足第七流转条件时,双读源库数据无法修复,切换到第一预设读写状态。
6.如权利要求5所述的数据迁移方法,其特征在于,初始执行第一预设读写状态,在满足第一流转条件时,切换到第二预设读写状态,包括:
初始执行第一预设读写状态,在满足第一流转条件时,针对需要双写的应用,配置双写,开启队列写入;
双库启动开关开启,只读源库,重启生效客户端或者切换生效客户端;
日志检查所有节点状态;
消费者模块保持关闭。
7.如权利要求5所述的数据迁移方法,其特征在于,在执行第二预设读写状态的过程中,在满足第二流转条件时,切换到第三预设读写状态,包括:
在执行第二预设读写状态的过程中,在满足第二流转条件时,导出Cassandra数据库中的第二业务数据;
将第二业务数据导入TiKV数据库;
校验导入TiKV数据库的第二业务数据;
切换双读模式,重启生效客户端或者切换生效客户端;
消费者模块启动。
8.如权利要求5所述的数据迁移方法,其特征在于,在执行第二预设读写状态的过程中,在满足第三流转条件时,切换到第一预设读写状态,包括:
在执行第二预设读写状态的过程中,在满足第三流转条件时,关闭队列写入;
双读启动开关关闭,重启生效客户端或者切换生效客户端;
日志检查所有节点状态;
消费者模块保持关闭。
9.如权利要求5所述的数据迁移方法,其特征在于,在执行第三预设读写状态的过程中,在满足第四流转条件时,切换到第五预设读写状态,包括:
在执行第三预设读写状态的过程中,在满足第四流转条件时,配置双写先写目标库,读模式切换为双库启动-先读目标库。
10.如权利要求5所述的数据迁移方法,其特征在于,在执行第三预设读写状态的过程中,在满足第五流转条件时,切换到第一预设读写状态,包括:
在执行第三预设读写状态的过程中,在满足第五流转条件时,关闭队列写入;
双读启动开关关闭,重启生效客户端或者切换生效客户端;
日志检查所有节点状态;
消费者模块关闭。
11.如权利要求5所述的数据迁移方法,其特征在于,在执行第五预设读写状态的过程中,在满足第六流转条件时,切换到第六预设读写状态,包括:
在执行第五预设读写状态的过程中,在满足第六流转条件时,单读单写模式启动,检查日志状态切换后;
重启连接Cassandra数据库的应用程序;
检查日志状态及资源连接情况。
12.如权利要求5所述的数据迁移方法,其特征在于,在执行第五预设读写状态的过程中,满足第七流转条件时,双读源库数据无法修复,切换到第一预设读写状态,包括:
在执行第五预设读写状态的过程中,满足第七流转条件时,关闭队列写入;
双读启动开关关闭,重启生效客户端或者切换生效客户端;
日志检查所有节点状态;
消费者模块关闭。
13.一种数据迁移装置,其特征在于,包括:
第一处理模块,用于采用JSON格式导出Cassandra数据库中的第一业务数据,其中,第一业务数据包括在预设导出时刻前写入Cassandra数据库中的业务数据;
第二处理模块,用于读取JSON格式的第一业务数据,得到第一业务数据的数据类型前缀、环境变量、数据内容类型、业务主键、寻址目标值、更新时间、附属信息;
第三处理模块,用于根据数据类型前缀、环境变量、数据内容类型、业务主键生成TiKV数据库中的键,根据寻址目标值、更新时间、附属信息作为TiKV数据库中的值,完成第一业务数据迁移;
第四处理模块,用于根据预先配置的流转条件、以及多种预设读写状态,将Cassandra数据库中的第二业务数据迁移到TiKV数据库中;其中,第二业务数据包括在预设导出时刻后写入Cassandra数据库中的业务数据。
14.如权利要求13所述的数据迁移装置,其特征在于,第一处理模块,具体用于在Cassandra数据库中的第一业务数据导出失败时,从错误日志中提取导出失败的第一业务数据内容范围;根据导出失败的第一业务数据内容范围,生成新导出脚本;执行新导出脚本,导出失败的第一业务数据内容范围。
15.如权利要求13所述的数据迁移装置,其特征在于,第一流转条件、第二流转条件、第三流转条件、第四流转条件、第五流转条件、第六流转条件、第七流转条件;其中,第一流转条件包括:根据启动过程日志确定启动成功;第二流转条件包括:根据启动过程日志,确定TiKV数据库集群启动无异常;第三流转条件包括:根据启动过程日志,确定TiKV数据库集群启动异常;第四流转条件包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志正确;第五流转条件,包括:消费者模块已启动,消费队列无堆积,且根据启动过程日志确定TiKV数据库集群切换日志异常;第六流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志没有异常情况;第七流转条件:消费者模块已经启动,消费队列无堆积,根据启动过程日志,确定切换日志正确,检查双读源库情况统计日志有异常情况。
16.如权利要求15所述的数据迁移装置,其特征在于,预设读写状态包括:第一预设读写状态、第二预设读写状态、第三预设读写状态、第四预设读写状态、第五预设读写状态、第六预设读写状态;其中,第一预设读写状态包括:配置单写,双库启动开关关闭;第二预设读写状态包括:配置单写,双库启动开关开启,双读模式配置只读源库;或者,配置双写先写源库,双库启动开关开启,双读模式配置只读源库;第三预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读源库;或者,配置双写先写源库,双读启动开关开启,双读模式配置先读源库,消费者模块启动;第四预设读写状态包括:第三预设读写状态和第五预设读写状态同时存在的状态;第五预设读写状态包括:配置单写,双库启动开关开启,双读模式配置先读目标库;或者,配置双写先写目标库,双库启动开关开启,双读模式配置先读目标库,消费者模块启动;第六预设读写状态包括:配置单写,双读启动开关关闭,消费者模块不启动。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12任一所述方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至12任一所述方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至12任一所述方法。
CN202310531205.1A 2023-05-11 2023-05-11 数据迁移方法及装置 Pending CN116627934A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310531205.1A CN116627934A (zh) 2023-05-11 2023-05-11 数据迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310531205.1A CN116627934A (zh) 2023-05-11 2023-05-11 数据迁移方法及装置

Publications (1)

Publication Number Publication Date
CN116627934A true CN116627934A (zh) 2023-08-22

Family

ID=87620564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310531205.1A Pending CN116627934A (zh) 2023-05-11 2023-05-11 数据迁移方法及装置

Country Status (1)

Country Link
CN (1) CN116627934A (zh)

Similar Documents

Publication Publication Date Title
CN113111129B (zh) 数据同步方法、装置、设备及存储介质
CN101308471B (zh) 一种恢复数据的方法及装置
JP2010134522A (ja) データベース管理方法、データベース管理プログラム、および、データベース管理装置
JP2010224845A (ja) ストレージ装置
CN110659259A (zh) 数据库迁移方法、服务器以及计算机存储介质
CN114077518A (zh) 数据快照方法、装置、设备及存储介质
US20240160528A1 (en) Data Storage Method and Apparatus in Storage System
CN109189326B (zh) 分布式集群的管理方法和装置
CN110895545B (zh) 共享数据同步方法及装置
CN109542860B (zh) 基于hdfs的业务数据管理方法、终端设备
CN110298031B (zh) 一种词典服务系统及模型版本一致性配送方法
CN116303789A (zh) 多分片多副本数据库并行同步方法、装置及可读介质
CN116627934A (zh) 数据迁移方法及装置
CN115481103A (zh) 一种数据库扩缩容方法、装置及计算机可读存储介质
CN116069765A (zh) 数据迁移方法、装置、电子设备及存储介质
CN113268206B (zh) 一种网络靶场资源热插拔实现方法与系统
CN109582497A (zh) 一种基于动态数据增量快速应急启动方法
CN115587141A (zh) 一种数据库同步方法和装置
CN115391337A (zh) 数据库分区的方法、装置、存储介质及电子设备
CN115080309A (zh) 数据备份系统、方法、存储介质以及电子设备
CN111880803B (zh) 一种应用于多平台的软件构建方法及装置
CN104809033B (zh) 一种备份方法及系统
CN111400098A (zh) 一种副本管理方法、装置、电子设备及存储介质
CN114675995A (zh) 数据备份方法、装置和电子设备
CN104461382A (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