CN117171129A - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117171129A CN117171129A CN202311112300.4A CN202311112300A CN117171129A CN 117171129 A CN117171129 A CN 117171129A CN 202311112300 A CN202311112300 A CN 202311112300A CN 117171129 A CN117171129 A CN 117171129A
- Authority
- CN
- China
- Prior art keywords
- data
- log
- database system
- analyzed
- data table
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000013508 migration Methods 0.000 claims abstract description 52
- 230000005012 migration Effects 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 description 13
- 238000011022 operating instruction Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,涉及数据库存储技术领域。该方法包括:从第一数据库系统的存储引擎中获取待解析日志;根据待解析日志的存储区域,从待解析日志中解析出键值对数据;基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句;通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,实现不同数据库生态系统之间的数据迁移任务。
Description
技术领域
本申请涉及数据库存储技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
数据迁移是将源数据库系统的数据迁移至目标数据库系统的一种技术,例如在执行存储集群间的主备同步、故障迁移任务时,需要保证源数据库系统与目标数据库系统的数据完全一致,因此数据迁移的精确性和高效性尤为重要。
现有数据库系统通常都有各自的同步及迁移方案,以业界比较成熟的数据库解决方案MySQL(一种关系型数据库管理系统)为例,其可以基于binlog(二进制日志)机制进行数据的迁移与同步,但是该方法在处理数据迁移问题过程中的产品局限性较大,binlog机制只能兼容MySQL数据库系统本身,当脱离了MySQL体系,基于binlog机制的数据迁移方法就不再适用,存在通用性差的问题。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,可以解决现有数据迁移方案通用性较差的问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种数据处理方法,该方法包括:
从第一数据库系统的存储引擎中获取待解析日志;其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;第一结构化查询语句为适用于第一数据库系统的操作指令;
根据待解析日志的存储区域,从待解析日志中解析出键值对数据;
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句;其中,第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。
在一个可能的实现方式中,上述根据待解析日志的存储区域,从待解析日志中解析出键值对数据,包括:
当待解析日志的存储区域为用户域,从待解析日志中提取得到重做日志;当重做日志存在相关联的提交日志,则从重做日志中解析出用户域对应的键值对数据;
当待解析日志的存储区域为系统域,从待解析日志解析出系统域对应的键值对数据。
在一个可能的实现方式中,上述从待解析日志中提取得到重做日志,包括:
从待解析日志中提取得到重做日志和重做日志的关键字;
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句,包括如下至少一项:
基于用户域对应的键值对数据的第一目标主键,从数据字典表和元数据历史数据表提取数据表的第一元数据;根据第一元数据将第一键值对数据转化为数据表的字段信息;基于字段信息和关键字生成第二结构化查询语句;
基于系统域对应的键值对数据的第二目标主键,从数据字典表和元数据历史数据表提取数据表的第二元数据;根据第二元数据从第二键值对数据中提取第二结构化查询语句。
在又一个可能的实现方式中,上述从数据字典表和元数据历史数据表提取数据表的第一元数据,包括:
从数据字典表获取数据表的属性信息;
从元数据历史数据表中获取数据表对应的字符串信息;
将字符串信息解析得到数据表的历史属性信息;
将属性信息和历史属性信息作为第一元数据。
在又一个可能的实现方式中,上述方法,还包括:
当重做日志存在相关联的回滚日志,则从第一数据库系统的缓存中删除重做日志。
在另一个可能的实现方式中,上述待解析日志是基于如下方式生成的:
通过第一数据库系统执行预设的数据操纵语句;
基于数据操纵语句中的对数据表的写操作,生成重做日志;
基于数据操纵语句中的对数据表的提交操作和提交时间戳,生成提交日志;
基于数据操纵语句中的对数据表的回滚操作,生成回滚日志;
将重做日志、提交日志和回滚日志作为待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的用户域。
在另一个可能的实现方式中,上述方法,还包括:
生成并执行数据操纵语句对应的数据定义语句;
基于数据定义语句和数据定义语句对应的数据表的元数据信息,生成待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的系统域。
在另一个可能的实现方式中,上述方法,还包括:
当数据定义语句包括针对数据表的删除操作,则在执行删除操作的同时,将数据表的属性信息打包生成字符串信息;
将字符串信息保存到元数据历史数据表中。
根据本申请实施例的另一个方面,提供了一种数据处理装置,该装置包括:
获取模块,用于从第一数据库系统的存储引擎中获取待解析日志;其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;第一结构化查询语句为适用于第一数据库系统的操作指令;
解析模块,用于根据待解析日志的存储区域,从待解析日志中解析出键值对数据;
生成模块,用于基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句;其中,第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
执行模块,用于通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。
在一个可能的实现方式中,上述解析模块在根据待解析日志的存储区域,从待解析日志中解析出键值对数据时,用于:
当待解析日志的存储区域为用户域,从待解析日志中提取得到重做日志;当重做日志存在相关联的提交日志,则从重做日志中解析出用户域对应的键值对数据;
当待解析日志的存储区域为系统域,从待解析日志解析出系统域对应的键值对数据。
在一个可能的实现方式中,上述解析模块在从待解析日志中提取得到重做日志时,用于:
从待解析日志中提取得到重做日志和重做日志的关键字;
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句,包括如下至少一项:
基于用户域对应的键值对数据的第一目标主键,从数据字典表和元数据历史数据表提取数据表的第一元数据;根据第一元数据将第一键值对数据转化为数据表的字段信息;基于字段信息和关键字生成第二结构化查询语句;
基于系统域对应的键值对数据的第二目标主键,从数据字典表和元数据历史数据表提取数据表的第二元数据;根据第二元数据从第二键值对数据中提取第二结构化查询语句。
在又一个可能的实现方式中,上述解析模块在从数据字典表和元数据历史数据表提取数据表的第一元数据时,用于:
从数据字典表获取数据表的属性信息;
从元数据历史数据表中获取数据表对应的字符串信息;
将字符串信息解析得到数据表的历史属性信息;
将属性信息和历史属性信息作为第一元数据。
在又一个可能的实现方式中,上述解析模块,还用于:
当重做日志存在相关联的回滚日志,则从第一数据库系统的缓存中删除重做日志。
在另一个可能的实现方式中,上述待解析日志是基于如下方式生成的:
通过第一数据库系统执行预设的数据操纵语句;
基于数据操纵语句中的对数据表的写操作,生成重做日志;
基于数据操纵语句中的对数据表的提交操作和提交时间戳,生成提交日志;
基于数据操纵语句中的对数据表的回滚操作,生成回滚日志;
将重做日志、提交日志和回滚日志作为待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的用户域。
在另一个可能的实现方式中,上述装置,还包括日志生成模块,用于:
生成并执行数据操纵语句对应的数据定义语句;
基于数据定义语句和数据定义语句对应的数据表的元数据信息,生成待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的系统域。
在另一个可能的实现方式中,上述日志生成模块,还用于:
当数据定义语句包括针对数据表的删除操作,则在执行删除操作的同时,将数据表的属性信息打包生成字符串信息;
将字符串信息保存到元数据历史数据表中。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,上述处理器执行计算机程序以实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过从第一数据库系统的存储引擎中获取待解析日志,并根据待解析日志的存储区域,从待解析日志中解析出键值对数据,然后基于预设的数据字典表、元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语言,以通过第二数据库系统执行第二结构化语言,实现第一数据库系统到第二数据库系统的数据迁移;由于待解析日志是通过预设的第一结构化查询语言对第一数据库系统的数据表进行操作生成的,第一结构化查询语言是适用于第一数据库系统的操作指令,第二结构化查询语言可以为适用于第一数据库系统和第二数据库系统的操作指令,本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,保证了第二结构化查询语句的通用性、实现了源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。
区别于现有技术中,依赖于MySLQ数据库体系本身的binlog机制来实现数据迁移,本申请实施例中所生成的第二结构化查询语句可以保证数据迁移方法的通用性,实现不同数据库生态系统之间的数据迁移任务,解决了不同数据库产品的数据兼容问题,能够有效提升数据迁移的高效性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理方法的应用场景示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种数据处理方法中待解析日志的解析流程示意图;
图4为本申请实施例提供的一种数据处理方法中又一待解析日志的解析的流程示意图;
图5为本申请实施例提供的一种数据处理方法中提取第一元数据的流程示意图;
图6为本申请实施例提供的一种数据处理方法中生成用户域待解析日志的流程示意图;
图7为本申请实施例提供的一种数据处理方法中生成系统域待解析日志的流程示意图;
图8为本申请实施例提供的一个示例的数据处理方法的流程示意图;
图9为本申请实施例提供的一种数据处理装置的结构示意图;
图10为本申请实施例提供的一种数据处理电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可选地,本申请实施例提供的视频数据处理方法,可以基于云存储技术来实现,例如,第一数据库系统和第二数据库系统可以是分布式云存储系统。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(Structured Query Language,结构化查询语言);或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
现有的数据迁移技术基本都局限于数据库产品生态本身,而不会考虑与其他数据库产品的兼容性。至多的做法是能通过SQL的形式从其他数据库产品中迁入数据,而不会考虑从本产品中将数据迁出的问题,一定程度上这种产品的捆绑操作会影响用户体验,限制用户数据库系统的升级和发展。
与此同时,如binlog机制在处理mysql的单机数据的迁移问题时比较有效,但是针对一些基于mysql生态的分布式数据库产品,因为其中涉及到多节点的分布式事务,binlog机制无法完全满足需求,造成不适配的问题。
本申请提供的数据处理方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
如图1所示,本申请的数据处理方法,可以应用于图1所示的场景中,具体的,服务器101从第一数据库系统102的存储引擎中获取待解析日志,其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统102的数据表进行操作生成的。然后根据待解析日志的存储区域,从待解析日志中解析出键值对数据;接着,服务器101基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句。服务器102将第二结构化查询语句发送给第二数据库系统103,第二数据库系统103执行第二结构化查询语句,以实现第一数据库系统102到第二数据库系统103的数据迁移。
图1所示的场景中,上述数据处理方法可以在服务器中进行,在其他的场景中,也可以在终端中进行。
本技术领域技术人员可以理解,这里所使用的“终端”可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等;“服务器”可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中提供了一种数据处理方法,如图2所示,可以应用于进行数据处理的服务器或终端,该方法包括:
S201,从第一数据库系统的存储引擎中获取待解析日志。
其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的,每一条待解析日志包括日志头信息和关键字;具体的,日志头信息可以包括校验信息和日志类型,校验信息可以用于校验日志的完整性和正确性。
进一步地,第一结构化查询语句为适用于第一数据库系统的操作指令,上述第一结构化查询语句可以包括DML(Data Manipulation Language,数据操纵语言)语句和DDL(Data Definition Language,数据定义语句)语句。
其中,DML语句可以分为四类:SELECT、INSERT、UPDATE和DELETE。SELECT语句用于从数据库中检索数据;INSERT语句用于向数据库中插入新的数据;UPDATE语句用于更新数据库中的数据;DELETE语句用于从数据库中删除数据。DML语句可以用来实现复杂的数据库操作。
DDL语句是用于操作数据库对象的,其中数据库对象包含数据库本身(database)、表(table)、列(column)、索引(index)、约束(constraint)、视图(view)、触发器(trigger)、存储过程(StoredProcedure)和函数(function)。
DML语句是用户写入的SQL语言,在系统执行DML语言时,系统自动生成并执行DDL语言,例如DML语言是创建一个表,则DDL语言可以是创建表的行和列信息等。
具体的,用于进行数据处理的服务器或终端,可以从第一数据库系统的存储引擎中基于预设的时间信息获取待解析日志。
可选地,预设的时间信息可以是从2023年1月1日至5月1日这特定时间段,当需要针对第一数据库系统中的特定时间段内的数据进行数据迁移时,可以获取该时间段对应的日志作为待解析日志。
S202,根据待解析日志的存储区域,从待解析日志中解析出键值对数据。
其中,键值对数据包括一级主键、二级主键和一级主键对应的第一键值;第一键值包括第一数据库系统中数据表的字段信息,一级主键用于对第一键值进行索引,二级主键用于对一级主键进行索引。
具体的,用于进行数据处理的服务器或终端,可以根据待解析日志的存储区域,基于待解析日志的存储格式从待解析日志中解析出键值对数据。进一步地,上述待解析日志的存储格式可以是线性结构格式,还可以是树形结构格式,在本申请实施例中不做具体限定。
可选地,待解析日志的存储区域包括用户域和系统域,用户域对应的待解析日志可以包括通过DML语句对第一数据库系统的数据表进行操作生成的日志。系统域对应的待解析日志可以包括通过DDL语句对第一数据库系统的数据表进行操作生成的日志。
在一些实施方式中,待解析日志的日志类型可以包括提交日志(COMMIT LOG)、重做日志(REDO LOG)和回滚日志(ABORT LOG)。针对提交日志,其关键字包括commit_timestamp,即提交时间戳信息;重做日志的关键字包括PUT(插入)和DELETE(删除)操作信息,回滚日志主要可以表征针对数据的操作信息是否真正落盘,可以用来判定对应重做日志的有效性。
具体的,用于进行数据处理的服务器或终端,还可以根据待解析日志的存储区域,基于待解析日志的存储格式和日志类型从待解析日志中解析出键值对数据。
S203,基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句。
其中,第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;可选地,第二结构化查询语句可以是标准化SQL语句,其可以兼容于现有的常见分布式或单机数据库系统,例如MySQL、PostgreSQL(一种对象-关系型数据库管理系统)、Oracle(一种关系数据库管理系统)等。
在本申请实施例中,数据字典表中可以包括第一数据库系统的数据表中的字段的类型、长度、编码格式等关键信息,即数据库的元数据。当第一结构化查询语句包括针对数据库中某一表格的删除指令,则该表格的元数据也会从数据字典表中删除;然而,这会导致上述删除指令对应的待解析日志由于元数据的缺失而无法成功解析并生成对应的第二结构化查询语句。故,在执行上述删除指令的同时,可以将该表格的元数据保存到元数据历史数据表,以实现待解析日志的成功解析。
具体的,用于进行数据处理的服务器或终端,可以从预设的数据字典表和元数据历史数据表中读取元数据信息,然后基于所读取的元数据信息和键值对数据生成针对待解析日志的第二结构化查询语句。
S204,通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。
其中,第二结构化查询语句可以包括DML和DDL语句。
在本申请实施例中,例如,当需要对第一数据库系统创建一个备份数据库即第二数据库系统,或者需要用第二数据库系统替换掉现有的第一数据库系统时,可以通过第二数据库系统执行第二结构化查询语句,在第二数据库系统中创建与第一数据库系统一致的数据结构和数据表,以保证第一数据库系统与第二数据库系统中的数据一致性,实现源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。
本申请实施例通过从第一数据库系统的存储引擎中获取待解析日志,并根据待解析日志的存储区域,从待解析日志中解析出键值对数据,然后基于预设的数据字典表、元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语言,以通过第二数据库系统执行第二结构化语言,实现第一数据库系统到第二数据库系统的数据迁移;由于待解析日志是通过预设的第一结构化查询语言对第一数据库系统的数据表进行操作生成的,第一结构化查询语言是适用于第一数据库系统的操作指令,第二结构化查询语言可以为适用于第一数据库系统和第二数据库系统的操作指令,本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,保证了第二结构化查询语句的通用性、实现了源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。
区别于现有技术中,依赖于MySLQ数据库体系本身的binlog机制来实现数据迁移,本申请实施例中所生成的第二结构化查询语句可以保证数据迁移方法的通用性,实现不同数据库生态系统之间的数据迁移任务,解决了不同数据库产品的数据兼容问题,能够有效提升数据迁移的高效性。
本申请实施例中提供了一种可能的实现方式,如图3所示,上述根据待解析日志的存储区域,从待解析日志中解析出键值对数据,包括:
以待解析日志的存储格式为线性结构格式为例,其每一条日志是以执行时间顺序排列的,用于进行数据处理的服务器或终端可以基于该执行时间顺序,依次将该待解析日志提取到第一数据库系统的缓存进行如下解析处理:
S301,当待解析日志的存储区域为用户域,从待解析日志中提取得到重做日志;当重做日志存在相关联的提交日志,则从重做日志中解析出用户域对应的键值对数据。
在本申请实施例中,当待解析日志的存储区域为用户域,可以基于待解析日志的关键字即PUT和DELETE操作信息,筛选提取得到重做日志,当该重做日志存在相关联的提交日志,则表征重做日志中的针对数据的写操作被有效落盘,则可以从重做日志中解析出对应的键值对数据。
S302,当待解析日志的存储区域为系统域,从待解析日志解析出系统域对应的键值对数据。
在本申请实施例中,区别于用户域中的日志解析方式,DDL语句的操作通常不是由单个事务完成的,在执行DDL语句的过程中引入了DDL JOB(用于描述一个逻辑DDL)机制,在该机制的影响下,所执行的DDL完整语句会被完整保存到键值对数据中;因此,当待解析日志的存储区域为系统时,不需要对待解析日志的类型进行筛选,直接进行键值对解析即可,进而得到系统域对应的键值对数据。
本申请实施例中提供了一种可能的实现方式,上述方法,如图4所示,还包括:
当重做日志存在相关联的回滚日志,则从第一数据库系统的缓存中删除重做日志。
在本申请实施例中,当待解析日志的存储区域为用户域,且所提取到的重做日志存在相关联的回滚日志时,则表征重做日志中的针对数据的写操作被取消,即没有有效落盘,则可以将该重做日志从第一数据库缓存中删除。
本申请实施例通过待解析日志的存储区域和日志类型,分别对每一条日志进行解析,得到用户域和系统域分别所对应的键值对数据;当用户域中的重做日志对应存在相关联的提交日志,则可以基于该重做日志解析得到对应的键值对数据;当用户域中的重做日志对应存在相关联的回滚日志,则将该重做日志从缓存中删除,无需解析处理;而针对系统域的待解析日志,无需判断日志类型直接解析出键值对数据,实现了针对待解析日志的具有针对性的高效解析。
本申请实施例中提供了一种可能的实现方式,上述从待解析日志中提取得到重做日志,包括:
从待解析日志中提取得到重做日志和重做日志的关键字。
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句,包括如下至少一项:
(1)基于用户域对应的键值对数据的第一目标主键,从数据字典表和元数据历史数据表提取数据表的第一元数据;根据第一元数据将第一键值对数据转化为数据表的字段信息;基于字段信息和关键字生成第二结构化查询语句。
其中,上述第一元数据可以用来表征第一数据库系统中数据表中每一字段的类型、长度、编码格式等关键信息。基于上述关键信息,可以将第一键值对数据恢复成数据表中具体的字段信息,然后基于上述字段信息和关键字生成第二结构化查询语句。
具体的,每一第一目标主键对应存在一检索值,用于进行数据处理的服务器或终端,可以从数据字典表和原数据历史数据表中提取与上述检索值对应的数据表的第一元数据;并根据第一元数据将第一键值对数据转化为数据表的字段信息,然后将关键字转化为标准化SQL语句,基于字段信息和标准化SQL语句生成第二结构化查询语句。
在一些实施方式中,当第一目标主键包括“a”、“b”、“c”,其中,“a”的值为1,“b”的值为1,“c”的值为‘a’;同时,第一目标主键“a”的检索值为“100”,则可以基于唯一数值“100”与数据字典表中的表名“t1”的对应关系,查找出数据表t1的第一元数据,进而确定出数据表t1中包括“1、1、‘a’”这些字段;当关键字为“put”,将其转换成标准化SQL语句“REPLACE”,以生成第二结构化查询语句如下:
REPLACE INTO t1 VALUES(1,1,’a’);
上述第二结构化查询语句表征:将值“1、1、‘a’”存入数据表t1中。
(2)基于系统域对应的键值对数据的第二目标主键,从数据字典表和元数据历史数据表提取数据表的第二元数据;根据第二元数据从第二键值对数据中提取第二结构化查询语句。
具体的,用于进行数据处理的服务器或终端,可以从数据字典表和元数据历史数据表确定与第二目标主键的检索值对应的数据表,并提取出该数据表的第二元数据。
在一些实施方式中,由于在执行DDL语句的过程中引入了DDL JOB机制,故DDL语句就保存在第二目标主键对应的VALUE值之中;因此可以基于第二目标主键确定DDL语句所对应操作的数据表和数据表的第二元数据,然后基于上述数据表和第二元数据直接获取对应的VALUE值,以得到第二结构化查询语句。
本申请实施例通过待解析日志的存储区域,分别对用户域和系统域中的日志进行SQL语句的恢复,有效提升了日志解析的准确率;在对用户域中的重做日志进行解析时,可以根据第一目标主键提取数据表的第一元数据,并基于第一元数据将键值对数据转化为有意义的数据表字段信息,进而生成第二结构化查询语句,由于第二结构化查询语句在生成过程中经过了标准化处理,使得第二结构化查询语句的兼容性更强。同时,在对系统域中的日志进行解析时,可以直接基于键值对数据中的值获取系统域对应的第二结构化查询语句,提升了日志解析的高效性。
本申请实施例中提供了一种可能的实现方式,如图5所示,上述从数据字典表和元数据历史数据表提取数据表的第一元数据,包括:
S401,从数据字典表获取数据表的属性信息。
其中,属性信息包括数据表的表名、库名、字段、版本号等属性信息。
S402,从元数据历史数据表中获取数据表对应的字符串信息。
其中,上述字符串信息可以是json字符串,该字符串信息可以是基于数据表的历史属性信息进行序列化生成的。
S403,将字符串信息解析得到数据表的历史属性信息。
其中,上述数据表为经过操作被删除的数据表。
具体的,用于进行数据处理的服务器或终端,可以针对字符串信息进行反序列化处理,得到数据表的历史属性信息。
S404,将属性信息和历史属性信息作为第一元数据。
在本申请实施例中,如果第一数据库系统在执行DML语句时,执行了“DROP TABLE”操作命令,则该操作命令对应的数据表的元数据信息将会被删除,即数据字典表中无法获取该数据表的元数据;那么,在进行DML语句回放和第二结构化查询语句生成时,在“DROPTABLE”点位之前的DML语句将因为元数据的缺失而无法回放,所对应的日志也无法被正确解析。则,需要在前期执行“DROP TABLE”操作命令的同时,将对应数据表的元数据打包生成字符串信息,并将字符串信息写入元数据历史数据表中,以便在后期生成第二结构化查询语句时,能够基于数据字典表和元数据历史数据表进行精确的数据回放,保证第二结构化查询语句与第一结构化查询语句的逻辑一致性。
本申请实施例中提供了一种可能的实现方式,如图6所示,上述待解析日志是基于如下方式生成的:
S501,通过第一数据库系统执行预设的数据操纵语句。
其中,数据操纵语句即DML语句是基于用户的输入操作生成并执行的。
S502,基于数据操纵语句中的对数据表的写操作,生成重做日志;基于数据操纵语句中的对数据表的提交操作和提交时间戳,生成提交日志;基于数据操纵语句中的对数据表的回滚操作,生成回滚日志。
具体的,对数据表的写操作可以包括PUT和DELETE,可以基于上述PUT/DELETE关键字生成REDO LOG即重做日志,其主要功能是记载数据的写入和删除操作;提交日志即COMMIT LOG用于记载事务的提交信息,其关键字为commit_timestamp(提交时间戳);而回滚日志即ABORT LOG用于记载事务的无效,无需进行回放。
在本申请实施例中,REDO LOG可以通过事务号与COMMIT LOG或者ABORT LOG进行关联;如果REDO LOG与COMMIT LOG同时存在,则说明用户曾经提交了这个写操作,需用通过REDO LOG回放出相应的REPLACE/DELETE语句;如果REDO LOG与ABORT LOG同时存在,则说明用户的写操作被回滚了,判定REDO LOG无效,无需进行日志解析操作。
S503,将重做日志、提交日志和回滚日志作为待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的用户域。
本申请实施例通过第一数据库系统执行预设的数据操纵语句,并根据数据操纵语句中的不同操作指令,对应生成不同的日志,实现了待解析日志的分类,为后续的日志精准解析打下良好基础。
本申请实施例中提供了一种可能的实现方式,如图7所示,上述方法,还包括:
S601,生成并执行数据操纵语句对应的数据定义语句。
其中,数据定义语句用于表征对数据库对象的操作指令,数据操纵语句是用户输入的针对数据库的数据操作指令,当数据操纵语句在执行的过程中,数据库系统内部会生成对应的数据定义语句,以实现对数据库本身的更新操作。例如DML语言是创建一个表,则DDL语言可以是创建表的行和列信息等。
S602,基于数据定义语句和数据定义语句对应的数据表的元数据信息,生成待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的系统域。
具体的,可以将数据表的元数据信息和数据定义语句作为VELUE值,并基于上述值的索引信息生成对应的一级主键和二级主键,以基于上述一级主键、二级主键和对应的值生成待解析日志,然后将待解析日志存入第一数据库系统的存储引擎的系统域之中。
本申请实施例中,第一数据库系统在执行数据操纵语句的过程中,通过生成并执行数据操纵语句对应的数据定义语句,并基于数据定义语句和其对应的数据表的元数据信息确定键值对数据,以生成对应的待解析日志,完成了针对数据定义语句的记载;同时,本申请实施例中还将数据定义语句和数据操纵语句对应的日志在存储引擎中进行分区存储,有效保证了日志的精确存储,保障了后续日志的有效解析。
本申请实施例中提供了一种可能的实现方式,上述方法,还包括:
当数据定义语句包括针对数据表的删除操作,则在执行删除操作的同时,将数据表的属性信息打包生成字符串信息;将字符串信息保存到元数据历史数据表中。
在本申请实施例中,如果第一数据库系统在执行第一结构化查询语句时,执行了“DROP TABLE”操作命令,则该操作命令对应的数据表的元数据信息将会被删除,即数据字典表中无法获取该数据表的元数据;那么,在进行DDL语句回放和第二结构化查询语句生成时,在“DROP TABLE”点位之前的DML语句将因为元数据的缺失而无法回放,所对应的日志也无法被正确解析。则,需要在前期执行“DROP TABLE”操作命令的同时,将对应数据表的元数据打包生成字符串信息,并将字符串信息写入元数据历史数据表中,以便在后期生成第二结构化查询语句时,能够基于数据字典表和元数据历史数据表进行精确的数据回放,保证第二结构化查询语句与第一结构化查询语句的逻辑一致性。
为了更好的理解上述数据处理方法,下面结合图8详细阐述一个本申请的数据处理方法的示例,该方法可以应用于数据迁移服务器802中,包括如下步骤:
S701,第一数据库系统801执行用户输入的DML语句。
S702,基于DML语句中针对第一数据库系统的数据表的PUT/DELETE操作,生成重做日志;并基于DML语句中的对数据表的提交操作和提交时间戳,生成提交日志;基于DML语句中的对数据表的回滚操作,生成回滚日志。
S703,第一数据库系统801将重做日志、提交日志和回滚日志作为待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的用户域。
S704,第一数据库系统801在执行DML语句的同时,生成并执行DML语句对应的DLL语句,基于DLL语句和DLL语句对应的数据表的元数据信息,生成待解析日志,并将待解析日志存入第一数据库系统801的存储引擎中的系统域。
可选地,当DLL语句包括针对数据表的删除操作,则在执行删除操作的同时,将数据表的属性信息打包生成json字符串;将json字符串保存到元数据历史数据表中。
S705,数据迁移服务器802从第一数据库系统的存储引擎中按照日志生成的时间先后顺序获取待解析日志,并将所获取的待解析日志存入第一数据库系统801的缓存中。
S706,当待解析日志的存储区域为用户域,从待解析日志中提取得到重做日志和重做日志的关键字。
当重做日志存在相关联的提交日志,则从重做日志中解析出用户域对应的键值对数据;并基于用户域对应的键值对数据的第一目标主键,从数据字典表和元数据历史数据表提取数据表的第一元数据;根据第一元数据将第一键值对数据转化为数据表的字段信息;进而基于字段信息和关键字生成标准SQL语句。
在另一些实施方式中,当重做日志存在相关联的回滚日志,则从第一数据库系统801的缓存中删除重做日志。
S707,当待解析日志的存储区域为系统域,从待解析日志解析出系统域对应的键值对数据;基于系统域对应的键值对数据的第二目标主键,从数据字典表和元数据历史数据表提取数据表的第二元数据;根据第二元数据从第二键值对数据中提取标准SQL语句。
S708,数据迁移服务器802将标准SQL语句发送给第二数据库系统803,并通过第二数据库系统803执行该标准SQL语句,以实现第一数据库系统801到第二数据库系统803的数据迁移。
本申请实施例通过从第一数据库系统的存储引擎中获取待解析日志,并根据待解析日志的存储区域,从待解析日志中解析出键值对数据,然后基于预设的数据字典表、元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语言,以通过第二数据库系统执行第二结构化语言,实现第一数据库系统到第二数据库系统的数据迁移;由于待解析日志是通过预设的第一结构化查询语言对第一数据库系统的数据表进行操作生成的,第一结构化查询语言是适用于第一数据库系统的操作指令,第二结构化查询语言可以为适用于第一数据库系统和第二数据库系统的操作指令,本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,保证了第二结构化查询语句的通用性、实现了源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。
区别于现有技术中,依赖于MySLQ数据库体系本身的binlog机制来实现数据迁移,本申请实施例中所生成的第二结构化查询语句可以保证数据迁移方法的通用性,实现不同数据库生态系统之间的数据迁移任务,解决了不同数据库产品的数据兼容问题,能够有效提升数据迁移的高效性。
本申请实施例提供了一种数据处理装置,如图9所示,该数据处理装置90可以包括:获取模块901、解析模块902、生成模块903和执行模块904;
其中,获取模块901,用于从第一数据库系统的存储引擎中获取待解析日志;其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;第一结构化查询语句为适用于第一数据库系统的操作指令;
解析模块902,用于根据待解析日志的存储区域,从待解析日志中解析出键值对数据;
生成模块903,用于基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句;其中,第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
执行模块904,用于通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。
本申请实施例中提供了一种可能的实现方式,上述解析模块902在根据待解析日志的存储区域,从待解析日志中解析出键值对数据时,用于:
当待解析日志的存储区域为用户域,从待解析日志中提取得到重做日志;当重做日志存在相关联的提交日志,则从重做日志中解析出用户域对应的键值对数据;
当待解析日志的存储区域为系统域,从待解析日志解析出系统域对应的键值对数据。
本申请实施例中提供了一种可能的实现方式,上述解析模块902在从待解析日志中提取得到重做日志时,用于:
从待解析日志中提取得到重做日志和重做日志的关键字;
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句,包括如下至少一项:
基于用户域对应的键值对数据的第一目标主键,从数据字典表和元数据历史数据表提取数据表的第一元数据;根据第一元数据将第一键值对数据转化为数据表的字段信息;基于字段信息和关键字生成第二结构化查询语句;
基于系统域对应的键值对数据的第二目标主键,从数据字典表和元数据历史数据表提取数据表的第二元数据;根据第二元数据从第二键值对数据中提取第二结构化查询语句。
本申请实施例中提供了一种可能的实现方式,上述解析模块902在从数据字典表和元数据历史数据表提取数据表的第一元数据时,用于:
从数据字典表获取数据表的属性信息;
从元数据历史数据表中获取数据表对应的字符串信息;
将字符串信息解析得到数据表的历史属性信息;
将属性信息和历史属性信息作为第一元数据。
本申请实施例中提供了一种可能的实现方式,上述解析模块902,还用于:
当重做日志存在相关联的回滚日志,则从第一数据库系统的缓存中删除重做日志。
本申请实施例中提供了一种可能的实现方式,上述待解析日志是基于如下方式生成的:
通过第一数据库系统执行预设的数据操纵语句;
基于数据操纵语句中的对数据表的写操作,生成重做日志;
基于数据操纵语句中的对数据表的提交操作和提交时间戳,生成提交日志;
基于数据操纵语句中的对数据表的回滚操作,生成回滚日志;
将重做日志、提交日志和回滚日志作为待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的用户域。
本申请实施例中提供了一种可能的实现方式,上述装置,还包括日志生成模块,用于:
生成并执行数据操纵语句对应的数据定义语句;
基于数据定义语句和数据定义语句对应的数据表的元数据信息,生成待解析日志,并将待解析日志存入第一数据库系统的存储引擎中的系统域。
本申请实施例中提供了一种可能的实现方式,上述日志生成模块,还用于:
当数据定义语句包括针对数据表的删除操作,则在执行删除操作的同时,将数据表的属性信息打包生成字符串信息;
将字符串信息保存到元数据历史数据表中。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例通过从第一数据库系统的存储引擎中获取待解析日志,并根据待解析日志的存储区域,从待解析日志中解析出键值对数据,然后基于预设的数据字典表、元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语言,以通过第二数据库系统执行第二结构化语言,实现第一数据库系统到第二数据库系统的数据迁移;由于待解析日志是通过预设的第一结构化查询语言对第一数据库系统的数据表进行操作生成的,第一结构化查询语言是适用于第一数据库系统的操作指令,第二结构化查询语言可以为适用于第一数据库系统和第二数据库系统的操作指令,本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,保证了第二结构化查询语句的通用性、实现了源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。
区别于现有技术中,依赖于MySLQ数据库体系本身的binlog机制来实现数据迁移,本申请实施例中所生成的第二结构化查询语句可以保证数据迁移方法的通用性,实现不同数据库生态系统之间的数据迁移任务,解决了不同数据库产品的数据兼容问题,能够有效提升数据迁移的高效性。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:本申请实施例通过从第一数据库系统的存储引擎中获取待解析日志,并根据待解析日志的存储区域,从待解析日志中解析出键值对数据,然后基于预设的数据字典表、元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语言,以通过第二数据库系统执行第二结构化语言,实现第一数据库系统到第二数据库系统的数据迁移;由于待解析日志是通过预设的第一结构化查询语言对第一数据库系统的数据表进行操作生成的,第一结构化查询语言是适用于第一数据库系统的操作指令,第二结构化查询语言可以为适用于第一数据库系统和第二数据库系统的操作指令,本申请实施例通过对第一数据库系统对应的待解析日志进行键值对数据的解析,根据键值对数据生成适配于第一数据库系统和第二数据库系统的通用的第二结构化查询语句,保证了第二结构化查询语句的通用性、实现了源数据库系统(第一数据库系统)到目标数据库系统(第二数据库系统)的数据迁移。区别于现有技术中,依赖于MySLQ数据库体系本身的binlog机制来实现数据迁移,本申请实施例中所生成的第二结构化查询语句可以保证数据迁移方法的通用性,实现不同数据库生态系统之间的数据迁移任务,解决了不同数据库产品的数据兼容问题,能够有效提升数据迁移的高效性。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备100包括:处理器1001和存储器1003。其中,处理器1001和存储器1003相连,如通过总线1002相连。可选地,电子设备100还可以包括收发器1004,收发器1004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器1004不限于一个,该电子设备100的结构并不构成对本申请实施例的限定。
处理器1001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1002可包括一通路,在上述组件之间传送信息。总线1002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线1002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器1003用于存储执行本申请实施例的计算机程序,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
从第一数据库系统的存储引擎中获取待解析日志;其中,待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;第一结构化查询语句为适用于第一数据库系统的操作指令;
根据待解析日志的存储区域,从待解析日志中解析出键值对数据;
基于预设的数据字典表、预设的元数据历史数据表和键值对数据生成针对待解析日志的第二结构化查询语句;其中,第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
通过第二数据库系统执行第二结构化查询语句,以实现第一数据库系统到第二数据库系统的数据迁移。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (12)
1.一种数据处理方法,包括:
从第一数据库系统的存储引擎中获取待解析日志;其中,所述待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;所述第一结构化查询语句为适用于所述第一数据库系统的操作指令;
根据所述待解析日志的存储区域,从所述待解析日志中解析出键值对数据;
基于预设的数据字典表、预设的元数据历史数据表和所述键值对数据生成针对所述待解析日志的第二结构化查询语句;其中,所述第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
通过所述第二数据库系统执行所述第二结构化查询语句,以实现所述第一数据库系统到第二数据库系统的数据迁移。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待解析日志的存储区域,从所述待解析日志中解析出键值对数据,包括:
当所述待解析日志的存储区域为用户域,从所述待解析日志中提取得到重做日志;当所述重做日志存在相关联的提交日志,则从所述重做日志中解析出所述用户域对应的键值对数据;
当所述待解析日志的存储区域为系统域,从所述待解析日志解析出所述系统域对应的键值对数据。
3.根据权利要求2所述的方法,其特征在于,所述从所述待解析日志中提取得到重做日志,包括:
从所述待解析日志中提取得到重做日志和所述重做日志的关键字;
所述基于预设的数据字典表、预设的元数据历史数据表和所述键值对数据生成针对所述待解析日志的第二结构化查询语句,包括如下至少一项:
基于所述用户域对应的键值对数据的第一目标主键,从所述数据字典表和元数据历史数据表提取数据表的第一元数据;根据所述第一元数据将所述第一键值对数据转化为数据表的字段信息;基于所述字段信息和所述关键字生成第二结构化查询语句;
基于所述系统域对应的键值对数据的第二目标主键,从所述数据字典表和元数据历史数据表提取数据表的第二元数据;根据所述第二元数据从所述第二键值对数据中提取第二结构化查询语句。
4.根据权利要求3所述的方法,其特征在于,所述从所述数据字典表和元数据历史数据表提取数据表的第一元数据,包括:
从所述数据字典表获取所述数据表的属性信息;
从所述元数据历史数据表中获取所述数据表对应的字符串信息;
将所述字符串信息解析得到所述数据表的历史属性信息;
将所述属性信息和历史属性信息作为所述第一元数据。
5.根据权利要求2所述的方法,其特征在于,所述方法,还包括:
当所述重做日志存在相关联的回滚日志,则从所述第一数据库系统的缓存中删除所述重做日志。
6.根据权利要求1所述的方法,其特征在于,所述待解析日志是基于如下方式生成的:
通过所述第一数据库系统执行预设的数据操纵语句;
基于所述数据操纵语句中的对数据表的写操作,生成重做日志;
基于所述数据操纵语句中的对数据表的提交操作和提交时间戳,生成提交日志;
基于所述数据操纵语句中的对数据表的回滚操作,生成回滚日志;
将所述重做日志、提交日志和回滚日志作为所述待解析日志,并将所述待解析日志存入第一数据库系统的存储引擎中的用户域。
7.根据权利要求6所述的方法,其特征在于,所述方法,还包括:
生成并执行所述数据操纵语句对应的数据定义语句;
基于所述数据定义语句和所述数据定义语句对应的数据表的元数据信息,生成待解析日志,并将所述待解析日志存入第一数据库系统的存储引擎中的系统域。
8.根据权利要求6所述的方法,其特征在于,所述方法,还包括:
当所述数据定义语句包括针对数据表的删除操作,则在执行所述删除操作的同时,将所述数据表的属性信息打包生成字符串信息;
将所述字符串信息保存到元数据历史数据表中。
9.一种数据处理装置,其特征在于,包括:
获取模块,用于从第一数据库系统的存储引擎中获取待解析日志;其中,所述待解析日志是通过预设的第一结构化查询语句对第一数据库系统的数据表进行操作生成的;所述第一结构化查询语句为适用于所述第一数据库系统的操作指令;
解析模块,用于根据所述待解析日志的存储区域,从所述待解析日志中解析出键值对数据;
生成模块,用于基于预设的数据字典表、预设的元数据历史数据表和所述键值对数据生成针对所述待解析日志的第二结构化查询语句;其中,所述第二结构化查询语句为适用于第一数据库系统和第二数据库系统的操作指令;
执行模块,用于通过所述第二数据库系统执行所述第二结构化查询语句,以实现所述第一数据库系统到第二数据库系统的数据迁移。
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311112300.4A CN117171129A (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311112300.4A CN117171129A (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117171129A true CN117171129A (zh) | 2023-12-05 |
Family
ID=88934971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311112300.4A Pending CN117171129A (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171129A (zh) |
-
2023
- 2023-08-30 CN CN202311112300.4A patent/CN117171129A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754875B2 (en) | Copying data changes to a target database | |
US7617254B2 (en) | Method and mechanism for relational access of recovery logs in a database system | |
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
US20170255709A1 (en) | Atomic updating of graph database index structures | |
US10157211B2 (en) | Method and system for scoring data in a database | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
US20170255708A1 (en) | Index structures for graph databases | |
CN103902623A (zh) | 用于在存储系统上存取文件的方法和系统 | |
US9171051B2 (en) | Data definition language (DDL) expression annotation | |
CN113821573B (zh) | 海量数据快速检索服务构建方法、系统、终端及存储介质 | |
CN103778133A (zh) | 一种数据库对象的变更方法及装置 | |
WO2019017997A1 (en) | DISTRIBUTED GRAPHICAL DATA BASE WRITINGS | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
CN111651519A (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
US20230289331A1 (en) | Model generation service for data retrieval | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN112131214A (zh) | 数据写入、数据查询的方法、系统、设备和存储介质 | |
CN111680030A (zh) | 数据融合方法及装置,基于元信息的数据处理方法和装置 | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN117171129A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
KR101024494B1 (ko) | 메타데이타를 이용한 변경 데이타 추출방법 | |
CN114153857A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
CN114443625A (zh) | 数据库的处理方法、装置 | |
Edara et al. | Vortex: A Stream-oriented Storage Engine For Big Data Analytics | |
KR100912129B1 (ko) | 객체 파일 시스템을 이용한 비정형 데이터 관리 방법 및장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |