语句级别日志的数据库幂等性数据增量同步方法和系统技术方案

技术编号:39902986 阅读:10 留言:0更新日期:2023-12-30 13:17
本发明专利技术公开了一种语句级别日志的数据库幂等性数据增量同步方法和系统,属于数据库幂等性数据增量同步领域,解决了如何利用语句级别日志实现数据库幂等性数据增量同步的问题;包括:解析语句级别日志,建立与语句级别日志的主数据库实时对应的影子库;数据更新产生增量数据时,利用

【技术实现步骤摘要】
语句级别日志的数据库幂等性数据增量同步方法和系统


[0001]本专利技术属于数据库幂等性数据增量同步
,涉及一种语句级别日志的数据库幂等性数据增量同步方法和系统,具体表现在实现日志信息不全数据库的幂等性数据增量更新


技术介绍

[0002]数据库技术是现代信息技术的重要组成部分,已经广泛应用于各个领域,包括企业管理

电子商务

金融

医疗

科研等

随着互联网

物联网

人工智能等技术的快速发展,由于不同的数据需求和应用场景方面,使得数据的产生速度和规模都在不断增加

同时,不同的业务场景和需求需要不同类型的数据库来存储和管理数据,为了更好地满足不同的业务需求,不同类型的数据库应运而生

例如,社交网络中需要处理大量的复杂关系数据,金融行业需要处理高并发和实时交易数据,医疗行业需要处理海量的医疗影像数据等等

然而这也导致了各部门或业务领域中存在独立的数据系统或数据集合,数据之间缺乏有效的集成和共享,造成数据重复

数据冗余

数据不一致等问题,从而形成了“数据烟囱”的现状

[0003]为了解决这一问题,数据库也生成了对应事务日志,事务日志被划分为行级别日志和语句级别日志,行级别日志默认支持数据的跨域同步,为支持幂等性数据更新的日志,在日志中以行形式记录的详细事件,属于低级别日志,详细记录每个操作和事件的详细信息

语义级别日志为非幂等性日志,其更关注事件的语义或业务含义,记录用户进行的操作,数据较高级别的日志记录,不会记录详细信息

[0004]幂等性日志是指某一时刻日志中的数据不同时,利用幂等性可以把数据按照主键关联这种严格的格式执行为一致

主键关联保证数据不会失联,在这一时刻的更新就能得到这一时刻的正确数据

包括
InnodDB
存储引擎的
mysql、PostgreSQL、Oracle


[0005]非幂等性日志,只更新非主键关联的对象,非幂等性更新存在的问题是,如果更新的目标数据已经和原数据不同,则更新后的目标数据为错误数据,部分数据库针对业务场景数据较少且可运用资源较少,为了降低数据库的负载,选用了非幂等性的语句级别日志,如
SQLite、H2 Database、Derby、Access
等,这种语句级别日志仅记录了数据库的数据操纵语言
(Data Manipulation Language,DML)

DDL(Data Definition language,DDL)

DDL
在数据库指的是创建和操作数据库或是表格的语句,特定指向
CREATE,ALTER,DROP
等操作

其本身也无法实现数据的幂等性增量更新

因此,解决数据库中大量仅具备语句级别日志数据库的增量同步,成为了实现大数据的数据多源融合面临的一件迫在眉睫的事情


技术实现思路

[0006]语句级别的日志是一种数据库日志,用于记录在数据库中执行的每个
SQL
语句

具体而言,当数据库接收到一个
SQL
语句时,它将该语句的文本记录在语句级别日志中

因其不具备行级别日志的数据幂等性更新机制,因此导致其无法有效支撑后续的异构数据库的融合

而目前主流的数据库有大部分为了保证数据的高效存储和读取,都在数据库的设计
上仅保留了语句级别日志的产生,这也为后续数据的融合形成很大的阻力

为解决不具备完善的生态环境的数据库或是从数据库的性能做考虑,其不具备行日志信息的非幂等性的语句级别日志,无法完成幂等性数据增量同步,无法实现数据多源融合的问题,本方案旨在提出一种语句级别日志的数据库幂等性数据增量同步方法和系统,其本质依赖于数据缓存器
Cassandra
的数据增量快照,结合通过数据监听通道存入
Kafka
日志中特定格式的数据,产出携带位置的且包含数据详细修改信息的行级别日志

借此便可完成仅依赖于语句级别日志实现的数据融合同步方法

[0007]本专利技术的目的通过以下技术方案来具体实现:
[0008]本专利技术公开了一种语句级别日志的数据库幂等性数据增量同步方法,该方法包括:
[0009]步骤一

解析语句级别日志得到数据结构;基于数据结构,通过语句级别日志中的同构数据库同步的功能,建立与语句级别日志的主数据库实时对应的影子库;
[0010]步骤二

影子库数据更新产生增量数据时,利用数据缓存器
Cassandra
周期性对影子库中携带事务变化的位置和信息的增量数据建立增量快照,在特定阀值下删除过期增量快照后,以键值对的数据格式存储在
Cassandra
中,形成行级别日志;
[0011]步骤三

通过数据监听通道将行级别日志的增量数据按事务变化的位置先后顺序存入
Kafka
日志中;
[0012]步骤四

根据任务需求,通过数据转换工具对
Kafka
日志中的行级别日志的增量数据按事务变化的位置先后顺序取出,完成语句级别日志的数据库幂等性数据增量同步的更新和融合

[0013]步骤一中,基于数据结构,通过语句级别日志中的同构数据库同步的功能,建立与语句级别日志的主数据库实时对应的影子库的方法包括:
[0014]设置语句级别日志的主数据库;
[0015]通过语句级别日志中的同构数据库同步的功能,基于语句级别日志的数据结构,建立与主数据库实时对应的影子库,并记录影子库开始建立的时间;
[0016]影子库建立后,基于影子库开始建立的时间,通过数据转换工具定时对影子库和主数据库的数据进行比较,及时修复不一致的数据,维护影子库

[0017]步骤二中,影子库数据更新产生增量数据时,利用数据缓存器
Cassandra
周期性对影子库中携带事务变化的位置和信息的增量数据建立增量快照的方法包括:
[0018]利用数据缓存器
Cassandra
设置用于定期循环执行比对数据库任务的作业或脚本,通过比对主数据库和影子库的时间戳,提取影子库中携带事务变化的位置和信息的增量数据,建立并存储增量数据对应的增量快照

[0019]进一步的,提取影子库中携带事务变化的位置和信息的增量数据的方法包括:
[0020]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种语句级别日志的数据库幂等性数据增量同步方法,其特征在于,该方法包括:步骤一

解析语句级别日志得到数据结构;基于数据结构,通过语句级别日志中的同构数据库同步的功能,建立与语句级别日志的主数据库实时对应的影子库;步骤二

影子库数据更新产生增量数据时,利用数据缓存器
Cassandra
周期性对影子库中携带事务变化的位置和信息的增量数据建立增量快照,在特定阀值下删除过期增量快照后,以键值对的数据格式存储在
Cassandra
中,形成行级别日志;步骤三

通过数据监听通道将行级别日志的增量数据按事务变化的位置先后顺序存入
Kafka
日志中;步骤四

根据任务需求,通过数据转换工具对
Kafka
日志中的行级别日志的增量数据按事务变化的位置先后顺序取出,完成语句级别日志的数据库幂等性数据增量同步的更新和融合
。2.
如权利要求1所述的方法,其特征在于,步骤一中,基于数据结构,通过语句级别日志中的同构数据库同步的功能,建立与语句级别日志的主数据库实时对应的影子库的方法包括:设置语句级别日志的主数据库;通过语句级别日志中的同构数据库同步的功能,基于语句级别日志的数据结构,建立与主数据库实时对应的影子库,并记录影子库建立时间;影子库建立后,基于影子库建立时间,通过数据转换工具定时对影子库和主数据库的数据进行比较,及时修复不一致的数据,维护影子库
。3.
如权利要求1所述的方法,其特征在于,步骤二中,影子库数据更新产生增量数据时,利用数据缓存器
Cassandra
周期性对影子库中携带事务变化的位置和信息的增量数据建立增量快照的方法包括:利用数据缓存器
Cassandra
设置用于定期循环执行比对数据库任务的作业或脚本,通过比对主数据库和影子库的时间戳,提取影子库中携带事务变化的位置和信息的增量数据,建立并存储增量数据对应的增量快照
。4.
如权利要求3所述的方法,其特征在于,提取影子库中携带事务变化的位置和信息的增量数据的方法包括:更新循环执行比对数据库任务的作业或脚本的开始时间,结合数据缓存器
Cassandra
存储的周期性时间,获取特定周期内影子库的全量数据;将主数据库和影子库的时间戳变化的数据与该数据对应的一个周期性的全量数据进行扫描对比,在单条数据变化处插入数据变化标记,提取插入数据变化标记的影子库中携带事务变化的位置和信息的数据作为增量数据进行存储
。5.
如权利要求1所述的方法,其特征在于,步骤二中,在特定阀值下删除过期增量快照的步骤包括:设置建立增量快照过程的运行状况的监控和日志记录,通过比较增量快照的创建时间和删除时间阈值;判断如果存储的增量快照的时间超过删除时间阈值,则将该过期增量快照删除
。6.
如权利要求1或3所述的方法,其特征在于,步骤二中,以键值对的数据格式存储在
Cassandra
中,形成行级别日志的方法包括:
在同构数据库同步工具中配置语句级别日志的主数据库

目标数据库和影...

【专利技术属性】
技术研发人员:王蒙金咏哲唐新余陈光刘雷赵宁生
申请(专利权)人:江苏中科西北星信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1