CN112783980A - 数据同步处理方法、装置、电子设备以及计算机可读介质 - Google Patents
数据同步处理方法、装置、电子设备以及计算机可读介质 Download PDFInfo
- Publication number
- CN112783980A CN112783980A CN202110137823.9A CN202110137823A CN112783980A CN 112783980 A CN112783980 A CN 112783980A CN 202110137823 A CN202110137823 A CN 202110137823A CN 112783980 A CN112783980 A CN 112783980A
- Authority
- CN
- China
- Prior art keywords
- data
- subscription
- data change
- change
- source database
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title description 24
- 230000008859 change Effects 0.000 claims abstract description 211
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000013500 data storage Methods 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 16
- 230000002567 autonomic effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 12
- 230000004075 alteration Effects 0.000 claims description 8
- 230000010076 replication Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 101100446506 Mus musculus Fgf3 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据同步方法和装置,涉及数据库技术领域。该方法的一具体实施方式包括确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水,该实施方式在数据同步同时对数据的变更进行了有效地记录。
Description
技术领域
本申请涉及计算机技术领域,具体涉及数据库技术领域,尤其涉及一种数据同步处理方法、装置、电子设备、计算机可读介质以及计算机程序产品。
背景技术
现如今互联网的不同业务的数据增长飞快,需要对这些业务数据进行存储,而进行存储时数据来源一般可能是多个不同渠道的数据,如来源于下游***或不同类型的数据库,在数据存储量较大时,一般采用增量的方式进行同步存储。
增量同步存储的方式有多种,例如,与下游***进行对接,使下游***在有新增或变更数据时进行实时通知,这种同步方式在数据频繁变化时,会导致接收方疲于同步操作,不但对网络资源造成一定的消耗,同时对接收方的性能有严格要求,极端情况下可能拖垮接收方。再如,通过定时任务,每隔一定时间去扫描全量数据或增量数据并对比差异,该增量同步存储方式首先时效不能保证,其次在数据差异对比不当时,可能会大量占用***资源。
发明内容
提供了一种数据同步处理方法、装置、电子设备、计算机可读介质以及计算机程序产品。
根据第一方面,提供了一种数据同步处理方法,上述方法包括:确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
根据第二方面,提供了一种数据同步处理装置,该装置包括:生成单元,被配置成确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;复制单元,被配置成针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;记录单元,被配置成基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
根据第三方面,提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面任一实现方式描述的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面任一实现方式描述的方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面任一实现方式描述的方法。
本申请的实施例提供的数据同步处理方法和装置,首先,确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;其次,针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;最后,基于各个源数据库对应的数据结构表中数据的变更,在预设的数据库变更表中记录各数据结构表的数据变更流水。由此,可以对多种不同数据库来源的数据进行增量同步存储,自动记录增量同步过程中变更数据的数据变更流水,提高了数据变更记录的灵活性,节省了数据存储空间,提高了数据存储效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请数据同步处理方法的一个实施例的流程图;
图2是根据本申请数据同步处理的一种结构示意图;
图3是根据本申请数据同步处理方法的另一个实施例的流程图;
图4是本申请查询数据变更表中所有订阅字段对应数据的数据变更流水的方法的一种流程图;
图5是根据本申请数据同步处理装置的实施例的结构示意图;
图6是用来实现本申请实施例的数据同步处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了根据本申请数据同步处理方法的一个实施例的流程100。上述数据同步处理方法包括以下步骤:
步骤101,确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表。
本实施例中,源数据库是数据来源方数据库,由于不同种类的源数据库存储数据的存储结构不同,针对需要记录的变更数据的源数据库,可以首先通过人工或其他方式(比如与预先存储数据存储结构的源数据库的服务器进行通信)确定源数据库的数据存储结构,以数据库表存储数据的源数据库,可以通过人工或其他方式确定源数据库中表的表结构,表结构包括至少一个表字段,每个表字段用于记录不同数据,数据结构表是具有与存储结构相同的表字段的空白表,该数据结构表用于与源数据库的变更的数据进行同步。
本实施例中,数据同步处理方法运行于其上的执行主体可以是一种数据库,而源数据库与执行主体之间的数据同步和数据复制过程可以参考常规的两个数据库之间数据同步和复制过程。
步骤102,针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中。
本实施例中,数据同步处理方法运行于其上的执行主体接收源数据库的原生同步方式生成的数据库日志的数据,并把数据库日志的数据复制到与该源数据库对应的数据结构表中,可以在该数据结构表中实时记录源数据库的数据库日志中的所有数据。
针对不同类型的源数据库,接收数据库日志的方式不同,如图2所示,针对mysql类型源数据库,可以通过查看日志文件命令接收源数据库的Mysql binlog(Mysql binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新)。具体地,通过dbcc sqlperf(logspace)命令可以获取实例中每个数据库日志文件大小,及使用情况。进一步地,动态执行dbcc sqlperf(logspace)命令可以将数据库日志的数据***数据结构表中,以达到复制数据库日志的数据的目的。针对oracle类型源数据库(图2中的oracle),可以通过数据库同步工具(如,Shareplex工具,可以从oracle源数据库的数据库日志中读取数据库的所有变化数据)接收源数据库的数据库日志。针对其他类型数据库(图2中的其他数据库),可以采用与其他类型数据库相适配的同步方式,得到其他类型数据库的数据库日志。
步骤103,基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
本实施例中,数据结构表中仅仅用于记录不同字段对应的数据的最终的变化值,而数据变更表中记录不同字段对应数据的所有变化值,形成数据变更流水,例如,一整型数据,从1变为2,2变为3,3变为5,在数据结构表仅记录有该整型数据为5,而数据变更表记录有1、2、3、5这些数据形成的数据变更流水。
本实施例中,可以预先根据各个数据结构表的数据结构设置数据变更表,并且数据变更表可以是一个表也可以是多个表,当数据变更表是多个表时,每个数据变更表可以对应一个数据结构表,记录每个数据结构表的数据变更流水。当数据变更表是一个表时,该数据变更表可以用于记录所有的数据结构表的数据变更流水。
如表1所示,是一种数据变更表,具有表创建内容(如id、table_name、create_time)和表记录的数据变更内容(modify_content、type),在数据变更表中,数据变更内容modify_content是以至少一个表字段通过多列方式存储的,各个表字段对应数据的类型可以相同也可以不同。由于变更记录表中的自增主键id可自增长且不会重复,通过判断最后的自增主键id和之前表中的自增主键id是否一样可以确定数据变更表中是否又有了新的变更内容modify_content,在不一样时,表示数据变更表又有了新的数据变更流水的记录。
表1
名称 | 类型 | 长度 | 内容 |
id | int | 20 | 主键 |
table_name | varchar | 50 | 变更记录表的表名 |
type | int | 2 | 变更类型:1,新增;2,修改;3,删除; |
modify_content | varchar | 255 | 变更内容,多字段存储 |
create_time | datetime | 0 | 表创建时间 |
本实施例中,可以为各个源数据库对应的数据结构表中的数据设置触发器,以在各个数据结构表中数据有变化时,将变更的数据记录在预设的数据变更表中。触发器(Trigger)是由事件来触发某个操作。这些事件包括各个数据结构表中的***(INSERT)语句、增加(UPDATE)语句和删除(DELETE)语句。当数据库***执行这些事件时,会激活促发触发器执行向数据变更表中***变更的数据的操作。
本实施例中,数据同步处理方法运行与其上的执行主体,可在各个数据结构表中增加触发器,从而在各个数据结构表发生变更操作的时候自动触发各自的触发器,把表中表现数据变更记录的数据变更流水存储到变更记录表中。
在本实施例的一些可选实现方式中,上述在预设的数据变更表中记录各数据结构表的数据变更流水,包括:在数据变更表中实时记录各个源数据库对应的数据结构表中至少一个表字段对应数据的数据变更流水。
本可选实现方式中,可以通过触发器针对数据结构表中任意一个或多个表字段的数据的变更情况进行记录,得到数据结构表中至少一个表字段对应数据的数据变更流水。
本可选实现方式提供的记录数据结构表的数据变更流水的方法,可以记录整个数据结构表或表字段的数据变更流水,维度最低达到数据结构表的列级别,提高了变更数据记录的灵活性。
本申请的实施例提供的数据同步处理方法,首先,确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;其次,针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;最后,基于各个源数据库对应的数据结构表中数据的变更,在预设的数据库变更表中记录各数据结构表的数据变更流水。由此,可以对多种不同数据库来源的数据进行增量同步存储,自动记录增量同步过程中变更数据的数据变更流水,提高了数据变更记录的灵活性,节省了数据存储空间,提高了数据存储效率。
图3示出了根据本申请数据同步处理方法的另一个实施例的流程300。上述数据同步处理方法包括以下步骤:
步骤301,确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表。
步骤302,针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中。
步骤303,基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
应当理解,上述步骤301-步骤303中的操作和特征,分别与步骤101-103中的操作和特征相对应,因此,上述在步骤101-103中对于操作和特征的描述,同样适用于步骤301-步骤303,在此不再赘述。
步骤304,获取包括订阅方的至少一个订阅字段的订阅表。
本实施例中,订阅方是有变更数据订阅需求的业务方,该业务方在支持订阅表的应用***中将订阅内容(例如,订阅字段,索引标识)记录在订阅表中。本实施例数据同步处理方法运行于其上的执行主体在得到订阅表之后,可以提取订阅内容,并基于订阅内容从变更数据表中提取与订阅内容对应的数据的数据变更流水。
如表2所示,是一种订阅表,具有表创建内容(id、table_name)和订阅内容(table_column、index_id),在订阅表中,其自增主键id也可自增长且不会重复,其索引标识是一种与变更数据表同步的自增主键,且是与变更数据表最后一次同步的自增主键。在订阅表中,订阅列名称table_column,又称订阅字段,订阅字段与数据变更表中变更内容中的至少一个表字段相同,并且订阅字段支持多列方式存储,通过订阅字段可以确定需要订阅的字段的数据的数据变更流水,
表2
名称 | 类型 | 长度 | 内容 |
id | int | 20 | 自增主键 |
table_name | varchar | 50 | 订阅表的表名 |
table_column | varchar | 255 | 订阅列名称,支持多列方式存储 |
index_id | int | 20 | 索引标识,与数据变更表最后一次同步的id |
需要说明的是,表2仅是订阅表的一种示例表格式,在其他的实施例中,订阅表的订阅内容可以仅包括索引标识,订阅内容可以仅包括订阅字段,或者基于订阅方的需求,订阅内容也可以不包括索引标识以及订阅字段。
步骤305,基于订阅表,查询数据变更表中所有订阅字段对应数据的数据变更流水。
本实施例中,订阅表中的订阅字段是与数据变更表中至少一个表字段相同,通过订阅字段可以快速确定数据变更表中数据的数据变更流水。
为了获取更加有效的数据变更流水,可以获取整个订阅字段所有的数据变更流水,也可以获取订阅字段中部分的数据变更流水,而获取部分的数据变更流水可以通过数据变更表中的自增主键实现。
在本实施例的一些可选实现方式中,订阅表包括索引标识,数据变更表包括自增主键;上述基于订阅表,查询数据变更表中所有订阅字段对应数据的数据变更流水,包括:
响应于确定数据变更表中最后的自增主键与订阅表中记录的索引标识不同,查询数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水;采用最后的自增主键替换订阅表中记录的索引标识。
本可选实现方式中,数据变更表中的自增主键可以根据数据变化自增长(比如加一增长)且各个自增主键完全不相同,数据变更表中最后的自增主键也是数据变更表中最后增长的自增主键,一般该最后的自增主键的值比其他自增主键的值大。
本可选实现方式中,订阅表中的索引标识是数据变更表中的一个自增主键,且索引标识是与数据变更表最后一次同步的自增主键,每次订阅表查询完数据变更表,将此次查询到的数据变更表的最后的自增主键替换索引标识,并记录在订阅表中最为新的索引标识,以便于下次从索引标识开始查询数据变更表,继续得到由索引标识开始至数据变更表中最后的自增主键至的所有订阅字段对应的数据的数据变更流水。
本可选实现方式中,在数据变更表中最后的自增主键与订阅表中记录的索引标识不同时,确定变更表中具有除订阅表中记录的索引标识之外的的数据变更流水,该数据变更流水即为订阅方需求的数据变更流水;进一步,采用最后的自增主键替换订阅表中记录的索引标识,提高了订阅表的实时订阅效果。
步骤306,将查询到的所有订阅字段对应数据的数据变更流水推送给订阅方。
本实施例中,基于执行主体与订阅方之间的通信方式不同,查询到的数据变更流水可以通过不同方式推送给订阅方,例如,通过WEB页面向订阅方推送信息,或者通过短信息向订阅方推送数据变更流水。
本实施例的数据同步处理方法可通过一个独立的***或逻辑实现,订阅方可在该***或者独立逻辑所在***直接注册使用,对接简单方便,能有效降低***业务的复杂度。
本实施例提供的数据同步处理方法,在预设的数据变更表中记录各数据结构表的数据变更流水之后,获取订阅方为数据变更表配置的订阅表,基于订阅表,查询数据变更表中所有订阅字段对应数据的数据变更流水,将查询到的所有订阅字段对应数据的数据变更流水推送给订阅方,由此通过订阅方配置的订阅表,可以快速地将数据变更流水推送给订阅方,以使订阅方实时确定数据变更情况。
在本实施的一些可选实现方式中,在订阅表包括索引标识,数据变更表包括自增主键时,本实施例还提供了一种查询数据变更表中所有订阅字段对应数据的数据变更流水的方法,图4示出了本申请查询数据变更表中所有订阅字段对应数据的数据变更流水的方法的一个实施例的流程400。上述查询数据变更表中所有订阅字段对应数据的数据变更流水的方法包括以下步骤:
步骤401,响应于确定数据变更表中最后的自增主键与订阅表中记录的索引标识不同,定位最后的自增主键至订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据。
本可选实现方式中,无效数据可以根据数据同步需求或者订阅方订阅需求确定,例如,在数据变更表中最后的自增主键与订阅表中记录的索引标识之间的数据由一个值经过变化之后变回该值,而中间不论经过任何变化,在该值之间所有的变化值均是无效数据。可选地,还可以将数据变更流水中均有相同值的两个数据之间的值作为有效数据,而除了有效数据之外的数据为无效数据。
步骤402,去除无效数据。
本可选实现方式中,去除无效数据是指删除定位的数据变更流水中的无效数据,使定位的数据变更流水中不包含任何无效数据。本实施例中,无效数据可以是至少一段数据变更流水,也可以是一个数据值。
步骤403,查询数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水。
本可选实现方式中,上述数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水,是去除无效数据之后的订阅字段对应数据的数据变更流水。
本可选实现方式中,在查询到数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水之后,将查询到的数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水推送给订阅方。
本实施例中,无效数据可以基于订阅方的需求而确定,比如,数据变更流水中相邻数据的数值变化值为设定值(比如5)的所有数据为无效数据,对于采用增量方式进行同步存储的数据,可以将变化趋势为变化到原值的所有中间数据作为无效数据,例如,某整型数据的数据变更流水,由1变为2,由2变为4,由4变为7,由7变为2,则“由2变为4,由4变为7,由7变为2”均为无效数据。
在本实施例的一些可选实现方式中,定位最后的自增主键至订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据,包括:将最后的自增主键至订阅表中记录的索引标识之间的所有自增主键降序排列,得到所有订阅字段对应数据的数据变更流水段;检测数据变更流水段中是否有相同的值;响应于确定数据变更流水段中有相同的值,则确定两个相同值之间的所有的数据为无效数据。
本可选实现方式中,定位的最后的自增主键至订阅表中记录的索引标识之间的所有订阅字段对应的数据的数据值初始是1,变更后变为2,后来又变更后变为了1,此时可以认为这个数据没有更改,那么这个数据可以理解为无效数据,可以不用再向订阅方进行推送。通过筛选数据变更记录表,将数据变更记录表的自增主键降序排列,最上面的信息就是最后的自增主键,也是最后修改的自增主键,比如查到某个订阅字段最后一个自增主键对应的数据的数据值之后,在数据变更表中搜这个订阅字段的数据是否有其他修改记录,如果有则两个数据值比较,检测两个数据值是否相同,如果两个数据值都一样,那么可以去掉这个订阅字段的两个相同数据之间的数据变更流水段,如果未有相同的数据值则向订阅方进行推送该数据变更流水段。
本可选实现方式中,首先确定所有订阅字段对应数据的数据变更流水段,检测数据变更流水段中是否有相同的值,变更流水段中有相同值时,确定两个相同值之间的所有的数据为无效数据,本可选实现方式为以增量方式同步数据提供去除无效数据的可靠的手段,保证了向订阅方推送的数据变更流水的有效性。
步骤404,采用最后的自增主键替换订阅表中记录的索引标识。
本可选实现方式中,采用最后的自增主键替换订阅表中记录的索引标识,用于更新订阅表中的索引标识,从而使订阅表中的索引标识与数据变更表最后一次的自增主键同步,保证了下一次查询的数据变更表中数据变更流水的可靠性。
本可选实现方式提供的确定所有订阅字段对应数据的数据变更流水的方法,在数据变更表中最后的自增主键与订阅表中记录的索引标识不同时,定位最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据,并去除无效数据,提高了订阅表的得到订阅数据的数据质量,保证了订阅方得到的数据的有效性。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了数据同步处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可应用于各种电子设备中。
如图5所示,本实施例提供的数据同步处理装置500包括:生成单元501,复制单元502,记录单元503。其中,上述生成单元501,可以被配置成确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表。上述复制单元502,可以被配置成针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中。上述记录单元503,可以被配置成基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
在本实施例中,数据同步处理装置500中:生成单元501,复制单元502,记录单元503的具体处理及其所带来的技术效果可分别参考图1对应实施例中的步骤101、步骤102、步骤103的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述记录单元503进一步被配置成在数据变更表中实时记录各个源数据库对应的数据结构表中至少一个表字段对应数据的数据变更流水。
在本实施例的一些可选的实现方式中,上述装置500还包括:获取单元(图中未示出),查询单元(图中未示出),推送单元(图中未示出)。其中,上述获取单元,可以被配置成被配置成获取包括订阅方的至少一个订阅字段的订阅表。上述查询单元,可以被配置成基于订阅表,查询数据变更表中所有订阅字段对应数据的数据变更流水。上述推送单元,可以被配置成将查询到的所有订阅字段对应数据的数据变更流水推送给订阅方。
在本实施例的一些可选的实现方式中,上述订阅表包括索引标识,数据变更表包括自增主键;查询单元包括:查询模块(图中未示出),替换模块(图中未示出)。其中,上述查询模块,可以被配置成响应于确定数据变更表中最后的自增主键与订阅表中记录的索引标识不同,查询数据变更表中最后的自增主键与订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水。上述替换模块,可以被配置成采用最后的自增主键替换订阅表中记录的索引标识。
在本实施例的一些可选的实现方式中,上述装置500还包括:定位单元(图中未示出),去除单元(图中未示出)。其中,上述定位单元,可以被配置成定位最后的自增主键至订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据。上述去除单元,可以被配置成去除无效数据。
在本实施例的一些可选的实现方式中,定位单元包括:排序模块(图中未示出),检测模块(图中未示出),确定模块(图中未示出)。其中,排序模块,可以被配置成将最后的自增主键至订阅表中记录的索引标识之间的所有自增主键降序排列,得到所有订阅字段对应数据的数据变更流水段。检测模块,可以被配置成检测数据变更流水段中是否有相同的值。确定模块,可以被配置成响应于确定数据变更流水段中有相同的值,则确定两个相同值之间的所有的数据为无效数据。
本申请的实施例提供的数据同步处理方法,首先,生成单元501确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;其次,复制单元502针对每个源数据库,响应于接收到该源数据库的数据库日志,将数据库日志的数据复制进该源数据库对应的数据结构表中;最后,记录单元503基于各个源数据库对应的数据结构表中数据的变更,在预设的数据库变更表中记录各数据结构表的数据变更流水。由此,可以对多种不同数据库来源的数据进行增量同步存储,自动记录增量同步过程中变更数据的数据变更流水,提高了数据变更记录的灵活性,节省了数据存储空间,提高了数据存储效率。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如数据同步处理方法。例如,在一些实施例中,数据同步处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的数据同步处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据同步处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (15)
1.一种数据同步处理方法,所述方法包括:
确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;
针对每个源数据库,响应于接收到该源数据库的数据库日志,将所述数据库日志的数据复制进该源数据库对应的数据结构表中;
基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
2.根据权利要求1所述的方法,其中,在预设的数据变更表中记录各数据结构表的数据变更流水,包括:
在所述数据变更表中实时记录各个源数据库对应的数据结构表中至少一个表字段对应数据的数据变更流水。
3.根据权利要求1或2所述的方法,所述方法还包括:
获取包括订阅方的至少一个订阅字段的订阅表;
基于所述订阅表,查询所述数据变更表中所有订阅字段对应数据的数据变更流水;
将查询到的所有订阅字段对应数据的数据变更流水推送给所述订阅方。
4.根据权利要求3所述的方法,其中,所述订阅表包括索引标识,所述数据变更表包括自增主键;
所述基于所述订阅表,查询所述数据变更表中所有订阅字段对应数据的数据变更流水,包括:
响应于确定所述数据变更表中最后的自增主键与所述订阅表中记录的索引标识不同,查询所述数据变更表中最后的自增主键与所述订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水;
采用最后的自增主键替换所述订阅表中记录的索引标识。
5.根据权利要求4所述的方法,所述方法还包括:
定位所述最后的自增主键至所述订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据,并去除所述无效数据。
6.根据权利要求5所述的方法,其中,所述定位所述最后的自增主键至所述订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据,包括:
将所述最后的自增主键至所述订阅表中记录的索引标识之间的所有自增主键降序排列,得到所有订阅字段对应数据的数据变更流水段;
检测所述数据变更流水段中是否有相同的值;
响应于确定所述数据变更流水段中有相同的值,则确定两个相同值之间的所有的数据为无效数据。
7.一种数据同步处理装置,所述装置包括:
生成单元,被配置成确定至少一个源数据库的数据存储结构,生成与各个存储结构对应的数据结构表;
复制单元,被配置成针对每个源数据库,响应于接收到该源数据库的数据库日志,将所述数据库日志的数据复制进该源数据库对应的数据结构表中;
记录单元,被配置成基于各个源数据库对应的数据结构表中数据的变更,在预设的数据变更表中记录各数据结构表的数据变更流水。
8.根据权利要求7所述的装置,其中,所述记录单元,进一步被配置成在所述数据变更表中实时记录各个源数据库对应的数据结构表中至少一个表字段对应数据的数据变更流水。
9.根据权利要求7或8所述的装置,所述装置还包括:
获取单元,被配置成获取包括订阅方的至少一个订阅字段的订阅表;
查询单元,被配置成基于所述订阅表,查询所述数据变更表中所有订阅字段对应数据的数据变更流水;
推送单元,被配置成将查询到的所有订阅字段对应数据的数据变更流水推送给所述订阅方。
10.根据权利要求9所述的装置,其中,所述订阅表包括索引标识,所述数据变更表包括自增主键;所述查询单元包括:
查询模块,被配置成响应于确定所述数据变更表中最后的自增主键与所述订阅表中记录的索引标识不同,查询所述数据变更表中最后的自增主键与所述订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水;
替换模块,被配置成采用最后的自增主键替换所述订阅表中记录的索引标识。
11.根据权利要求10所述的装置,所述装置还包括:
定位单元,被配置成定位所述最后的自增主键至所述订阅表中记录的索引标识之间所有订阅字段对应数据的数据变更流水中的无效数据;
去除单元,被配置成去除所述无效数据。
12.根据权利要求11所述的装置,其中,所述定位单元包括:
排序模块,被配置成将所述最后的自增主键至所述订阅表中记录的索引标识之间的所有自增主键降序排列,得到所有订阅字段对应数据的数据变更流水段;
检测模块,被配置成检测所述数据变更流水段中是否有相同的值;
确定模块,被配置成响应于确定所述数据变更流水段中有相同的值,则确定两个相同值之间的所有的数据为无效数据。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110137823.9A CN112783980B (zh) | 2021-02-01 | 2021-02-01 | 数据同步处理方法、装置、电子设备以及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110137823.9A CN112783980B (zh) | 2021-02-01 | 2021-02-01 | 数据同步处理方法、装置、电子设备以及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783980A true CN112783980A (zh) | 2021-05-11 |
CN112783980B CN112783980B (zh) | 2024-05-10 |
Family
ID=75760360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110137823.9A Active CN112783980B (zh) | 2021-02-01 | 2021-02-01 | 数据同步处理方法、装置、电子设备以及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783980B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360809A (zh) * | 2021-06-30 | 2021-09-07 | 平安普惠企业管理有限公司 | 页面数据更新方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609479A (zh) * | 2012-01-20 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN108647237A (zh) * | 2018-03-30 | 2018-10-12 | 厦门海迈科技股份有限公司 | 异构关系型数据库间的数据同步方法 |
CN110209735A (zh) * | 2019-05-05 | 2019-09-06 | 深圳市腾讯计算机***有限公司 | 数据库备份方法、数据库备份装置、计算设备和存储介质 |
US20200364185A1 (en) * | 2019-05-15 | 2020-11-19 | International Business Machines Corporation | Method for data replication in a data analysis system |
-
2021
- 2021-02-01 CN CN202110137823.9A patent/CN112783980B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609479A (zh) * | 2012-01-20 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
CN108399256A (zh) * | 2018-03-06 | 2018-08-14 | 北京慧萌信安软件技术有限公司 | 异构数据库内容同步方法、装置及中间件 |
CN108647237A (zh) * | 2018-03-30 | 2018-10-12 | 厦门海迈科技股份有限公司 | 异构关系型数据库间的数据同步方法 |
CN110209735A (zh) * | 2019-05-05 | 2019-09-06 | 深圳市腾讯计算机***有限公司 | 数据库备份方法、数据库备份装置、计算设备和存储介质 |
US20200364185A1 (en) * | 2019-05-15 | 2020-11-19 | International Business Machines Corporation | Method for data replication in a data analysis system |
Non-Patent Citations (1)
Title |
---|
庞秋奔;李银;: "基于Web Service多源异构***增量同步的实现", 计算机应用与软件, no. 05, 12 May 2018 (2018-05-12) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360809A (zh) * | 2021-06-30 | 2021-09-07 | 平安普惠企业管理有限公司 | 页面数据更新方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112783980B (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841897B (zh) | 一种实现增量数据抽取的方法、装置及*** | |
CN111400408A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN107977396B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN107729399B (zh) | 数据处理的方法和装置 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN106933836B (zh) | 一种基于分表的数据存储方法和*** | |
CN110837520A (zh) | 一种数据处理方法、平台及*** | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN110222039B (zh) | 数据存储及垃圾数据清理方法、装置、设备及存储介质 | |
CN105808653A (zh) | 一种基于用户标签***的数据处理方法及装置 | |
US11442930B2 (en) | Method, apparatus, device and storage medium for data aggregation | |
CN114461644A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
CN107357794B (zh) | 优化键值数据库的数据存储结构的方法和装置 | |
CN111435406A (zh) | 一种纠正数据库语句拼写错误的方法和装置 | |
CN112783980B (zh) | 数据同步处理方法、装置、电子设备以及计算机可读介质 | |
CN104462342A (zh) | 数据库快照同步处理方法及装置 | |
CN111753019A (zh) | 一种应用于数据仓库的数据分区方法和装置 | |
CN111694801A (zh) | 一种应用于故障恢复的数据去重方法和装置 | |
CN115525721A (zh) | 一种数据同步方法、装置、设备以及存储介质 | |
CN115563310A (zh) | 一种关键业务节点的确定方法、装置、设备及介质 | |
CN111723089A (zh) | 一种基于列式存储格式处理数据的方法和装置 | |
CN111984723A (zh) | 数据同步方法、装置及终端设备 | |
CN115525659A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114968950A (zh) | 任务的处理方法、装置、电子设备和介质 | |
CN111190912B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |