CN112286892B - 后关系型数据库的数据实时同步方法及装置、存储介质、终端 - Google Patents
后关系型数据库的数据实时同步方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN112286892B CN112286892B CN202010623064.2A CN202010623064A CN112286892B CN 112286892 B CN112286892 B CN 112286892B CN 202010623064 A CN202010623064 A CN 202010623064A CN 112286892 B CN112286892 B CN 112286892B
- Authority
- CN
- China
- Prior art keywords
- data
- post
- log file
- relation database
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims 2
- 230000008859 change Effects 0.000 description 6
- 230000010076 replication Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种后关系型数据库的数据实时同步方法及装置、存储介质、终端,所述方法包括:获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。通过本发明方案能够实现对后关系型数据库的数据物理复制,且能够实时获取后关系型数据库内数据的事务操作信息。
Description
技术领域
本发明涉及数据库处理技术领域,具体地涉及一种后关系型数据库的数据实时同步方法及装置、存储介质、终端。
背景技术
区别于传统的关系型数据库,后关系型数据库整合了对象数据库访问、高性能的结构化查询语言(Structured Query Language,简称SQL)访问以及强大的多维数据访问,并基于这三种方法天衣无缝地同时访问相同的数据。也即,数据只要在单一的整合数据字典中描述一次,就可被这三种方法访问。
这也导致后关系型数据库的数据存储方式和日志格式与传统的关系型数据库的数据存储方式和日志格式存在天壤之别。现有对后关系型数据库的数据物理复制只能在相同类型的数据库之间实现,传统的关系型数据库无法直接复制得到后关系型数据库内存储的数据。
发明内容
本发明解决的技术问题是如何实现对后关系型数据库的数据物理复制。
为解决上述技术问题,本发明实施例提供一种后关系型数据库的数据实时同步方法,包括:获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
可选的,所述数据实时同步方法还包括:对于所述日志文件中的每一条日志,将所述日志记录的操作类型与转换得到的对应的数据相关联。
可选的,所述获取所述后关系型数据库的日志文件包括:通过所述后关系型数据库的日志查看接口获取所述日志文件。
可选的,所述获取所述后关系型数据库的日志文件还包括:将所述日志文件的数据结构转换成预设通用数据结构。
可选的,所述预设通用数据结构包括JSON数据结构。
可选的,所述后关系型数据库包括主库和从库,所述主库和从库之间基于所述日志文件同步对数据的操作,所述获取所述后关系型数据库的日志文件包括:在所述从库基于所述日志文件还原所述主库对数据的操作期间,将对数据的操作信息记录至通用日志文件;获取所述通用日志文件作为所述后关系型数据库的日志文件,其中,所述通用日志文件的数据结构不同于所述后关系型数据库生成的日志文件的数据结构。
可选的,所述元数据信息选自:类元数据、类属性元数据、类存储元数据、表元数据以及字段元数据。
可选的,所述根据所述元数据信息将所述日志转换成对应的数据包括:根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表;基于所述日志获取所述数据在所述后关系型数据库中的存储信息;根据所述存储信息访问所述后关系型数据库,以获取所述数据并填充至所述表,其中,所述表与所述数据所属类相对应。
可选的,所述根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系包括:根据所述日志文件确定所述预设时间段内发生操作的数据;针对所述发生操作的数据所属的每一类,根据所述元数据信息确定所述类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表。
可选的,所述数据实时同步方法还包括:接收数据订阅请求,所述数据订阅请求由异构数据源发送,所述异构数据源的数据库的结构不同于所述后关系型数据库;根据所述数据订阅请求查找转换得到的数据,并将查找结果反馈至所述异构数据源。
为解决上述技术问题,本发明实施例还提供一种后关系型数据库的数据实时同步装置,包括:第一获取模块,用于获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;第二获取模块,用于获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;转换模块,对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
为解决上述技术问题,本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种后关系型数据库的数据实时同步方法,包括:获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
较之现有技术,本实施例方案能够实现对后关系型数据库的数据物理复制,且能够实时获取后关系型数据库内数据的事务操作信息。具体而言,通过解析后关系型数据库的日志文件,结合后关系型数据库中定义的元数据信息转换得到对应的数据对象,使得对后关系型数据库的数据进行物理复制成为可能。进一步,无需通过专门的调用指令或接口程序来获取后关系型数据库中存储的数据,使得对后关系型数据库中数据的物理复制更为便捷、高效。
进一步,所述数据实时同步方法还包括:对于所述日志文件中的每一条日志,将所述日志记录的操作类型与转换得到的对应的数据相关联。基于日志中记录的针对数据的事务操作信息,使得其他类型数据库能够捕捉到后关系型数据库中数据的变化信息,如操作数据的时间戳等。例如,基于日志的删除(delete)记录,无需全库搜索比对即可在复制该条日志对应的数据的同时知道该数据已被后关系型数据库删除。
附图说明
图1是本发明实施例一种后关系型数据库的数据实时同步方法的流程图;
图2是图1中步骤S103的一个具体实施方式的流程图;
图3是本发明实施例一种后关系型数据库的数据实时同步装置的结构示意图。
具体实施方式
如背景技术所言,现有技术没有针对后关系数据库的数据物理复制和实时同步方面的解决方案。
进一步而言,现有技术中,其他类型数据库无法捕捉到后关系型数据库中数据的变化信息,如操作数据的时间戳等。具体而言,如果后关系型数据库没有时间戳,或者更新数据时没有触发时间戳更新,则其他类型数据库无法获取数据变更信息。此外,基于触发器的时间戳对原有数据库有较大侵入性,影响性能,最后基于时间戳获取变更只能获取到拉取时间最后状态,两次获取之间的数据变化没有记录。
为解决上述技术问题,本发明实施例提供一种后关系型数据库的数据实时同步方法,包括:获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
本实施例方案能够实现对后关系型数据库的数据物理复制,且能够实时获取后关系型数据库内数据的事务操作信息。具体而言,通过解析后关系型数据库的日志文件,结合后关系型数据库中定义的元数据信息转换得到对应的数据对象,使得对后关系型数据库的数据进行物理复制成为可能。进一步,无需通过专门的调用指令或接口程序来获取后关系型数据库中存储的数据,使得对后关系型数据库中数据的物理异构复制成为可能,复制流程更为便捷、高效。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种后关系型数据库的数据实时同步方法的流程图。
本实施方案可以由消息引擎侧执行,如由消息引擎执行本实施例所述数据实时同步方法以获取所述后关系型数据库中存储的数据。例如,所述消息引擎可以为卡夫卡(Kafka)。
本实施方案中的“数据复制”是指,在不改变数据在所述后关系型数据库中存储位置、存储内容的基础上获取所述数据。也可称为数据物理复制。进一步,获取的数据可以直接或处理后发送至需求方,所述需求方可以为配置有关系型数据库的终端。并且,发送至需求方的数据能够直接存入所述关系型数据库。进一步,对于获取自所述后关系型数据库的敏感数据,可以脱敏处理后再发送至所述需求方。
具体地,参考图1,本实施例所述后关系型数据库的数据实时同步方法可以包括如下步骤:
步骤S101,获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;
步骤S102,获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;
步骤S103,对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
在一个具体实施中,所述日志文件可以为日记(Journal)数据库日志,用于记录所述后关系型数据库的事务操作,以确保事务操作的原子性和一致性。例如,所述日志文件可以包括重做(redo)数据、取消(undo)数据等。
在一个具体实施中,所述后关系型数据库可以包括主库和从库,所述主库和从库之间基于所述日志文件同步对数据的操作。
具体而言,当所述主库中存储的数据发生变更后,将对数据的事务操作记录到日志文件中并发送给从库,从库基于所述日志文件还原本侧数据库,以使得从库中的数据与主库的数据保持一致。
进一步,所述日志文件的保留方式可以包括:从库更新完就删除,则执行本实施例方案的消息引擎需要在所述日志文件被删除之前获取所述日志文件。
进一步,所述日志文件的保留方式还可以包括:保留固定时间区间,如保留1天、2天或更多天数后再删除。相应的,执行本实施例方案的消息引擎可以在所述时间区间内获取所述日志文件。
进一步,在步骤S101获取所述日志文件后,可以向所述后关系型数据库发送读取完成指令,所述后关系型数据库收到该指令再删所述日志文件。
在一个具体实施中,所述步骤S101可以包括步骤:通过所述后关系型数据库的日志查看接口获取所述日志文件。
具体而言,日志文件是加密存放于所述后关系型数据库的,在执行所述步骤S101时,可以利用所述后关系型数据库中已有的日志查看接口读取所述日志文件。进一步,通过所述日志查看接口读取到的就是解密好的日志文件。
在一个具体实施中,所述日志文件可以包括一条或多个日志,其中每一条日志记录有针对后关系型数据库中某条数据的某次事务操作。
在一个具体实施中,日志文件中的记录可以是以列表格式(list)、片格式(piece)和/或普通文本格式存储在后关系型数据库中的,需要转换成现有进行数据时更为通用的格式以便后续处理。
具体地,在所述步骤S101可以包括步骤:将所述日志文件的数据结构转换成预设通用数据结构,以实现数据规范化。
例如,所述预设通用数据结构可以包括JS对象简谱(JavaScriptObjectNotation,简称JSON)数据结构。例如,JSON数组(JsonArray)格式。
进一步地,对日志文件的格式转换可以包括字符串格式转换、数字类型格式转换、空(NULL)对象转换、字符流/二进制流数据存储位置解析。
由此,将获取的日志文件转换成支持开放数据库连接(Open DatabaseConnectivity,简称ODBC)或者Java数据库连接(Java Database Connectivity,简称JDBC)的流数据。
在一个变化例中,所述步骤S101获取所述日志文件的动作可以是在主库和从库同步期间执行的。
具体地,所述步骤S101可以包括步骤:在所述从库基于所述日志文件还原所述主库对数据的操作期间,将对数据的操作信息记录至通用日志文件;获取所述通用日志文件作为所述后关系型数据库的日志文件,其中,所述通用日志文件的数据结构不同于所述后关系型数据库生成的日志文件的数据结构。
进一步地,所述通用日志文件可以是为了执行本实施例所述数据实时同步方法而专门建立和维护的日志文件。
由此,无需通过日志查看接口获取后关系型数据库自己维护的日志文件,而是通过在主库和从库同步期间添加逻辑来将从库对数据的操作写入到所述通用日志文件,这同样能够获取所述后关系型数据库的日志文件。
在一个具体实施中,在后关系型数据库存储的“对象/关系”映射中,每个类(即类型)下可以关联一个或多个数据。对于每一类,所述类对应一个表。所述表可以是由行和列构成的二维表,其中每行对应于该类的一个实例,而每列的值对应于该实例的一个字段。每一字段描述该实例的一个属性。由行和列构成的单元即为该类的一个数据。
以人(person)这个类为例,该类可以对应有一个表,所述表可以包括多列,其中每列用于描述“人”的某一方面的属性。如该表包括年龄、性别、身高、体重四个字段,这四个字段即为类的四个属性。该表可以多行,其中每行对应一实例,即不同人的数据。不同行可以用标识(ID)相区分。可以将每行的数据称作行对象,也可称作数据行对象。
通过执行本实施例方案,可以基于日志文件还原得到日志所记录的被操作数据的行对象。
相应的,所述元数据信息可以选自:类元数据、类属性元数据、类存储元数据、表元数据以及字段元数据。
所述类元数据是指类的元数据,即类的基本信息,如类的名称。
所述类属性元数据是指类的属性信息,如字段、长度、类型等。其中,类的类型可以包括:持久类,该类的数据是实际存储于后关系型数据库中的;序列类,通过持久类的属性嵌入到后关系型数据库中;逻辑类,用于描述对数据的处理逻辑或计算逻辑,如分类、统计等。
所述类存储元数据用于定义类在存储文件中的存储信息,如存储位置。所述后关系型数据库中的数据可以采用全局(Global)形式存储。该形式采用的存储方式呈树状结构,存储位置可以为树状结构中的某个根节点或其他类对应的根节点的子节点。相应的,所述类存储元数据可以包括存储的根节点名或其他类对应的根节点下的子节点名。
所述表元数据用于记录类对应的多个属性之间的关系,如用于描述不同属性的多个字段分别对应表中的第几列。
所述字段元数据用于定义字段在存储文件中的存储位置。
在一个具体实施中,所述步骤S102可以是预先执行的,如在执行步骤S101之前/之后/同时获取所述后关系型数据库的元数据信息。
在一个具体实施中,参考图2,所述步骤S103可以包括如下步骤:
步骤S1031,根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表;
步骤S1032,基于所述日志获取所述数据在所述后关系型数据库中的存储信息;
步骤S1033,根据所述存储信息访问所述后关系型数据库,以获取所述数据并填充至所述表,其中,所述表与所述数据所属类相对应。
具体地,所述步骤S1031可以是预先执行的,如在获取所述日志文件之前就基于所述元数据信息确定各个类对应的表。
进一步,所述步骤S1031确定的表可以理解为模板,用于确定类的各个字段在表中的先后排列顺序,然后通过执行所述步骤S1032和步骤S1033,将日志记录的被操作数据具体的值写入到该模板中的对应单元内,即可实现对该数据的复制。
在一个具体实施中,在所述步骤S1031中,可以先把类存储元数据和类元数据对上。然后,对于每一类,根据字段元数据找到该类的字段,再和表元数据对上,最终得到类对应的表。
在一个具体实施中,所述日志可以包括:本次操作的操作类型,如添加、删除和更新;被操作的数据在所述后关系型数据库中的存储信息,如在Global中的存储地址;所述数据被操作的元数据的值,如数据行对象中被添加、删除或更新的字段的值。
进一步地,可以将所述数据被操作的元数据的值发送至所述需求方,以使需求方获知所述数据具体发生了什么变化,以及变化前后的内容。
在一个具体实施中,所述步骤S103还可以包括步骤:基于所述数据被操作的元数据的值替换所述表中对应元数据的值。
例如,可以基于所述数据被操作的元数据的值替换所述表中对应元数据的值,即对应字段的替换。
在一个具体实施中,所述步骤S1031可以包括步骤:根据所述日志文件确定所述预设时间段内发生操作的数据;针对所述发生操作的数据所属的每一类,根据所述元数据信息确定所述类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表。
由此,根据类存储元数据配置过滤器,仅获取被操作过的数据所属类对应的表,利于提升所述消息引擎的解析性能,降低网络传输数据量。
在一个具体实施中,在所述步骤S103之后,本实施例所述数据实时同步方法还可以包括步骤:接收数据订阅请求,所述数据订阅请求由异构数据源发送,所述异构数据源的数据库的结构不同于所述后关系型数据库;根据所述数据订阅请求查找转换得到的数据,并将查找结果反馈至所述异构数据源。
例如,所述异构数据源的数据库可以为关系型数据库。
具体地,所述数据订阅请求可以包括请求获取的数据的标识,或者,请求获取的数据所属的类。
由此,通过消息引擎解耦了数据源之间的耦合度,可以支持异构数据源。
在一个具体实施中,本实施例所述数据实时同步方法还可以包括步骤:对于所述日志文件中的每一条日志,将所述日志记录的操作类型与转换得到的对应的数据相关联。
基于日志中记录的针对数据的事务操作信息,使得其他类型数据库能够捕捉到后关系型数据库中数据的变化信息,如操作数据的时间戳等。例如,基于日志的删除(delete)记录,无需全库搜索比对即可在复制该条日志对应的数据的同时知道该数据已被后关系型数据库删除。
具体地,所述其他类型数据库可以包括关系型数据库,如Oracle数据库、MySQL数据库、基于(Hadoop Distributed File System,简称HDFS)的分布式存储系统。
由上,采用本实施例方案,能够实现对后关系型数据库的数据物理复制,且能够实时获取后关系型数据库内数据的事务操作信息。具体而言,通过解析后关系型数据库的日志文件,结合后关系型数据库中定义的元数据信息转换得到对应的数据对象,使得对后关系型数据库的数据进行物理复制成为可能。进一步,无需通过专门的调用指令或接口程序来获取后关系型数据库中存储的数据,使得对后关系型数据库中数据的物理复制更为便捷、高效。
图3是本发明实施例一种后关系型数据库的数据实时同步装置的结构示意图。本领域技术人员理解,本实施例所述后关系型数据库的数据实时同步装置3可以用于实施上述图1和图2所述实施例中所述的方法技术方案。
具体地,参考图3,本实施例所述后关系型数据库的数据实时同步装置3可以包括:第一获取模块31,用于获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;第二获取模块32,用于获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;转换模块33,对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据。
关于所述后关系型数据库的数据实时同步装置3的工作原理、工作方式的更多内容,可以参照上述图1和图2中的相关描述,这里不再赘述。
在一个具体实施中,所述第一获取模块31可以理解为日志文件解析模块,用于解析获取所述日志文件。
在一个具体实施中,所述第二获取模块32可以理解为所述后关系型数据库的元数据解析模块,用于基于所述元数据信息确定类对应的表。
在一个具体实施中,所述转换模块33可以理解为日志还原模块,用于基于第二获取模块32确定的表将第一获取模块31解析得到的日志还原为对应的数据行对象。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述图1和图2所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1和图2所示实施例中所述的方法技术方案。具体地,所述终端可以为消息引擎。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种后关系型数据库的数据实时同步方法,其特征在于,包括:
获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;
获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;
对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据;
所述后关系型数据库包括主库和从库,所述主库和从库之间基于所述日志文件同步对数据的操作,所述获取所述后关系型数据库的日志文件包括:
在所述从库基于所述日志文件还原所述主库对数据的操作期间,将对数据的操作信息记录至通用日志文件;
获取所述通用日志文件作为所述后关系型数据库的日志文件,其中,所述通用日志文件的数据结构不同于所述后关系型数据库生成的日志文件的数据结构;
所述根据所述元数据信息将所述日志转换成对应的数据包括:
根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表;
基于所述日志获取所述数据在所述后关系型数据库中的存储信息;
根据所述存储信息访问所述后关系型数据库,以获取所述数据并填充至所述表,其中,所述表与所述数据所属类相对应。
2.根据权利要求1所述的数据实时同步方法,其特征在于,还包括:
对于所述日志文件中的每一条日志,将所述日志记录的操作类型与转换得到的对应的数据相关联。
3.根据权利要求1所述的数据实时同步方法,其特征在于,所述获取所述后关系型数据库的日志文件包括:
通过所述后关系型数据库的日志查看接口获取所述日志文件。
4.根据权利要求3所述的数据实时同步方法,其特征在于,所述获取所述后关系型数据库的日志文件还包括:
将所述日志文件的数据结构转换成预设通用数据结构。
5.根据权利要求4所述的数据实时同步方法,其特征在于,所述预设通用数据结构包括JSON数据结构。
6.根据权利要求1所述的数据实时同步方法,其特征在于,所述元数据信息选自:类元数据、类属性元数据、类存储元数据、表元数据以及字段元数据。
7.根据权利要求1所述的数据实时同步方法,其特征在于,所述根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系包括:
根据所述日志文件确定所述预设时间段内发生操作的数据;
针对所述发生操作的数据所属的每一类,根据所述元数据信息确定所述类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表。
8.根据权利要求1所述的数据实时同步方法,其特征在于,还包括:
接收数据订阅请求,所述数据订阅请求由异构数据源发送,所述异构数据源的数据库的结构不同于所述后关系型数据库;
根据所述数据订阅请求查找转换得到的数据,并将查找结果反馈至所述异构数据源。
9.一种后关系型数据库的数据实时同步装置,其特征在于,包括:
第一获取模块,用于获取所述后关系型数据库的日志文件,其中,所述日志文件记录有历史预设时间段内对所述后关系型数据库中的数据的操作信息;
第二获取模块,用于获取所述后关系型数据库的元数据信息,其中,所述元数据信息用于描述所述后关系型数据库的类、字段和表之间的关联关系;
转换模块,对于所述日志文件中的每一条日志,根据所述元数据信息将所述日志转换成对应的数据,其中,所述对应的数据是指所述日志所记录的所述后关系型数据库中被操作的数据;
所述后关系型数据库包括主库和从库,所述主库和从库之间基于所述日志文件同步对数据的操作,所述获取所述后关系型数据库的日志文件包括:
在所述从库基于所述日志文件还原所述主库对数据的操作期间,将对数据的操作信息记录至通用日志文件;
获取所述通用日志文件作为所述后关系型数据库的日志文件,其中,所述通用日志文件的数据结构不同于所述后关系型数据库生成的日志文件的数据结构;
所述根据所述元数据信息将所述日志转换成对应的数据包括:
根据所述元数据信息确定类关联的一个或多个字段以及所述一个或多个字段与表的关联关系,以得到所述类对应的表;
基于所述日志获取所述数据在所述后关系型数据库中的存储信息;
根据所述存储信息访问所述后关系型数据库,以获取所述数据并填充至所述表,其中,所述表与所述数据所属类相对应。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至8任一项所述方法的步骤。
11.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623064.2A CN112286892B (zh) | 2020-07-01 | 2020-07-01 | 后关系型数据库的数据实时同步方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623064.2A CN112286892B (zh) | 2020-07-01 | 2020-07-01 | 后关系型数据库的数据实时同步方法及装置、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286892A CN112286892A (zh) | 2021-01-29 |
CN112286892B true CN112286892B (zh) | 2024-04-05 |
Family
ID=74420629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010623064.2A Active CN112286892B (zh) | 2020-07-01 | 2020-07-01 | 后关系型数据库的数据实时同步方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286892B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535434A (zh) * | 2001-03-09 | 2004-10-06 | ���Ĺ��ʹ�˾ | 用于在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统和方法 |
KR20080102622A (ko) * | 2007-05-21 | 2008-11-26 | 엔에이치엔(주) | Dbms에서의 데이터 복제 방법 및 시스템 |
CN103827865A (zh) * | 2011-09-23 | 2014-05-28 | 国际商业机器公司 | 利用异步的基于日志的复制来改进数据库高速缓存 |
CN103824069A (zh) * | 2014-03-19 | 2014-05-28 | 北京邮电大学 | 一种基于多主机日志关联的入侵检测方法 |
CN105488187A (zh) * | 2015-12-02 | 2016-04-13 | 北京四达时代软件技术股份有限公司 | 多源异构数据增量抽取的方法及装置 |
WO2016161381A1 (en) * | 2015-04-03 | 2016-10-06 | Oracle International Corporation | Method and system for implementing a log parser in a log analytics system |
CN107145403A (zh) * | 2017-04-20 | 2017-09-08 | 浙江工业大学 | 面向Web开发环境的关系型数据库数据回溯方法 |
CN107301251A (zh) * | 2017-08-08 | 2017-10-27 | 郑州仁峰软件开发有限公司 | 一种数据库同步的方法及系统 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN109241175A (zh) * | 2018-06-28 | 2019-01-18 | 东软集团股份有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110019139A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团内蒙古有限公司 | 数据迁移的方法、装置、电子设备和存储介质 |
CN110209735A (zh) * | 2019-05-05 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 数据库备份方法、数据库备份装置、计算设备和存储介质 |
CN110795287A (zh) * | 2019-10-30 | 2020-02-14 | 深圳前海环融联易信息科技服务有限公司 | 数据恢复方法、系统、电子设备及计算机存储介质 |
CN111177161A (zh) * | 2019-11-07 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880480B2 (en) * | 2007-01-03 | 2014-11-04 | Oracle International Corporation | Method and apparatus for data rollback |
US10671642B2 (en) * | 2016-11-11 | 2020-06-02 | International Business Machines Corporation | Copying data changes to a target database |
US10901958B2 (en) * | 2018-04-27 | 2021-01-26 | Netapp, Inc. | Archive log management for distributed database clusters |
-
2020
- 2020-07-01 CN CN202010623064.2A patent/CN112286892B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535434A (zh) * | 2001-03-09 | 2004-10-06 | ���Ĺ��ʹ�˾ | 用于在日志监视器结合了可动态再定义的商业逻辑的情况下保持大粒度数据库并发的系统和方法 |
KR20080102622A (ko) * | 2007-05-21 | 2008-11-26 | 엔에이치엔(주) | Dbms에서의 데이터 복제 방법 및 시스템 |
CN103827865A (zh) * | 2011-09-23 | 2014-05-28 | 国际商业机器公司 | 利用异步的基于日志的复制来改进数据库高速缓存 |
CN103824069A (zh) * | 2014-03-19 | 2014-05-28 | 北京邮电大学 | 一种基于多主机日志关联的入侵检测方法 |
WO2016161381A1 (en) * | 2015-04-03 | 2016-10-06 | Oracle International Corporation | Method and system for implementing a log parser in a log analytics system |
CN105488187A (zh) * | 2015-12-02 | 2016-04-13 | 北京四达时代软件技术股份有限公司 | 多源异构数据增量抽取的方法及装置 |
CN107145403A (zh) * | 2017-04-20 | 2017-09-08 | 浙江工业大学 | 面向Web开发环境的关系型数据库数据回溯方法 |
CN107301251A (zh) * | 2017-08-08 | 2017-10-27 | 郑州仁峰软件开发有限公司 | 一种数据库同步的方法及系统 |
CN110019139A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团内蒙古有限公司 | 数据迁移的方法、装置、电子设备和存储介质 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN109241175A (zh) * | 2018-06-28 | 2019-01-18 | 东软集团股份有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110209735A (zh) * | 2019-05-05 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 数据库备份方法、数据库备份装置、计算设备和存储介质 |
CN110795287A (zh) * | 2019-10-30 | 2020-02-14 | 深圳前海环融联易信息科技服务有限公司 | 数据恢复方法、系统、电子设备及计算机存储介质 |
CN111177161A (zh) * | 2019-11-07 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
数据仓库中的元数据;王红兵;微机发展;19990910(05);45-49 * |
非结构化Word数据表与RDB间的存储转换;黄蔚;张;李军怀;白敏;;计算机工程;20091020(20);43-46 * |
Also Published As
Publication number | Publication date |
---|---|
CN112286892A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461356B2 (en) | Large scale unstructured database systems | |
US11531682B2 (en) | Federated search of multiple sources with conflict resolution | |
JP6617117B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
US20240078229A1 (en) | Generating, accessing, and displaying lineage metadata | |
JP6416194B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
US20230092911A1 (en) | Tracking change data in a database | |
TW202032386A (zh) | 資料儲存裝置、轉譯裝置及資料庫存取方法 | |
US10990629B2 (en) | Storing and identifying metadata through extended properties in a historization system | |
CN110651265A (zh) | 数据复制系统 | |
Chavan et al. | Survey paper on big data | |
CN102426609A (zh) | 一种基于MapReduce编程架构的索引生成方法和装置 | |
US20150032689A1 (en) | Data definition language (ddl) expression annotation | |
US20150363484A1 (en) | Storing and identifying metadata through extended properties in a historization system | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN113934750A (zh) | 基于编译方式的数据血缘关系分析方法 | |
CN113779349A (zh) | 数据检索系统、装置、电子设备和可读存储介质 | |
El Alami et al. | Supply of a key value database redis in-memory by data from a relational database | |
CN114661832A (zh) | 一种基于数据质量的多模态异构数据存储方法及系统 | |
CN112286892B (zh) | 后关系型数据库的数据实时同步方法及装置、存储介质、终端 | |
Cordeiro et al. | Big data storage for a health predictive system | |
Isa et al. | Business Intelligence for Analyzing Department Unit Performance in eProcurement System | |
CN110688388A (zh) | 一种数据立方体的动态更新方法及服务器 | |
CN118503229B (zh) | 一种面向多源异构数据的Hudi数据摄取方法及系统 | |
US12124472B2 (en) | Federated search of multiple sources with conflict resolution | |
US20180075118A1 (en) | Replication queue handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |