CN114691651A - 事件处理方法、装置、设备以及存储介质 - Google Patents
事件处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114691651A CN114691651A CN202210398903.4A CN202210398903A CN114691651A CN 114691651 A CN114691651 A CN 114691651A CN 202210398903 A CN202210398903 A CN 202210398903A CN 114691651 A CN114691651 A CN 114691651A
- Authority
- CN
- China
- Prior art keywords
- event
- upstream
- database
- target
- data
- 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 18
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 283
- 230000004044 response Effects 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 11
- 230000005012 migration Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种事件处理方法、装置、设备以及存储介质。该方法包括:获取上游数据库中目标上游分表进行数据更新时的数据更新事件;响应于目标上游分表未处于预设状态且未针对下游数据库执行数据更新事件,确定数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;响应于数据更新事件包括DML事件,针对下游数据库执行数据更新事件;响应于数据更新事件包括DDL事件,确定目标上游分表进行数据更新前的目标表结构与上游数据库中其他上游分表的表结构的兼容状态,基于兼容状态对数据更新事件进行处理。采用本申请实施例,可灵活对上游数据库中上游分表对应的数据更新事件进行处理,适用性高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种事件处理方法、装置、设备以及存储介质。
背景技术
数据迁移是指将存储在上游数据库中的数据迁移到下游数据库的过程。数据库中的数据迁移往往包括在某一时刻进行全量数据迁移,以及在该时刻之后进行的增量数据迁移。其中,在全量数据迁移过程中会将上游数据库中的分表数据写入下游数据库中的合表中。
在进行全量数据迁移后会将上游数据库进行数据更新时对应的数据定义语言(Data Definition Language,DDL)和数据操控语言(Data Manipulation Language,DML)同步到下游数据库,如将上游数据库中增量数据对应的DDL和DML同步到下游数据库。
但是由于上游数据库中各上游分表对应的DDL事件的具体事件内容和执行顺序可能并不相同,若按照各上游分表对应的DDL事件的执行时间顺序将其同步至下游数据库,则可能会导致下游数据库中的数据合表的表结构发生变化而影响数据同步。
发明内容
本申请实施例提供一种事件处理方法、装置、设备以及存储介质,可灵活对上游数据库中上游分表对应的数据更新事件进行处理,适用性高。
第一方面,本申请实施例提供一种事件处理方法,该方法包括:
获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
响应于上述目标上游分表未处于预设状态且未针对下游数据库执行上述数据更新事件,确定上述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
响应于上述数据更新事件包括上述DML事件,针对上述下游数据库执行上述数据更新事件;
响应于上述数据更新事件包括上述DDL事件,确定上述目标上游分表进行数据更新前的目标表结构与上述上游数据库中其他上游分表的表结构的兼容状态,基于上述兼容状态对上述数据更新事件进行处理。
第二方面,本申请实施例提供了一种事件处理装置,该装置包括:
事件获取模块,用于获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
事件确定模块,用于响应于上述目标上游分表未处于预设状态且未针对下游数据库执行上述数据更新事件,确定上述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
事件处理模块,用于响应于上述数据更新事件包括上述DML事件,针对上述下游数据库执行上述数据更新事件;
上述事件处理模块,用于响应于上述数据更新事件包括上述DDL事件,确定上述目标上游分表进行数据更新前的目标表结构与上述上游数据库中其他上游分表的表结构的兼容状态,基于上述兼容状态对上述数据更新事件进行处理。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行本申请实施例提供的事件处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例提供的事件处理方法。
在全量数据迁移后将对上游数据库的上游分表进行数据更新时对应的数据更新事件同步到下游数据库的场景下,基于本申请实施例提供的事件处理方法,可根据数据更新事件的执行情况以及上游数据库中各数据表的表结构兼容状态,灵活调整数据更新事件的处理方式,在实现上游数据库和下游数据库的数据同步的同时,降低数据同步时延,适用性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的事件处理方法的流程示意图;
图2是本申请实施例提供的基于协调器和执行器进行事件处理的流程示意图;
图3是本申请实施例提供的事件处理装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的事件处理方法可应用于对上游数据库的全量数据迁移至下游数据库之后将上游数据库的各上游分表所进行的数据更新事件同步至下游数据库的过程中,以对上述数据更新事件进行处理。
其中,在全量数据迁移过程中会将上游数据库中的分表数据写入下游数据库中的合表中。
本申请实施例中的数据更新事件包括DDL事件或DML事件。
其中,DDL用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,如数据表、视图等等,DDL对这些对象和属性的管理和定义具体方式可体现在Create、Drop和Alter等操作上。以数据表举例:Create可以创建数据表,Alter可以更改该数据表的字段,Drop可以删除这个数据表。
DML用于操作数据库对象中包含的数据,也就是说操作的单位是记录。例如通过DML可将数据表中插入一条记录、删除数据表中的一条或多条记录或者修改已存在表中的记录的内容。
参见图1,图1是本申请实施例提供的事件处理方法的流程示意图。如图1所示,本申请实施例提供的事件处理方法可包括如下步骤:
步骤S11、获取上游数据库中目标上游分表进行数据更新时的数据更新事件。
其中,目标上游分表为上游数据库中任一上游分表,且上游数据库可以为一个数据库,也可为多个数据库,在此不做限制。
其中,数据更新事件可以为binlog事件,也可以为其他用于表征上游数据库在数据更新过程中的DDL事件或DML事件的其他相关数据、日志等,在此不做限制。
其中,在数据更新事件为binlog事件的情况下,上游数据库需支持binlog协议。
其中,binlog事件是指binary log,即二进制日志,上游数据库在进行数据更新时会将执行的DDL或DML转为二进制日志形式保存,用于后续数据复制或恢复。本申请实施例中的数据更新事件(如binlog事件)可以是二进制日志中每一上游分表对应的单条DDL事件或一个完整DML事件。
步骤S12、响应于目标上游分表未处于预设状态且未针对下游数据库执行数据更新事件,确定数据更新事件包括的DDL事件或DML事件。
在一些可行的实施方式中,在获取到上游数据库目标上游分表(即任一上游分表)在进行数据更新时的数据更新事件之后,可确定目标上游分表是否处于预设状态且是否针对下游数据库执行该数据更新事件。
其中,目标上游分表处于预设状态时表示目标上游分表进行数据更新前的表结构(为方便描述,以下称为目标表结构)与上游数据库中其他任意一个上游分表的表结构不兼容(冲突)、且上游数据库中其他至少一个上游分表未进行相同的数据更新操作;反之,则该目标上游分表未处于预设状态。
也即对于上游数据库中的目标上游分表,若该目标上游分表进行数据更新前的目标表结构与上游数据库中其他至少一个上游分表的表结构不兼容、且上游数据库中存在至少一个上游分表未接收到相同的数据更新事件,则将该目标上游分表标记为预设状态;反之,则该目标上游分表未处于预设状态。
具体地,在目标上游分表未处于预设状态且未针对下游数据库执行该数据更新事件的情况下,可确定目标上游分表对应的数据更新事件包括的DDL事件或DML事件,即确定目标上游分表对应的数据更新事件为DDL事件或DML事件,进而在目标上游分表对应的数据更新事件的具体事件内容采取不同的事件处理方式。
可选地,在目标上游分表处于预设状态的情况下,即在目标上游分表进行数据更新前的目标表结构与上游数据库中其他至少一个上游分表的表结构不兼容、且上游数据库中存在至少一个上游分表未接收到相同的数据更新事件的情况下,跳过目标上游分表对应的数据更新事件,即不执行目标上游分表对应的DDL事件或者DML事件。
可选地,在目标上游分表处于预设状态的情况下,即在目标上游分表进行数据更新前的目标表结构与上游数据库中其他至少一个上游分表的表结构不兼容、且上游数据库中存在至少一个上游分表未接收到相同的数据更新事件的情况下,若在此之前已针对下游数据库执行过相同的数据更新事件,则同样可跳过目标上游分表对应的数据更新事件,无需再次执行。
步骤S13、响应于所述数据更新事件包括DML事件,针对下游数据库执行数据更新事件。
在一些可行的实施方式中,在目标上游分表未处于预设状态且未针对下游数据库执行该数据更新事件的情况下,若目标上游分表对应的数据更新事件为DML事件,则可直接针对下游数据库执行DML事件。
在目标上游分表未处于预设状态且未针对下游数据库执行该数据更新事件的情况下,若目标上游分表对应的数据更新事件为DML事件,此时可基于DML事件针对目标上游分表在下游数据库中对应的数据合表进行相同的数据操作。
步骤S14、响应于数据更新事件包括DDL事件,确定目标上游分表进行数据更新前的目标表结构与上游数据库中其他上游分表的表结构的兼容状态,基于兼容状态对数据更新事件进行处理。
在一些可行的实施方式中,在目标上游分表未处于预设状态且未针对下游数据库执行该数据更新事件的情况下,若目标上游分表对应的数据更新事件为DDL事件,可基于目标上游分表在进行数据更新前的目标表结构与上游数据库中其他上游分表的表结构的兼容状态来对数据更新事件(即DDL事件)进行处理。
具体地,在目标上游分表对应的目标表结构与上游数据库中其他上游分表的表结构均兼容的情况下,可进一步确定目标表结构与上游数据库中其他上游分表的表结构的表结构并集(为方便描述,以下称为第一表结构并集)、以及目标上游分表在进行数据更新后的表结构与上游数据库中其他上游分表的表结构的表结构并集(为方便描述,以下称为第二表结构并集)。
其中,目标上游分表在进行数据更新前的表结构与上游数据库中其他上游分表的第一表结构并集还可视为当前目标上游分表在下游数据库中对应的数据合表的表结构。
进一步地,在确定出目标上游分表对应的第一表结构并集和第二表结构并集之后,可确定第一表结构并集和第二表结构并集是否相同。若第一表结构并集和第二表结构并集不相同,即上游数据库中目标上游分表和其他上游分表的表结构并集随着目标上游分表的数据更新而发生变化,则针对下游数据库执行数据更新事件,即基于DDL事件对目标上游分表在下游数据中对应的数据合表进行相同的操作,如更改数据表的字段或对某一列进行重命名等操作。
若第一表结构并集和第二表结构并集相同,即上游数据库中目标上游分表和其他上游分表的表结构并集并未随着目标上游分表的数据更新而发生变化,则可跳过该数据更新事件,也即不针对下游数据库执行对应的DDL事件。
可选地,在目标上游分表对应的目标表结构与上游数据库中其他至少一个上游分表的表结构不兼容的情况下,确定上游数据库中其他上游分表是否进行过相同的数据更新操作,即确定上游数据库中其他上游分表是否接收到相同的数据更新事件(DDL事件)。
若上游数据库中存在至少一个上游分表未进行过相同的数据更新操作,也即上游数据库中存在至少一个上游分表未接收到相同的数据更新事件(DDL事件),则将目标上游分表标记为预设状态,并跳过该数据更新事件(DDL事件)。
若上述数据库中所有上游分表已进行过相同的数据更新操作,也即上游数据库中各上游分表均接收到相同的数据更新事件(DDL事件),则可针对下游数据库执行该数据更新操作,即基于DDL事件对目标上游分表在下游数据中对应的数据合表进行相同的操作,如更改数据表的字段或对某一列进行重命名等操作。
其中,对于某一DDL事件(为方便描述,以下称为目标DDL事件),在第一次从上游数据库获取到目标DDL事件时,若该DDL事件对应的上游分表在执行目标DDL事件前的表结构与上游数据库中其他至少一个上游分表的表结构不兼容,则将该上游分表标记为预设状态。若在此之后再次接收到目标DDL事件,且此次DDL事件对应的上游分表执行目标DDL事件后的表结构与上游数据库中其他至少一个上游分表的表结构不兼容,同时上游数据库中仍然存在未执行目标DDL事件的上游分表,则仍将此次目标DDL事件对应的上游分表标记为预设状态。以此类推,直至上游数据库中所有上游分表均执行目标DDL事件,则可针对下游数据库中对应的数据合表执行该DDL事件。
其中,由于数据更新事件(如binlog事件)通常会依据事件提交先后顺序写入更新日志文件(如binlog文件),即在获取上游数据库任一上游分表对应的数据更新事件时的获取顺序与数据更新事件的提交顺序相对应,因此在将同一DDL事件对应的上游分表标记为预设状态时,可确定该DDL的提交顺序,也即确定该DDL事件在更新日志文件(如binlog文件中)的具体位置。待上游数据库中的各上游分表均接收到或已执行该DDL事件后,可清除此前针对该DDL事件对应的各上游分表的预设状态,并确定该DDL事件在binlog文本中的具体位置,从而进一步针对下游数据库中的数据合表执行该DDL以及该位置之后的DML事件。
本申请实施例提供的事件处理方法可以由独立的逻辑组件执行,也可以由协调器与执行器两个逻辑组件执行。
其中,一个上游数据库可对应一个执行器,下游数据库中的一个数据合表可对应至少一个执行器以及一个协调器。
基于执行器与协调器执行本申请实施例提供的事件处理方法的具体过程可参见图2,图2是本申请实施例提供的基于协调器和执行器进行事件处理的流程示意图。如图2所示
步骤1、执行器启动后,查询当前是否上游数据库中各上游分表均接收到过执行过同一DDL事件。
步骤2、若上游数据库中各上游分表均接收到过执行过同一DDL事件,则清除该DDL事件对应的各上游分表的冲突状态(即预设状态),并从协调器第一次接收到该DDL事件开始针对下游数据库对应的数据合表执行及该DDL事件以及之后的DML事件。
步骤3、若上游数据库中各上游分表均接收到过且执行过同一DDL事件,则从上游数据库获取新的binlog事件(数据更新事件)。
步骤4、执行器获取到binlog事件后,确定该binlog事件对应的上游分表是否处于冲突状态。
步骤5、若该binlog事件对应的上游分表处于冲突状态,则跳过该binlog事件,并重新执行步骤1。
步骤6、获取其他binlog事件。若该binlog事件对应的上游分表不处于冲突状态,则确定是否针对下游数据库执行过该binlog事件。若已针对下游数据库执行过该binlog事件,则跳过该binlog事件并重新执行步骤1。
步骤7、若未针对下游数据库执行过该binlog事件,则需判断该binlog事件为DDL事件还是DML事件。若该binlog事件为DML事件,则执行步骤8,若该binlog事件为DDL事件,则执行步骤9。
步骤8、执行该binlog事件到下游,即针对下游数据库执行该binlog事件。
步骤9、收到DDL事件后,将DDL事件发送到协调器,并将对应的上游分表执行DDL事件后的表结构发送到协调器。
步骤10、协调器判断该上游分表执行DDL事件后的表结构是否与上游数据库中其他上游分表的表结构冲突,若冲突则执行步骤11,若不冲突,则执行步骤12。
步骤11、协调器判断上游数据库所有上游分表收到该DDL事件。若上游数据库所有上游分表收到该DDL事件,则通知执行器执行步骤2。若上游数据库存在至少一个上游分表未收到该DDL事件,则通过执行器跳过该DDL事件,并将该上游分表标记为冲突状态。
步骤12、确定该上游分表执行该DDL事件后的表结构与上游数据库中其他上游分表的表结构的表结构并集相较于该上游分表执行该DDL事件前的表结构与上游数据库中其他上游分表的表结构的表结构并集是否发生变化。如果发生变化,则通知执行器针对下游数据库执行该DDL。若未发生变化,则通知执行器跳过该DDL事件。
在全量数据迁移后将上游数据库进行数据更新时对应的DDL事件和DML事件同步到下游数据库的场景下,基于本申请实施例提供的事件处理方法,可允许上游数据库中各上游分表的表结构不同以及各上游分表对应的DDL事件的执行顺序不同的情况下,实现上游数据库和下游数据库的数据同步,避免为协调各种DDL的同步顺序导致的同步中断的问题,降低数据同步时延,适用性高。
参见图3,图3是本申请实施例提供的事件处理装置的结构示意图。本申请实施例提供的事件处理装置包括:
事件获取模块31,用于获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
事件确定模块32,用于响应于上述目标上游分表未处于预设状态且未针对下游数据库执行上述数据更新事件,确定上述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
事件处理模块33,用于响应于上述数据更新事件包括上述DML事件,针对上述下游数据库执行上述数据更新事件;
上述事件处理模块33,用于响应于上述数据更新事件包括上述DDL事件,确定上述目标上游分表进行数据更新前的目标表结构与上述上游数据库中其他上游分表的表结构的兼容状态,基于上述兼容状态对上述数据更新事件进行处理。
在一些可行的实施方式中,上述事件处理模块33,用于:
响应于上述目标表结构与上述上游数据库中其他上游分表的表结构均兼容,确定上述目标表结构与上述上游数据库中其他上游分表的表结构的第一表结构并集、以及上述目标上游分表在进行数据更新后的表结构与上述上游数据库中其他上游分表的表结构的第二表结构并集;
基于上述第一表结构并集和上述第二表结构并集,对上述数据更新事件进行处理。
在一些可行的实施方式中,上述事件处理模块33,用于:
响应于上述第一表结构并集和上述第二表结构并集相同,跳过上述数据更新事件;
响应于上述第一表结构并集和上述第二表结构并集不同,针对上述下游数据库执行上述数据更新事件。
在一些可行的实施方式中,上述事件处理模块33,还用于:
响应于上述目标表结构与上述上游数据库中其他至少一个上游分表的表结构不兼容,且上述上游数据库中存在至少一个上游分表未进行上述数据更新事件对应的数据更新操作,跳过上述数据更新事件,并将上述目标上游分表标记为上述预设状态。
在一些可行的实施方式中,上述事件处理模块33,还用于:
响应于上述目标表结构与上述上游数据库中其他至少一个上游分表的表结构不兼容,且上述上游数据库中所有上游分表已进行上述数据更新事件对应的数据更新操作,清除上述目标上游分表被标记的上述预设状态,并针对上述下游数据库执行上述数据更新事件。
在一些可行的实施方式中,上述事件处理模块33,还用于:
响应于上述目标上游分表处于上述预设状态,跳过上述数据更新事件。
在一些可行的实施方式中,上述事件处理模块33,还用于:
响应于上述目标上游分表未处于上述预设状态,且在接收到上述目标上游分表对应的上述数据更新事件之前已针对上述下游数据库执行上述上游数据库中其他任一上游分表对应的上述数据更新事件,跳过上述数据更新事件。
具体实现中,上述事件处理装置可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图4,图4是本申请实施例提供的电子设备的结构示意图。如图4所示,本实施例中的电子设备400可以包括:处理器401,网络接口404和存储器405,此外,上述电子设备400还可以包括:用户接口403,和至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,用户接口403可以包括显示屏(Display)、键盘(Keyboard),可选用户接口403还可以包括标准的有线接口、无线接口。网络接口404可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器404可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。存储器405可选的还可以是至少一个位于远离前述处理器401的存储装置。如图4所示,作为一种计算机可读存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图4所示的电子设备400中,网络接口404可提供网络通讯功能;而用户接口403主要用于为用户提供输入的接口;而处理器401可以用于调用存储器405中存储的设备控制应用程序,以实现:
获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
响应于上述目标上游分表未处于预设状态且未针对下游数据库执行上述数据更新事件,确定上述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
响应于上述数据更新事件包括上述DML事件,针对上述下游数据库执行上述数据更新事件;
响应于上述数据更新事件包括上述DDL事件,确定上述目标上游分表进行数据更新前的目标表结构与上述上游数据库中其他上游分表的表结构的兼容状态,基于上述兼容状态对上述数据更新事件进行处理。
在一些可行的实施方式中,上述处理器401用于:
响应于上述目标表结构与上述上游数据库中其他上游分表的表结构均兼容,确定上述目标表结构与上述上游数据库中其他上游分表的表结构的第一表结构并集、以及上述目标上游分表在进行数据更新后的表结构与上述上游数据库中其他上游分表的表结构的第二表结构并集;
基于上述第一表结构并集和上述第二表结构并集,对上述数据更新事件进行处理。
在一些可行的实施方式中,上述处理器401用于:
响应于上述第一表结构并集和上述第二表结构并集相同,跳过上述数据更新事件;
响应于上述第一表结构并集和上述第二表结构并集不同,针对上述下游数据库执行上述数据更新事件。
在一些可行的实施方式中,上述处理器401还用于:
响应于上述目标表结构与上述上游数据库中其他至少一个上游分表的表结构不兼容,且上述上游数据库中存在至少一个上游分表未进行上述数据更新事件对应的数据更新操作,跳过上述数据更新事件,并将上述目标上游分表标记为上述预设状态。
在一些可行的实施方式中,上述处理器401还用于:
响应于上述目标表结构与上述上游数据库中其他至少一个上游分表的表结构不兼容,且上述上游数据库中所有上游分表已进行上述数据更新事件对应的数据更新操作,清除上述目标上游分表被标记的上述预设状态,并针对上述下游数据库执行上述数据更新事件。
在一些可行的实施方式中,上述处理器401还用于:
响应于上述目标上游分表处于上述预设状态,跳过上述数据更新事件。
在一些可行的实施方式中,上述处理器401还用于:
响应于上述目标上游分表未处于上述预设状态,且在接收到上述目标上游分表对应的上述数据更新事件之前已针对上述下游数据库执行上述上游数据库中其他任一上游分表对应的上述数据更新事件,跳过上述数据更新事件。
应当理解,在一些可行的实施方式中,上述处理器401可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备400可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图1中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的事件处理装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart mediacard,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行图1中各个步骤所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种事件处理方法,其特征在于,所述方法包括:
获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
响应于所述目标上游分表未处于预设状态且未针对下游数据库执行所述数据更新事件,确定所述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
响应于所述数据更新事件包括所述DML事件,针对所述下游数据库执行所述数据更新事件;
响应于所述数据更新事件包括所述DDL事件,确定所述目标上游分表进行数据更新前的目标表结构与所述上游数据库中其他上游分表的表结构的兼容状态,基于所述兼容状态对所述数据更新事件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述兼容状态对所述数据更新事件进行处理,包括:
响应于所述目标表结构与所述上游数据库中其他上游分表的表结构均兼容,确定所述目标表结构与所述上游数据库中其他上游分表的表结构的第一表结构并集、以及所述目标上游分表在进行数据更新后的表结构与所述上游数据库中其他上游分表的表结构的第二表结构并集;
基于所述第一表结构并集和所述第二表结构并集,对所述数据更新事件进行处理。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一表结构并集和所述第二表结构并集,对所述数据更新事件进行处理,包括:
响应于所述第一表结构并集和所述第二表结构并集相同,跳过所述数据更新事件;
响应于所述第一表结构并集和所述第二表结构并集不同,针对所述下游数据库执行所述数据更新事件。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述目标表结构与所述上游数据库中其他至少一个上游分表的表结构不兼容,且所述上游数据库中存在至少一个上游分表未进行所述数据更新事件对应的数据更新操作,跳过所述数据更新事件,并将所述目标上游分表标记为所述预设状态。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述目标表结构与所述上游数据库中其他至少一个上游分表的表结构不兼容,且所述上游数据库中所有上游分表已进行所述数据更新事件对应的数据更新操作,清除所述目标上游分表被标记的所述预设状态,并针对所述下游数据库执行所述数据更新事件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述目标上游分表处于所述预设状态,跳过所述数据更新事件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述目标上游分表未处于所述预设状态,且在接收到所述目标上游分表对应的所述数据更新事件之前已针对所述下游数据库执行所述上游数据库中其他任一上游分表对应的所述数据更新事件,跳过所述数据更新事件。
8.一种事件处理装置,其特征在于,所述装置包括:
事件获取模块,用于获取上游数据库中目标上游分表进行数据更新时的数据更新事件;
事件确定模块,用于响应于所述目标上游分表未处于预设状态且未针对下游数据库执行所述数据更新事件,确定所述数据更新事件包括的数据定义语言DDL事件或数据操控语言DML事件;
事件处理模块,用于响应于所述数据更新事件包括所述DML事件,针对所述下游数据库执行所述数据更新事件;
所述事件处理模块,用于响应于所述数据更新事件包括所述DDL事件,确定所述目标上游分表进行数据更新前的目标表结构与所述上游数据库中其他上游分表的表结构的兼容状态,基于所述兼容状态对所述数据更新事件进行处理。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210398903.4A CN114691651A (zh) | 2022-04-15 | 2022-04-15 | 事件处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210398903.4A CN114691651A (zh) | 2022-04-15 | 2022-04-15 | 事件处理方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691651A true CN114691651A (zh) | 2022-07-01 |
Family
ID=82142819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210398903.4A Pending CN114691651A (zh) | 2022-04-15 | 2022-04-15 | 事件处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691651A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541454A (zh) * | 2023-07-06 | 2023-08-04 | 浙江海亮科技有限公司 | 事件配置方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100114817A1 (en) * | 2008-10-30 | 2010-05-06 | Broeder Sean L | Replication of operations on objects distributed in a storage system |
US20190155795A1 (en) * | 2016-10-24 | 2019-05-23 | Tencent Technology (Shenzhen) Company Limited | Distributed database system, transaction processing method, lock server and storage medium |
CN113297317A (zh) * | 2020-06-28 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据表同步方法、装置、电子设备和存储介质 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
-
2022
- 2022-04-15 CN CN202210398903.4A patent/CN114691651A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100114817A1 (en) * | 2008-10-30 | 2010-05-06 | Broeder Sean L | Replication of operations on objects distributed in a storage system |
US20190155795A1 (en) * | 2016-10-24 | 2019-05-23 | Tencent Technology (Shenzhen) Company Limited | Distributed database system, transaction processing method, lock server and storage medium |
CN113297317A (zh) * | 2020-06-28 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据表同步方法、装置、电子设备和存储介质 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
田原: "DM 分库分表 DDL "悲观协调" 模式介绍丨 TiDB 工具", Retrieved from the Internet <URL:https://cn.pingcap.com/blog/introduction-to-the-dm-ddl-pessimistic-coordination-model/> * |
郭铭浩: "DM 分库分表 DDL "乐观协调"模式介绍丨 TiDB 工具", Retrieved from the Internet <URL:https://cn.pingcap.com/blog/introduction-to-the-dm-ddl-optimistic-coordination-model/#%E5%89%8D%E8%A8%80> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541454A (zh) * | 2023-07-06 | 2023-08-04 | 浙江海亮科技有限公司 | 事件配置方法、装置、计算机设备和存储介质 |
CN116541454B (zh) * | 2023-07-06 | 2023-10-20 | 浙江海亮科技有限公司 | 事件配置方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074177B (zh) | 数据对账方法、系统和计算机可读存储介质 | |
US11921749B2 (en) | Synchronization adapter for synchronizing application data | |
CN109804361B (zh) | 计算系统中的文件同步 | |
US20030233363A1 (en) | Combined image views and method of creating images | |
US20240402977A1 (en) | Desktop sharing method and mobile terminal | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
JP2017519305A (ja) | リモートデータベースについてのミューテーションの処理 | |
CN112559913B (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN106599167A (zh) | 一种支持增量升级数据库的系统和方法 | |
CN114691651A (zh) | 事件处理方法、装置、设备以及存储介质 | |
CN110659281B (zh) | 基于Hive的数据处理方法、装置、计算机设备及存储介质 | |
CN106936979A (zh) | 撤销操作的方法和设备 | |
CN114610366A (zh) | 一种差分包升级方法、系统、智能电子设备和存储介质 | |
US8024380B2 (en) | Improving data access speed while processing transaction requests from web based applications | |
CN115113989B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
TWI816875B (zh) | 資料同步查詢方法、裝置、電腦裝置及存儲介質 | |
CN111352984B (zh) | 数据分发方法、设备和存储介质 | |
JP6196848B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP6178119B2 (ja) | データ移行システム、及びデータ移行方法 | |
CN111523294A (zh) | 基于pdf文件的批注分离的处理方法及装置 | |
CN107229746B (zh) | 终端及多派生项目的数据处理方法和存储介质 | |
CN106303668B (zh) | 一种多媒体播放信息的处理方法、装置及终端 | |
CN117251898B (zh) | 基于云存储的Revit链接方法及系统 | |
JP2013142971A (ja) | プログラム処理装置およびプログラム処理方法 | |
CN107729013B (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 |