CN116561138A - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN116561138A CN116561138A CN202210109020.7A CN202210109020A CN116561138A CN 116561138 A CN116561138 A CN 116561138A CN 202210109020 A CN202210109020 A CN 202210109020A CN 116561138 A CN116561138 A CN 116561138A
- Authority
- CN
- China
- Prior art keywords
- event
- ddl
- target
- information
- transaction change
- 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 abstract description 15
- 230000008859 change Effects 0.000 claims abstract description 195
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 208000024780 Urticaria Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/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/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/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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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变更的执行进度,以及简化汇总各个数据库分库中的业务数据的流程。本方案包括:获取并解析多个数据库分库中目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
Description
技术领域
本申请涉及数据库分库技术领域,尤其涉及一种数据处理方法和装置。
背景技术
目前,为了实现数据库分库后的联机分析处理(On-Line AnalyticalProcessing,OLAP)的实时性和准确性,往往采用“中间件同步模式”将多个数据库分库实时汇聚到统一的数据仓库(也可称为HIVE)。具体是由同步中间件使用伪SLAVE协议从数据库服务端实时获取事务变更日志,再同步解析事务变更日志,并将事务变更日志转换为HIVE的SQL语句,从而实现将多个数据库分库中的数据实时汇聚到HIVE,达到实时分析数据的要求。
但一个应用总表的各个数据库分库除了业务数据操作语句(Data ManipulationLanguage,DML)变更以外还有数据定义语言(Data Definition Languages,DDL)变更,而且一个应用总表的一个DDL变更通常需要在该应用的所有数据库分库中执行。但由于一个应用总表的各个数据库分库上执行 DDL变更的时间不可能是在同一时间点统一执行,而且物理部署的多个数据库分库往往也做不到在同一时间点统一执行DDL变更。因而同步中间件获取的记录该应用的各个数据库分库的DDL变更信息的事务变更日志,在时间上也有先后顺序。
这就导致一个应用总表的各个数据库分库和HIVE在完成某次DDL变更的一定时间段内,该应用总表的各个数据库分库之间、以及各个数据库分库与 HIVE中的表格的结构是不一致的,即有些数据分库已执行完成DDL变更,而有些数据库分库还未执行DDL变更。因此,如何实时获取一个应用总表的各个数据库分库中的DDL变更的执行进度,并对这些数据库分库执行DDL变更的执行进度进行汇总,仍然需要提供进一步的解决方案。
发明内容
本申请实施例的目的是提供一种数据处理方法和装置,用以实时获取各个数据库分库中的DDL变更的执行进度。
第一方面,提供了一种数据处理方法,包括:
获取并解析多个数据库分库中目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;
若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
第二方面,提供了一种数据处理装置,包括:
日志获取模块,用于获取并解析多个数据库分库中目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;
事件槽位记录模块,用于若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
第三方面,提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面的数据处理方法的步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面的数据处理方法的步骤。
在本申请实施例中,通过获取并解析多个数据库分库中目标事务变更日志,该目标事务变更日志为目标事务变更日志的生成时刻与目标事务变更日志的当前获取时刻的差值最小的事务变更日志,即获取每个数据库分库中最新产生的事务变更日志为目标事务变更日志;若目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将目标事务变更日志中记录的DDL事件的内容,记录到DDL事件对应的目标事件槽位中。采用本发明实施例的方案,能够在目标应用的各个数据库分库每生成一个最新的记录有DDL事件的事务变更日志时,便把该事务变更日志中记录的DDL事件的内容记录到该DDL事件对应的目标事件槽位中。从该目标事件槽位中可直观地获取到各个数据库分库处理同一DDL事件的进度,即记录在目标事件槽位中的DDL事件的内容对应的数据库分库便完成了DDL事件的变更,而没有记录在目标事件槽位中记录相关信息的数据库分库则没有完成对应的DDL事件的变更。从而能够达到在一次 DDL事件变更的过程中,实时监控各数据库分库执行该DDL事件的进度信息。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的一个实施例提供的一种数据处理方法的流程示意图。
图2是本发明的一个实施例提供的数据处理方法的应用的一种实际场景的示例图。
图3是本发明的一个实施例提供的一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
随着关系型数据库中保存的应用数据的数据量的不断增大,很多公司应用的关系型数据库记录的数据量往往已经达到单库表能够记录的数据量的推荐值上限。在这种情况下,可采用水平或垂直分库的方式将应用数据分散存储到多个同类型的关系型数据库中,从而解决数据存储在单个数据库中导致的单个数据库的容量限制、客户端连接数有限和性能下降等问题。以关系型数据库为MYSQL数据库为例,应用可通过MYSQL数据库分库代理中间件或MYSQL 数据库分库DDL组件来将其应用数据分布存储到多个MYSQL数据库分库中。在本实施例中,对于关系型数据库中的其他数据库也是适用的,例如:Oracle。
然而,在一个应用的多个MYSQL数据库分库执行一次DDL变更时,则需要该应用的所有MYSQL数据库分库分别执行相应的变更操作。在此过程中,由于各个MYSQL数据库分库执行DDL变更的时间不同,就会导致汇总到应用的同步中间件的DDL变更记录有一定的时间先后顺序。而经由同步中间件汇总到应用HIVE中的DDL变更记录在时间上也有先后顺序,这就使得在一次DDL变更执行的一段时间段内,有些MYSQL数据库分库已执行DDL变更,而有些MYSQL数据库分库还未执行完成。因此,如何实时获取一个应用总表的各个数据库分库的DDL变更执行进度,并对这些数据库分库执行DDL变更的执行进度进行汇总,仍然亟待解决。
为了解决现有技术中存在的上述问题,本申请实施例提供一种数据处理方法。首先,介绍数据库分库、HIVE、DDL和DML的概念:
数据库分库:是一种数据分散保存方法,主要是利用数据记录的业务特性,将数据记录通过一定算法将数据分散存储到多个数据库中。
HIVE:一个底层封装了HADOOP并行计算任务的数据仓库,主要用在 HADOOP上处理结构化数据。HIVE提供类SQL语言实现数据查询,并将SQL 语句转换为并行计算任务运行在HADOOP上。
DDL:英文全称为Data Definition Languages,简称数据定义语言,主要是各种数据对象(库、表、列、索引等)的定义。
DML:英文全称为Data Manipulation Language,简称数据操作语句,主要是数据记录的添加、删除、更新和查询语句。
本申请实施例提供一种数据处理方法,应用于数据处理装置。如图1所示,本申请实施例提供的方案包括:
S110,获取并解析多个数据库分库中的目标事务变更日志,目标事务变更日志为各事务变更日志的生成时刻与目标事务变更日志的当前获取时刻的差值最小的事务变更日志。
其中,对于一个应用,此应用对应的一个数据库分库往往对应于一个目标事务变更日志,即每个数据库分库在每次进行目标应用的事务变更时通常都会生成一个目标事务变更日志。目标事务变更日志的当前获取时刻具体为获取多个数据库分库中的目标事务变更日志的时刻。在当前获取时刻获取的目标事务变更日志的数量为至少一个,也就是说,在该获取时刻,至少有一个数据库分库已经生成了目标事务变更日志。
需要说明的是,S110中所述的多个数据库分库可共同维护应用的一个总表,一个总表的数量级往往较大,因此可由多个数据库分库共同维护。即每个数据库分库维护总表的一部分表格数据,该总表每次在进行表格变更,比如增加列信息、变更列信息、删除列信息时,往往都需要这多个数据库分库共同修改完成。而各个数据库分库在每次修改操作时,都会将修改操作记录到各数据分库的事务变更日志中。
其中,一个数据库分库对应一个目标事务变更日志(英文名称为 BINLOG_EVENT,也可称为BINLOG事件)。即每个数据库分库在每次执行一次事务变更(比如DDL事件)时,都会生成一个事务变更日志。S110所述的目标事务变更日志为获取该目标事务变更日志时最新生成的一个事务变更日志,即事务变更日志的生成时刻与目标事务变更日志的当前获取时刻的差值最小的事务变更日志。
该目标事务变更日志用于记录数据库分库在执行数据库事务过程中的事务变更记录。每个事务变更日志可由事件头和事件体组成。其中,事务变更日志的事件头中可包括事件发生时间、事件类型和事件体长度。事件体中可包括事件内容,以事件类型为DDL事件为例,事件体中可包括DDL事件的内容,即新增列信息、修改表信息和/或删除列信息。
在实际应用中,为了便于确定事务变更日志的发生顺序,还可为事务变更日志分配一个用于指示数据库分库中事务变更日志的发生顺序号的同步位点。比如可设置同步位点为1、2、3……、n,其中,同步位点为1的事务变更日志 A为数据库分库a中第一个生成的事务变更日志,同步位点为2的事务变更日志B为数据库分库a中第二个生成的事务变更日志,该事务变更日志B在事务变更日志A之后生成,……,以此类推,同步位点越靠后的事务变更日志在时间上越新。
例如,在对应用的各个数据库分库的DDL事件的执行进度进行汇总时,可先获取应用的各个数据库分库中最后同步位点(即最新发生的BINLOG事件) 的事务变更日志,作为目标事务变更日志。
具体地,可读取最新收到应用的各个数据库分库的BINLOG事件字节流。应理解,数据传输过程中,传输数据的最基本的单位是字节的流,本说明书实施例中数据库分库与同步中间件之间的数据传输往往是二进制的形式,该 BINLOG事件的具体表现形式即为一串二进制字符,该二进制字符在传输过程中便可称为字节流。
作为一种示例,可先读取BINLOG事件字节流中的前23个字节解析出 BINLOG事件头,从BINLOG事件头中获取得到“事件发生时间、事件类型、事件体长度”等数值,再从BINLOG事件字节流中的第24个字节读取与“事件体长度”一致的字节作为BINLOG事件体,从而得到一个完整的BINLOG 事件,包含BINLOG事件头和BINLOG事件体。
其中,BINLOG事件头中的事件类型可包括DDL事件和DML事件。作为一种示例,DDL事件对应的事件类型可表示为“查询事件”,实际应用中可表示为“QUERY_EVENT”。DML事件对应的事件类型可表示为“写入列事件”、“更新列事件”和“删除列事件”,实际应用中可分别表示为“WRITE_ROWS_EVENT”、“UPDATE_ROWS_EVENT”和“DELETE_ROWS_EVENT”。
即,如果获取到BINLOG事件头中的事件类型为“QUERY_EVENT”,则可进入执行DDL事件的分支流程;而如果获取到BINLOG事件头中的事件类型为“WRITE_ROWS_EVENT”、“UPDATE_ROWS_EVENT”和“DELETE_ROWS_EVENT”中的任意一种事件类型,则可进入执行DML事件的分支流程。
S120,若目标事务变更日志指示的事件类型为DDL事件,则将目标事务变更日志中记录的DDL事件的信息,记录到DDL事件对应的目标事件槽位中。
具体地,如果解析得到目标事务变更日志的事件头中指示的事件类型为“QUERY_EVENT”,则表明该目标事务变更日志指示的事件类型为DDL事件。此时,可进入执行DDL事件的分支流程。
可选地,为了节省目标事件槽位的存储空间,同时为了快速确定目标事件槽位是否已记录有某次DDL事件,本说明书实施例可获取目标事务变更日志中的该DDL事件的变更内容的摘要,并将该DDL事件的变更内容的摘要而非该DDL事件的变更内容记录到目标事件槽位中。其中,DDL事件的变更内容的摘要可通过哈希算法对DDL事件的变更内容进行计算得到。
这样,在目标事件槽位中记录有该DDL事件的变更内容的摘要的前提下,在目标事件槽位中记录其它数据库分库的该DDL事件执行状态时,便可直接在该DDL事件的变更内容的摘要下记录其DDL事件的执行时间。具体地,目标事务变更日志中包括:DDL事件的表名,DDL事件的信息包括DDL事件的变更内容的摘要、DDL事件的数据库分库标识和DDL事件的数据库分库标识对应的数据库分库执行DDL事件的时间戳,
将目标事务变更日志中记录的所述DDL事件的信息,记录到DDL事件对应的目标事件槽位中,包括:
确定与DDL事件的表名对应的目标事件槽位;
将DDL事件的变更内容的摘要、DDL事件的时间戳和DDL事件的数据库分库标识,记录到与DDL事件的表名对应的目标事件槽位中。
其中,一个总表由多个数据库分库共同维护,一个总表对应一个事件槽位,即每个总表的表名都可与一个事件槽位相对应。
其中,当目标事件槽位为非空时,目标事件槽位中可维护有一个“各数据库分库的DDL事件时间数组”,该“各数据库分库的DDL事件时间数组”中包含有各数据库分库执行DDL事件的时间戳。应理解,为了区分各个数据库分库执行DDL事件的时间戳,该“各数据库分库的DDL事件时间数组”中还包括由各个数据库分库的分库标识(比如各个数据库分库的分库号,应理解,该分库号应为各数据库分库的唯一标识)。
作为一种示例,目标事件槽位可表示为“DDL事件的变更内容的摘要,各数据库分库的DDL事件时间数组”,其中“各数据库分库的DDL事件时间数组”可表示为[a1,a2,a3,……,an],其中,a1~an的位置标识1~n可对应于各个数据库分库的分库标识,a1~an的具体数值可为各个数据库分库执行DDL事件的时间戳。
可选地,由于应用的总表通常对应于一个目标事件槽位,为了简化目标事件槽位记录的信息,以及简化从目标事件槽位中提取信息的难度,本说明书实施例可将目标事件槽位设置为两种状态,即:空和非空状态。当目标事件槽位为空时,表明目标事件槽位对应的总表的上一次DDL事件在各个数据库分库都已执行完成,而下一次DDL事件在应用的各个数据库分库中还未开始执行。而当目标事件槽位为非空时,则表明目标事件槽位对应的总表的上一次DDL 事件在应用的各个数据库分库还未全部执行完成,即该DDL事件在有些数据库分库中已经执行完成,而在其他数据库分库中还未执行完成。
具体地,将DDL事件的变更内容的摘要、DDL事件的时间戳和DDL事件的数据库分库标识,记录到DDL事件的表名对应的目标事件槽位中,包括:
确定目标事件槽位是否为空;
若目标事件槽位为空,则将DDL事件的变更内容的摘要、DDL事件的时间戳和DDL事件的数据库分库标识,记录到与DDL事件的表名对应的目标事件槽位中;
若目标事件槽位为非空,则将DDL事件的时间戳和DDL事件的数据库分库标识,记录到DDL事件的表名对应的目标事件槽位中。
当目标事件槽位为空时,可先创建一个空的“各数据库分库的DDL事件时间数组”,该空的“各数据库分库的DDL事件时间数组”中的各个元素的位置标识可与各个数据库分库标识相对应。再将DDL事件的时间戳记录到DDL 事件的表名对应的目标事件槽位中时,具体可以依据各个数据库分库标识,将各个数据库分库的DDL事件的时间戳记录到DDL事件的表名对应的目标事件槽位中的“各数据库分库的DDL事件时间数组”中的对应元素位置处。同时在该目标事件槽位中记录DDL事件的变更内容的摘要。
当目标事件槽位为非空时,则可依据各个数据库分库标识直接将各个数据库分库的DDL事件的时间戳,记录到DDL事件的表名对应的目标事件槽位中的“各数据库分库的DDL事件时间数组”中的对应元素位置处。
可选地,由于目标事件槽位每次仅记录一次DDL事件在应用的各个数据库分库中的执行进度,在记录了该次DDL事件在该应用的所有数据库分库中的执行时间戳之后,都进行清空处理。因此,为了便于确定该应用的总表的 DDL变更轨迹,本说明书实施例在将每次DDL事件同步到与该应用对应的数据仓库中之后,还可在同步中间件中记录该应用的各个数据库分库每次执行 DDL事件的变更内容的记录。具体地,目标事务变更日志中还包括:所述DDL 事件的变更内容,所述方法还包括:
将DDL事件的变更内容同步到与应用对应的数据仓库中,该DDL事件与所述应用对应;
获取并记录所述应用对应的数据分库执行所述DDL事件的变更内容的记录。
其中,将DDL事件的变更内容同步到与应用对应的数据仓库中,该DDL 事件为该应用的多个数据库分库中执行的DDL事件的变更内容。
其中,同步中间件中可记录两种数据元信息包括meta-${DB}-${tab}和 meta-DDL-HIVE-${tab}。
其中,meta-${DB}-${tab}用于记录应用的各个数据库分库的表元信息,主要保存应用的各个数据库分库在每次执行DDL事件之后的元数据信息,主要包含“执行DDL事件的时间戳、变更的列名、变更的列类型、初始值”等信息。该meta-${DB}-${tab}中记录的信息可按照执行DDL事件的时间戳倒序排列。
meta-DDL-HIVE-${tab}用于记录HIVE数据仓库中执行DDL事件的变更历史以及由目标事件槽位汇总的应用的所有数据库分库执行DDL事件的信息,主要包含“执行DDL事件的时间戳、DDL事件的变更内容、DDL事件的变更内容的摘要、各数据库分库的DDL事件时间数组、新增列信息、修改表信息、删除列信息”等信息。该meta-DDL-HIVE-${tab}中记录的信息可按照执行DDL 事件的时间戳倒序排列。
下面结合图2所示的数据处理方法的应用的一种实际场景的示例图,本说明书实施例将详细介绍执行DDL事件的分支流程,具体以数据库中维护的多个应用中的任一个应用为目标应用进行说明,包括:
S121,同步中间件依次从目标应用的各数据库分库(数据库分库1、数据库分库2、……、数据库分库n)中发送的最新的一个目标事务变更日志中,解析出DDL语句的数据库分库号、表名和DDL语句。将目标应用的各数据库分库执行DDL事件后变更的表元数据保存在目标应用的各个数据库分库的 meta-${DB}-${tab}中。主要写入数据库分库1、数据库分库2、……、数据库分库n执行DDL事件的时间戳、以及执行DDL事件的变更内容中的表列名和列类型。
其中,目标应用的数据库分库1、数据库分库2、……、数据库分库n中发送的最新的一个目标事务变更日志,分别为目标事务变更日志1、目标事务变更日志2、……、目标事务变更日志n。
S122,同步中间件基于DDL事件的变更内容计算DDL事件的变更内容的摘要,再根据DDL事件的变更内容对应的表名查找该表名对应的目标事件槽位。
S123,如果目标事件槽位为空,就将“事务变更日志的接收时间、DDL 事件的变更内容的摘要、执行DDL事件的时间戳”写入目标事件槽位中。在写入目标事件槽位后,就将该目标事件槽位中记录的信息写入到同步中间件记录的meta-DDL-HIVE-${tab}中。主要写入“DDL事件的执行时间戳、DDL事件的变更内容的摘要、DDL语句、新增列信息、修改表信息、删除列信息”。同时,将写入该目标事件槽位中记录的信息发送到目标应用对应的HIVE数据仓库中,使得HIVE数据仓库执行对应的DDL事件。
S124,如果目标事件槽位为非空,就只将当前接收到的数据库分库的执行 DDL事件的时间戳添加到目标事件槽位的“各数据库分库的DDL事件时间数组”中,同时将目标事件槽位中记录的信息更新到同步中间件记录的 meta-DDL-HIVE-${tab}中。
S125,待目标事件槽位中记录有所有数据库分库中的DDL事件的信息时,就将目标事件槽位的记录的全部信息保存到同步中间件记录的 meta-DDL-HIVE-${tab}中,并将目标事件槽位恢复为空的状态。
可选地,为了对目标事件槽位中记录的DDL事件的信息进行汇总,在表名相同的DDL事件的信息都记录到对应的目标事件槽位的情况下,则将目标事件槽位中的所有DDL事件的信息都同步到与该DDL事件对应的目标应用的同步中间件中。
其中,表名相同的DDL事件的信息都记录到对应的目标事件槽位,具体可为同一应用的总表的所有数据库分库在执行完同一DDL事件之后,将该应用的总表的所有数据库分库执行的该DDL事件的信息记录到对应的目标事件槽位中。
作为一种示例,在目标事件槽位记录了目标表名对应的所有数据库分库中的DDL事件的信息后,将该目标表名对应的目标事件槽位中的所有DDL事件的信息更新到目标应用的同步中间件的meta-DDL-HIVE-${tab}中。
具体地,在每次记录一个数据库分库执行DDL事件的内容之后,可先将该数据库分库执行DDL事件的内容记录到meta-${DB}-${tab}中;再根据DDL 事件的变更内容的摘要、以及DDL事件的执行时间戳和分库标识写入到目标事件槽位中;然后在HIVE数据仓库中执行写入目标事件槽位的DDL事件,以及在执行成功后,将该HIVE数据仓库中执行DDL事件的变更记录到 meta-DDL-HIVE-${tab}中;最后,在DDL事件的表名相同的数据库分库中的DDL事件的信息都记录到目标事件槽位时,再将该目标事件槽位中记录的 DDL事件的信息更新到目标应用的同步中间件的meta-DDL-HIVE-${tab}中。
可选地,为了便于记录目标应用的各数据库分库执行下次DDL事件的执行进度,同时节省目标事件槽位的存储空间,在目标事件槽位记录有所有数据库分库执行所述DDL事件的内容时,将目标事件槽位中的所有DDL事件的信息都同步到目标应用的同步中间件中之后,本说明书实施例提供的方法还包括:
将目标事件槽位清空。
此外,如果解析得到目标事务变更日志的事件头中指示的事件类型为“WRITE_ROWS_EVENT”、“UPDATE_ROWS_EVENT”和“DELETE_ROWS_EVENT”中的任意一种事件类型,则进入执行DML事件的分支流程。具体地,在获取并解析多个数据库分库中的目标事务变更日志之后,本说明书实施例提供的方法还包括:
若目标事务变更日志指示的事件类型为DML事件,则从目标应用的同步中间件中获取目标DDL事件的信息,目标DDL事件的信息为各DDL事件的信息的生成时刻与DML事件的当前获取时刻的差值最小的DDL事件的信息;
基于目标DDL事件的信息,确定生成目标DDL事件的信息对应的第一 DDL事件;
根据第一DDL事件,确定多个数据库分库中执行第一DDL事件的数据库分库所产生的第一DDL事件的时间戳序列;
按照时间戳序列所对应的第一DDL事件的信息,依次调整DML语句。
其中,从目标应用的同步中间件中获取目标DDL事件的信息,在实际应用中,可取出目标事务变更日志的事件头中的“事件发生时间”作为“事件时间戳A”,并解析目标事务变更日志的事件体中的DML语句,得到数据库分库标识和表名a。再在同步中间件的meta-${DB}-${tab}中查找表元信息,查询条件为“meta-${DB}-${tab}.时间戳<‘事件时间戳A’”,再对查询结果进行过滤,只取最大“DDL事件时间戳”的对应记录。过滤后就取了对应时间点的表各列元数据信息,并将该最大“DDL事件时间戳”赋值给‘DDL事件时间戳B’变量。
最后在同步中间件的meta-DDL-HIVE-${tab}中查找与表名a对应的DDL 变更轨迹数组,查询条件为“meta-hive-${tab}.分库DDL事件时间==0或者 meta-hive-${tab}.分库DDL事件时间>=‘DDL事件时间戳B’”,即查找DDL 事件时间戳B之后是否发生了DDL事件。如果没有,则将DDL事件时间戳B 对应的DDL事件作为第一DDL事件。如果有,则将事件时间戳B之后发生的 DDL事件,作为第一DDL事件。此时,便可获取到最新生成的目标DDL事件的信息,即该目标DDL事件的信息为各DDL事件的信息的生成时刻与DML 事件的当前获取时刻的差值最小的DDL事件的信息。
应理解,由于目标应用的各个数据分库在执行DDL事件时,在时间上存在一定的先后顺序,在调整DML语句时,为了维持该DDL事件对应的表格变更的一致性,也应按照DDL事件的执行时间戳的先后顺序来依次调整。因此,还需确定多个数据库分库中执行第一DDL事件的数据库分库所产生的第一 DDL事件的时间戳序列,并按照时间戳序列所对应的第一DDL事件的信息,依次调整DML语句。具体地,按照时间戳序列所对应的第一DDL事件的信息,依次调整DML语句,包括:
按照时间戳序列在时间上的先后顺序对时间戳序列所对应的第一DDL事件的信息进行先后排序,并基于排序后的第一DDL事件的信息,依次调整DML 语句。
其中,第一DDL事件包括增加表格的指定列、删除表格的指定列和变更表格的指定列中的至少一种。
在依次调整完DML语句之后,调整后的DML语句便可在HIVE数据仓库中执行。显然,这样按照DDL事件的执行时间戳的先后顺序来依次调整的 DML语句在执行时,则可自动按照顺序来执行,不需要运维人员来参与维持执行顺序。
下面,本说明书实施例将详细介绍执行DML事件的分支流程,包括:
步骤141,从目标事务变更日志的事件头中取出该DML事件的“事件时间戳A”,解析目标事务变更日志的事件体得到数据库分库标识和表名。
步骤142,在同步中间件记录的各个数据库分库的meta-${DB}-${tab}中查找表元信息,查询条件为“meta-${DB}-${tab}.时间戳<‘事件时间戳A’”,再对查询结果进行过滤,只取具备最大的“DDL事件时间戳”的对应记录。过滤后就取得对应时间点的表各列元数据信息,并将该最大的“DDL事件时间戳”赋值给“DDL事件时间戳B”变量。
步骤143,在同步中间件记录的meta-DDL-HIVE-${tab}中查找对应于步骤 141中表名的DDL事件的变更轨迹数组,查询条件为“meta-hive-${tab}.分库 DDL事件时间==0或者meta-hive-${tab}.分库DDL事件时间>=‘DDL事件时间戳B’”。即查找上述最大的“DDL事件时间戳B”之后是否发生了DDL 事件。
如果上述最大的“DDL事件时间戳B”之后没有发生DDL事件,则将DDL 事件时间戳B对应的DDL事件作为DML事件的前一个DDL事件。如果上述最大的“DDL事件时间戳B”之后发生了DDL事件,则将事件时间戳B之后发生的DDL事件,作为DML事件的前一个DDL事件。
步骤144,按倒序从DDL事件的变更轨迹数组中依次取出DDL事件的变更记录,对DML语句的每个字段重新进行对应调整。
如果变更轨迹中有“ADD列”,则在DML中语句中增加对应新列;如果变更轨迹中有“DROP列”,则在DML中删除对应列;如果变更轨迹中有“CHANGE列”,则在DML中变更对应列。
步骤145,依次调整DML完成后,调整后的DML语句就能正确地在HIVE 中被执行。
采用本发明实施例的方案,能够在目标应用的各个数据库分库每生成一个最新的记录有DDL事件的事务变更日志时,便把该事务变更日志中记录的 DDL事件的内容记录到该DDL事件对应的目标事件槽位中。从该目标事件槽位中可直观地获取到各个数据库分库处理同一DDL事件的进度,即记录在目标事件槽位中的DDL事件的内容对应的数据库分库便完成了DDL事件的变更,而没有记录在目标事件槽位中记录相关信息的数据库分库则没有完成对应的 DDL事件的变更。从而能够达到在一次DDL事件变更的过程中,实时监控各数据库分库执行该DDL事件的进度信息。
为了解决现有技术中存在的问题,如图3所示,本申请实施例还提供一种数据处理装置300,包括:
日志获取模块310,用于解析并获取多个数据库分库中目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;
事件槽位记录模块320,用于若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
通过本申请实施例提供的数据处理装置,采用本发明实施例的方案,能够在应用各个数据库分库每生成一个最新的记录有DDL事件的事务变更日志时,便把该事务变更日志中记录的DDL事件的内容记录到该DDL事件对应的目标事件槽位中。从该目标事件槽位中可直观地获取到各个数据库分库处理同一 DDL事件的进度,即记录在目标事件槽位中的DDL事件的内容对应的数据库分库便完成了DDL事件的变更,而没有记录在目标事件槽位中记录相关信息的数据库分库则没有完成对应的DDL事件的变更。从而能够达到在一次DDL事件变更的过程中,实时监控各数据库分库执行该DDL事件的进度信息。
可选地,在一种实施方式中,所述目标事务变更日志中包括:所述DDL 事件的表名,所述DDL事件的信息包括所述DDL事件的变更内容的摘要、所述DDL事件的数据库分库标识和所述DDL事件的数据库分库标识对应的数据库分库执行所述DDL事件的时间戳,所述事件槽位记录模块320,用于:
确定与所述DDL事件的表名对应的所述目标事件槽位;
将所述DDL事件的变更内容的摘要、所述DDL事件的时间戳和所述DDL 事件的数据库分库标识,记录到与所述DDL事件的表名对应的所述目标事件槽位中。
可选地,在一种实施方式中,所述事件槽位记录模块320,用于:
确定所述目标事件槽位是否为空;
如果所述目标事件槽位为空,则将所述DDL事件的变更内容的摘要、所述DDL事件的时间戳和所述DDL事件的数据库分库标识记录到所述DDL事件的表名对应的目标事件槽位中;
如果所述目标事件槽位为非空,则将所述DDL事件的时间戳和所述DDL 事件的数据库分库标识,记录到与所述DDL事件的表名对应的目标事件槽位中。
可选地,在一种实施方式中,所述目标事务变更日志中还包括:所述DDL 事件的变更内容,所述装置还包括:
第一同步模块,用于将所述DDL事件的变更内容同步到与应用对应的数据仓库中,所述DDL事件与所述应用对应;
记录模块,用于获取并记录所述应用对应的数据分库执行所述DDL事件的变更内容的记录。
可选地,在一种实施方式中,所述装置还包括:
第二同步模块,用于在表名相同的所述DDL事件的信息都记录到对应的目标事件槽位的情况下,则将对应的所述目标事件槽位中的所有DDL事件的信息都同步到与所述DDL事件对应的应用的同步中间件中。
可选地,在一种实施方式中,所述装置还包括:
清空模块,用于将所述目标事件槽位清空。
可选地,在一种实施方式中,所述日志获取模块410获取并解析多个数据库分库中的目标事务变更日志之后,所述装置还包括:
第二获取模块,用于若所述目标事务变更日志指示的事件类型为数据操作语句DML事件,则从应用的同步中间件中获取目标DDL事件的信息,所述目标DDL事件的信息为各DDL事件的信息的生成时刻与所述DML事件的当前获取时刻的差值最小的DDL事件的信息;
事件确定模块,用于基于所述目标DDL事件的信息,确定生成所述目标 DDL事件的信息对应的第一DDL事件;
序列确定模块,用于根据所述第一DDL事件,确定所述多个数据库分库中执行所述第一DDL事件的数据库分库所产生的所述第一DDL事件的时间戳序列;
语句调整模块,用于按照所述时间戳序列所对应的第一DDL事件的信息,依次调整DML语句。
其中,本申请实施例提供的装置中的上述模块还可以实现上述方法实施例提供的方法步骤。或者,本申请实施例提供的装置还可以包括除上述模块以外的其他模块,用以实现上述方法实施例提供的方法步骤。且本申请实施例提供的装置能够实现上述方法实施例所能达到的技术效果。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称 ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取并解析多个数据库分库中的目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;
若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
2.如权利要求1所述的方法,其特征在于,所述目标事务变更日志中包括:所述DDL事件的表名,所述DDL事件的信息包括所述DDL事件的变更内容的摘要、所述DDL事件的数据库分库标识和所述DDL事件的数据库分库标识对应的数据库分库执行所述DDL事件的时间戳,
所述将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中,包括:
确定与所述DDL事件的表名对应的所述目标事件槽位;
将所述DDL事件的变更内容的摘要、所述DDL事件的时间戳和所述DDL事件的数据库分库标识,记录到与所述DDL事件的表名对应的所述目标事件槽位中。
3.如权利要求2所述的方法,其特征在于,所述将所述DDL事件的变更内容的摘要、所述DDL事件的时间戳和所述DDL事件的数据库分库标识,记录到与所述DDL事件的表名对应的所述目标事件槽位中,包括:
确定所述目标事件槽位是否为空;
若所述目标事件槽位为空,则将所述DDL事件的变更内容的摘要、所述DDL事件的时间戳和所述DDL事件的数据库分库标识,记录到所述DDL事件的表名对应的所述目标事件槽位中;
若所述目标事件槽位为非空,则将所述DDL事件的时间戳和所述DDL事件的数据库分库标识,记录到与所述DDL事件的表名对应的所述目标事件槽位中。
4.如权利要求3所述的方法,其特征在于,所述目标事务变更日志中还包括:所述DDL事件的变更内容,所述方法还包括:
将所述DDL事件的变更内容同步到与应用对应的数据仓库中,所述DDL事件与所述应用对应;
获取并记录所述应用对应的数据分库执行所述DDL事件的变更内容的记录。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
在表名相同的所述DDL事件的信息都记录到对应的目标事件槽位的情况下,则将对应的所述目标事件槽位中的所有DDL事件的信息都同步到与所述DDL事件对应的应用的同步中间件中。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
将所述目标事件槽位清空。
7.如权利要求1所述的方法,其特征在于,获取并解析多个数据库分库中的目标事务变更日志之后,所述方法还包括:
若所述目标事务变更日志指示的事件类型为数据操作语句DML事件,则从所述应用的同步中间件中获取目标DDL事件的信息,所述目标DDL事件的信息为各DDL事件的信息的生成时刻与所述DML事件的当前获取时刻的差值最小的DDL事件的信息;
基于所述目标DDL事件的信息,确定生成所述目标DDL事件的信息对应的第一DDL事件;
根据所述第一DDL事件,确定所述多个数据库分库中执行所述第一DDL事件的数据库分库所产生的所述第一DDL事件的时间戳序列;
按照所述时间戳序列所对应的第一DDL事件的信息,依次调整DML语句。
8.一种数据处理装置,其特征在于,包括:
日志获取模块,用于获取并解析多个数据库分库中的目标事务变更日志,所述目标事务变更日志为各事务变更日志的生成时刻与所述目标事务变更日志的当前获取时刻的差值最小的事务变更日志;
事件槽位记录模块,用于若所述目标事务变更日志指示的事件类型为数据定义语言DDL事件,则将所述目标事务变更日志中记录的所述DDL事件的信息,记录到所述DDL事件对应的目标事件槽位中。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210109020.7A CN116561138A (zh) | 2022-01-28 | 2022-01-28 | 数据处理方法和装置 |
US18/561,872 US20240241879A1 (en) | 2022-01-28 | 2022-11-14 | Data processing method and apparatus |
EP22923404.2A EP4336375A1 (en) | 2022-01-28 | 2022-11-14 | Data processing method and apparatus |
PCT/CN2022/131784 WO2023142610A1 (zh) | 2022-01-28 | 2022-11-14 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210109020.7A CN116561138A (zh) | 2022-01-28 | 2022-01-28 | 数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116561138A true CN116561138A (zh) | 2023-08-08 |
Family
ID=87470422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210109020.7A Pending CN116561138A (zh) | 2022-01-28 | 2022-01-28 | 数据处理方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240241879A1 (zh) |
EP (1) | EP4336375A1 (zh) |
CN (1) | CN116561138A (zh) |
WO (1) | WO2023142610A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116804994B (zh) * | 2023-08-23 | 2023-11-14 | 北京逐风科技有限公司 | 数据同步方法、系统、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162516A1 (en) * | 2005-12-30 | 2007-07-12 | Microsoft Corporation | Computing asynchronous transaction log replication progress based on file change notifications |
CN105447014B (zh) * | 2014-08-15 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 基于binlog的元数据管理方法和用于提供元数据的方法及装置 |
CN107958082B (zh) * | 2017-12-15 | 2021-03-26 | 杭州有赞科技有限公司 | 数据库到数据仓库的离线增量同步方法及系统 |
CN113656384B (zh) * | 2021-10-18 | 2022-04-08 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
-
2022
- 2022-01-28 CN CN202210109020.7A patent/CN116561138A/zh active Pending
- 2022-11-14 US US18/561,872 patent/US20240241879A1/en active Pending
- 2022-11-14 EP EP22923404.2A patent/EP4336375A1/en active Pending
- 2022-11-14 WO PCT/CN2022/131784 patent/WO2023142610A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023142610A1 (zh) | 2023-08-03 |
US20240241879A1 (en) | 2024-07-18 |
EP4336375A1 (en) | 2024-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386436B2 (en) | System and method for data storage | |
US20170308602A1 (en) | Apparatus And Methods Of Data Synchronization | |
US20040193622A1 (en) | Logging synchronization | |
CN109189852A (zh) | 一种数据同步的方法及用于数据同步的装置 | |
CN111324665A (zh) | 一种日志回放方法及装置 | |
CN113821573B (zh) | 海量数据快速检索服务构建方法、系统、终端及存储介质 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN112328702B (zh) | 数据同步方法及系统 | |
CN113868028A (zh) | 一种在数据节点上回放日志的方法、数据节点及系统 | |
CN114329096A (zh) | 一种原生图数据库处理方法及系统 | |
US10235407B1 (en) | Distributed storage system journal forking | |
CN116126950A (zh) | 实时物化视图系统和方法 | |
CN116561138A (zh) | 数据处理方法和装置 | |
CN117473021B (zh) | 一种基于cdc方式的达梦数据库增量同步实现方法 | |
CN114036226A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN114911872B (zh) | 内外网数据同步方法、装置、系统、外网服务器及存储介质 | |
CN113672683B (zh) | 基于Spark SQL的分布式数据库元数据同步装置及方法 | |
CN115391457A (zh) | 跨数据库的数据同步方法、装置及存储介质 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN114896250A (zh) | 一种键值分离的键值存储引擎索引优化方法及装置 | |
CN114153857A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
US7640229B1 (en) | Row triggers | |
CN115687309B (zh) | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 | |
McGlothlin et al. | Scalable queries for large datasets using cloud computing: a case study |
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 |