一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据同步系统、方法、设备及介质与流程

2021-12-15 02:25:00 来源:中国专利 TAG:


1.本公开涉及数据加工技术领域,尤其涉及一种数据同步系统、方法、设备及介质。


背景技术:

2.绝大多数数据同步产品主要是大数据库厂商针对自己公司的数据库产品开发出来的,不一定适用于其它数据库管理系统。以mysql数据库数据同步为例,mysql的主从复制集群依靠主服务器将更新写入二进制日志文件,并维护文件的索引以跟踪日志循环,同时将这些日志发送到从服务器,以便从服务器更新。这样就要求源端、目标端的数据库必须都是mysql数据库才能使用该主从配置方案,这给业务系统之间的数据交换带来了难题。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据同步系统、方法、设备及介质。
4.本公开提供了一种数据同步系统,包括:关系型数据库管理系统mysql、日志解析模块、消息接收模块和etl加载模块;
5.所述mysql利用binlog,对源端数据库更新的逻辑日志文件进行实时记录;其中,所述逻辑日志文件由一系列的事务event构成;
6.所述日志解析模块基于预设的解析规则解析所述逻辑日志文件,得到事务处理数据流;
7.所述消息接收模块按照指定缓存路径,将来自于不同的所述源端数据库的所述事务处理数据流写入到缓存文件中;
8.所述etl加载模块从所述缓存文件中读取所述事务处理数据流,对所述事务处理数据流进行etl处理,得到通用格式的sql语句,并将所述sql语句加载进入目标端数据库。
9.可选的,所述日志解析模块在解析过程中,按照事务的acid属性对所述逻辑日志文件进行数据清洗;其中,所述数据清洗包括:检查数据一致性以及处理无效值和缺失值。
10.可选的,所述日志解析模块根据预设的过滤规则对所述逻辑日志文件进行过滤;其中,所述过滤规则用于选择需要同步的所述逻辑日志文件。
11.可选的,所述etl加载模块通过读取预设的配置文件,获取与所述目标端数据库的类型对应的映射规则;根据所述映射规则对所述事务处理数据流进行etl处理,得到通用格式的sql语句。
12.可选的,所述etl加载模块配置java数据库连接jdbc;所述etl加载模块以所述jdbc的方式将所述sql语句统一加载进入所述目标端数据库。
13.可选的,所述binlog基于同步机制的行模式进行数据记录。
14.可选的,所述目标端数据库为非mysql类型数据库。
15.本公开提供了一种数据同步方法,包括:
16.所述mysql利用binlog,对源端数据库更新的逻辑日志文件进行实时记录;其中,
所述逻辑日志文件由一系列的事务event构成;基于预设的解析规则解析所述逻辑日志文件,得到事务处理数据流;按照指定缓存路径,将来自于不同的所述源端数据库的所述事务处理数据流写入到缓存文件中;从所述缓存文件中读取所述事务处理数据流,对所述事务处理数据流进行etl处理,得到通用格式的sql语句,并将所述sql语句加载进入目标端数据库。
17.本公开提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述方法。
18.本公开提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述方法。
19.本公开实施例提供的技术方案与现有技术相比具有如下优点:
20.本公开实施例提供的一种数据同步系统、方法、设备及介质,该系统包括:mysql、日志解析模块、消息接收模块和etl加载模块;mysql利用binlog实时记录以event为单位的逻辑日志文件;日志解析模块基于预设的解析规则解析逻辑日志文件,得到具有较高完整性的事务处理数据流;消息接收模块缓存事务处理数据流;etl加载模块能够高效地对事务处理数据流进行etl处理,得到通用格式的sql语句,并将sql语句加载进入目标端数据库。上述技术方案,对逻辑日志文件的解析和传输以event为单位,减少了数据的传输量,无需处理复杂的“回滚”机制,从而可以在保证一致性和完整性的情况下,基于etl高效地进行数据库数据同步,提高了数据库间数据同步的效率;基于mysql的binlog解析出的sql语句,在目标端以jdbc的方式进行统一加载,达到异库备份的目的,较好地满足业务系统复杂的数据交换需求。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
22.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1为本公开实施例所述数据同步系统的结构示意图;
24.图2为本公开实施例所述日志解析模块的结构示意图;
25.图3为本公开实施例所述消息接收模块的结构示意图;
26.图4为本公开实施例所述etl加载模块的结构示意图;
27.图5为本公开实施例所述数据同步方法流程图。
具体实施方式
28.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
29.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采
用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
30.目前,绝大多数数据同步产品要求源端、目标端的数据库必须都是mysql数据库才能使用该主从配置方案,这给业务系统之间的数据交换带来了难题。为改善上述难题,本公开实施例提供了一种数据同步系统、方法、设备及介质。该数据同步系统用于实现基于mysql数据库操作日志在线分析的etl((extract

transform

load,数据仓库技术))数据同步方法,在保证数据一致性和完整性的情况下,通过日志在线分析技术,使用etl高效地进行数据库数据同步,达到异库备份的目的,较好地满足业务系统复杂的数据交换需求的问题。为便于理解,以下对本公开实施例进行详细介绍。
31.参照图1所示的一种数据同步系统的结构示意图,该系统包括:mysql100(关系型数据库管理系统)、日志解析模块200、消息接收模块300和etl加载模块400。
32.在本实施例中,mysql100利用binlog(二进制日志),对源端数据库更新的逻辑日志文件进行实时记录。其中,逻辑日志文件由一系列的event(事务)构成;源端数据库为mysql100类型数据库。
33.本实施例中的binlog基于同步机制的行模式进行数据记录。在具体实现时,开启mysql100的binlog记录功能,并修改为行(row)模式,binlog基于同步机制的行模式进行数据更新,实时的反映行级别的数据变化。
34.日志解析模块200接收binlog记录更新的逻辑日志文件,而后,基于预设的解析规则解析逻辑日志文件,得到事务处理数据流。在本实施例中,日志解析模块200按照固定的字节读取方式和解析规则,对逻辑日志文件的诸如数据库名、表名、事件类型、时间戳、事件编号、字段名称和对应的字段值等格式进行解析,得到用户对源端数据库的操作指令和操作结果的数据集,基于得到的数据集确定事务处理数据流。
35.日志解析模块200将得到的事务处理数据流通信传输给消息接收模块300。消息接收模块300按照指定缓存路径,将来自于不同的源端数据库的事务处理数据流写入到缓存文件中。
36.etl加载模块400从缓存文件中读取事务处理数据流,对事务处理数据流进行etl处理,得到通用格式的sql语句,并将sql语句加载进入目标端数据库。其中,目标端数据库为非mysql100类型数据库,诸如可以包括:hbase、kylin、或es的nosql数据库。
37.为便于理解,以下实施例对上述数据同步系统展开详细描述。
38.开启mysql100的binlog记录功能,并修改为行模式,mysql100利用binlog,对源端数据库更新的逻辑日志文件进行实时记录。在row模式下,binlog中可以只需要记录发生变化(比如修改或更新)的数据记录以及发生变化后的数据记录,从而,row的日志内容能够清楚的记录下每一行数据变化的细节,容易理解;而且不会出现某些特定情况下的存储过程和function,以及trigger的调用和出发无法被正确复制问题。
39.参照图2,日志解析模块200读取如下配置规则:解析规则和过滤规则,根据读取的上述配置规则对逻辑日志文件进行解析,而后将解析后得到的事务处理数据流传输给目标端的消息接收模块300。
40.为了提高日志解析模块200所得的事务处理数据流的数据质量,在一种实施例中,日志解析模块200在按照预设的解析规则解析逻辑日志文件的过程中,可以按照事务的
acid属性对逻辑日志文件进行数据清洗。通常,事务的acid属性分别是原子性、一致性、隔离性和持久性。
41.在实施时,日志解析模块200可以添加事务完整性的检查点,通过所述事务完整性的检查点并按照事务的acid属性对逻辑日志文件进行数据清洗;该数据清洗可以包括:检查数据一致性以及处理无效值和缺失值。本具体实施例在解析过程中添加事务完整性的检查点,在发生断电、故障的数据库重启的情况下,通过数据清洗实现无脏数据和重复数据的读取,主动过滤重复事务以及事务不完整的数据,保障业务数据的事务完整性。
42.在又一实施例中,在解析逻辑日志文件之前,日志解析模块200还可以根据预设的过滤规则对逻辑日志文件进行过滤;其中,过滤规则用于选择需要同步的逻辑日志文件。通过配置过滤规则,用户可以有针对性的选择待同步的逻辑日志文件,对不需要发送的逻辑日志文件进行过滤处理,以减小待解析的数据量,进而降低发送数据量对网络的压力。
43.消息接收模块300按照指定缓存路径,将来自于不同的源端数据库的事务处理数据流写入到缓存文件中。
44.参照图3所示,消息接收模块300接收来自不同源端数据库的事务处理数据流,并按照指定缓存路径,将事务处理数据流写入到本地用于数据加载的缓存文件当中。本实施例采用缓存的方式存储接收到的事务处理数据流是为了减少网络压力,加快网络发送接收响应时间,减少目标端数据库阻塞对数据接收的影响,从根本上解决因为数据库数据同步入库造成的源端和目标端之间数据阻塞问题。
45.参照图4,etl加载模块400在对事务处理数据流进行etl处理的实施方式中,通过读取预设的配置文件,获取与目标端数据库的类型对应的映射规则;根据映射规则对事务处理数据流进行etl处理,得到通用格式的sql语句。本实施例中通过etl加载模块400对事务处理数据流进行在线解析,将其处理为通用格式的标准sql语句,能达到异构数据库之间的数据备份功能。
46.etl加载模块400配置jdbc(java database connectivity,java数据库连接);etl加载模块400以jdbc的方式将sql语句统一加载进入目标端数据库,至此批量完成装载数据。
47.综上,本公开实施例提供的一种数据同步系统,包括:mysql、日志解析模块、消息接收模块和etl加载模块;mysql利用binlog实时记录以event为单位的逻辑日志文件;日志解析模块基于预设的解析规则解析逻辑日志文件,得到具有较高完整性的事务处理数据流;消息接收模块缓存事务处理数据流;etl加载模块能够高效地对事务处理数据流进行etl处理,得到通用格式的sql语句,并将sql语句加载进入目标端数据库。上述技术方案,对逻辑日志文件的解析和传输以event为单位,减少了数据的传输量,无需处理复杂的“回滚”机制,从而可以在保证一致性和完整性的情况下,基于etl高效地进行数据库数据同步,提高了数据库间数据同步的效率;基于mysql的binlog解析出的sql语句,在目标端以jdbc的方式进行统一加载,达到异库备份的目的,较好地满足业务系统复杂的数据交换需求。
48.以上实施例提供的数据同步系统,用于实现如图5所示的数据同步方法,该方法可以包括如下步骤:
49.步骤s502,mysql利用binlog,对源端数据库更新的逻辑日志文件进行实时记录;其中,逻辑日志文件由一系列的事务event构成;
50.步骤s504,基于预设的解析规则解析逻辑日志文件,得到事务处理数据流;
51.步骤s506,按照指定缓存路径,将来自于不同的源端数据库的事务处理数据流写入到缓存文件中;
52.步骤s508,从缓存文件中读取事务处理数据流,对事务处理数据流进行etl处理,得到通用格式的sql语句,并将sql语句加载进入目标端数据库。
53.本实施例所提供的方法,其实现原理及产生的技术效果和前述系统实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述系统实施例中相应内容。
54.进一步,本实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述数据同步方法。
55.进一步,本实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述数据同步方法。
56.本公开实施例所提供的一种数据同步系统、方法、设备及介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见系统及方法的实施例,在此不再赘述。
57.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
58.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献