CN115964440A - 数据同步的方法及装置、数据同步系统 - Google Patents
数据同步的方法及装置、数据同步系统 Download PDFInfo
- Publication number
- CN115964440A CN115964440A CN202211595593.1A CN202211595593A CN115964440A CN 115964440 A CN115964440 A CN 115964440A CN 202211595593 A CN202211595593 A CN 202211595593A CN 115964440 A CN115964440 A CN 115964440A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- log
- flow direction
- directed acyclic
- 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
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据同步的方法及装置、数据同步系统。其中,该方法包括:采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。本申请解决了由于通过实时接入数据库进行数据同步造成的数据同步的延迟时间长的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据同步的方法及装置、数据同步系统。
背景技术
传统的实时接入需要通过连接数据库查询数据进行同步,会对数据库造成极大压力,且准确性也并不理想。例如某个日志表,每秒存储的数据量千到万条,若是通过直接查询数据库进行数据同步,该库入库和查询等操作会有极大延迟,甚至引起数据库宕机,极大的影响了数据的入库,且无法满足报表需求。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据同步的方法及装置、数据同步系统,以至少解决由于通过实时接入数据库进行数据同步造成的数据同步的延迟时间长的技术问题。
根据本申请实施例的一个方面,提供了一种数据同步的方法,包括:采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
可选地,在读取数据库的日志之前,数据同步的方法包括:将数据库的日志模式设置为行模式;在行模式下,监听数据库;在监听到数据库中的数据被修改时,将修改前的数据,修改后的数据,以及数据的修改过程记录在日志中。
可选地,采用数据库管道进程读取数据库的日志,包括:数据库管道进程通过预设协议向数据库发送请求消息,其中,请求消息用于请求读取数据库的日志;接收数据库发送的日志数据,并将日志数据的格式转换为目标格式。
可选地,根据数据的流向生成有向无环图,包括:确定多个数据处理单元,将多个数据处理单元中各数据处理单元作为有向无环图的节点;将数据的流向作为有向无环图的边;根据有向无环图的节点和有向无环图的边生成有向无环图。
可选地,在读取数据库的日志之前,数据同步的方法包括:配置数据库的地址,确定目标数据表和开始时间戳,其中,目标数据表为需要在数据库与消息中间件之间进行同步的数据表,开始时间戳用于指示数据库与消息中间件开始同步的时刻。
可选地,在将数据库与消息中间件的数据进行同步之后,数据同步的方法包括:获取终端的请求消息,其中,请求消息用于向数据库请求数据;通过消息中间件向终端发送与请求消息对应的数据。
可选地,对日志进行解析,包括:同时对日志中的多个数据进行解析。
根据本申请实施例的另一方面,还提供了一种数据同步系统,包括:关系型数据库模块,用于生成日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;同步工具模块,用于读取日志,并将日志发送至分布式计算引擎;分布式计算引擎模块,用于对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
根据本申请实施例的另一方面,还提供了一种数据同步的装置,包括:读取模块,用于读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;解析模块,用于对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;同步模块,用于将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述的数据同步的方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括:存储器和处理器,该处理器用于运行存储在存储器中的程序,其中,程序运行时执行上述的数据同步的方法。
在本申请实施例中,采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步的方式,通过读取数据库日志中的数据,使数据库与消息中间件之间实时进行数据,并通过消息中间件实现终端与数据库的数据同步,达到了避免终端直接读取数据库中的数据的目的,降低了终端直接读取数据库中的数据对数据库造成的压力;通过在分布式计算引擎中对日志进行解析,形成有向无环图(Directed Acyclic Graph,DAG),对数据进行流处理,达到了降低数据同步的延时的目的,从而实现了利用消息中间件使数据库与终端间数据实时同步的技术效果,进而解决了由于通过实时接入数据库进行数据同步造成的数据同步的延迟时间长技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种实现数据同步的方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种数据同步的方法的流程图;
图3是根据本申请实施例的一种数据同步系统的示意图;
图4是根据本申请实施例的一种数据同步的装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例,以下将本申请实施例中涉及的技术术语解释如下:
管道进程:同步增量数据的工具,通过管道进程将数据库的增量数据同步存储到目标地址。
消息中间件:基于消息传递技术在网络环境中为应用系统提供消息传输的软件系统。
有向无环图(DAG):一个有向图无法从某个顶点触发经过若干条边回到该顶点,则这个有向图是有向无环图,在本申请实施例中,指以对管道进程中的源数据进行处理的数据处理单元作为起点,以指定的消息中间件为终点构成的图。
在相关技术中,终端直接读取数据库中的数据,与数据库进行数据同步,因此,存在数据同步延时高,以及数据库压力大引起的数据库宕机的问题。为了解决该问题,本申请实施例中通过管道进程读取数据库的日志,实时捕获数据库中数据的变化,将数据库中的数据操纵语言(Data Manipulation Language,DML)等操作同步到消息中间件,并通过消息中间件同步到终端,从而可以解决上述问题,以下详细说明。
根据本申请实施例,提供了一种数据同步的方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据同步的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据同步的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据同步的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图2是根据本申请实施例提供的一种数据同步的方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,其中依赖关系用于指示数据库中数据的流向。
在步骤S202中,通过管道进程实时读取关系型数据库(Mysql)的逻辑日志(binlog日志),获取binlog中记录的数据;其中,binlog日志中记录了数据库中数据的流向,数据变更时进行的操作以及数据库中新增的查询语句(SQL语句)等与数据库中数据变更操作相关的信息
步骤S204,对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图。
在步骤S204中,利用大数据分布式计算引擎对在步骤S202中读取到的日志进行解析,得到数据的流向,依据数据库中的数据和数据的流向生成有向无环图。
步骤S206,将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
在步骤S206中,将从日志中读取到的数据,尤其是数据库的增量数据存储到有向无环图指示的消息中间件中,实现数据库与消息中间件的数据同步。
通过上述步骤,可以实现通过读取数据库的binlog日志文件,减小源端数据库压力,将数据库中的数据,尤其是增量数据以毫秒级的延迟时间同步到消息中间件,供终端读取,降低了数据同步的延迟。
根据本申请一个可选的实施例,在读取数据库的日志之前,数据同步的方法包括以下步骤:将数据库的日志模式设置为行模式;在行模式下,监听数据库;在监听到数据库中的数据被修改时,将修改前的数据,修改后的数据,以及数据的修改过程记录在日志中。
在本实施例中,在利用管道进程读取数据库的binlog日志之前,将数据库的日志模式设置为行模式(row模式),在row模式下,binlog日志会记录数据库的数据表中。每一行数据被修改的形式,记录每一行数据被修改前的形式,被修改后的形式以及修改数据执行的具体操作;当管道进程监听到数据库中的数据被修改时,根据binlog日志中记录的被修改的数据,该被修改的数据修改前的形式,修改后的形式以及修改执行的具体操作,对管道进程中的对应数据进行同样的修改,实现管道进程与数据库的同步。将数据库的日志模式设置为row模式时,binlog仅记录被修改的语句而无需记录该被修改的语句的上下文语句,降低了数据同步时传输的数据量,降低了数据同步延迟。
根据本申请另一个可选的实施例,采用数据库管道进程读取数据库的日志,包括:数据库管道进程通过预设协议向数据库发送请求消息,其中,请求消息用于请求读取数据库的日志;接收数据库发送的日志数据,并将日志数据的格式转换为目标格式。
在本实施例中,管道进程通过以下方法读取数据库的binlog日志:被读取的Mysql数据库作为主数据库,管道进程模拟主数据库(Mysql)的从数据库(Slave),通过主数据库(Mysql)的交互协议(即预设协议),向主数据库(Mysql)发送转存请求(dump请求),主数据库(Mysql)接收到该dump请求,向管道进程发送binlog日志中的增量数据,即发生变更的数据;在接收到binlog日志中的增量数据后,依据数据对应的事件,将归属于同一个事件的数据进行封装,转换为管道进程中的数据格式(即目标格式)。
根据本申请又一个可选的实施例,根据数据的流向生成有向无环图,包括以下步骤:确定多个数据处理单元,将多个数据处理单元中各数据处理单元作为有向无环图的节点;将数据的流向作为有向无环图的边;根据有向无环图的节点和有向无环图的边生成有向无环图。
在本实施例中,大数据分布式计算引擎根据管道进程中封装后的数据确定与数据对应的事件的数量,并确定与多个时间对应的多个数据处理单元,每个数据处理单元用于处理归属于一个事件的数据。在大数据分布式计算引擎中,数据处理单元,包括数据的来源(Sources)单元,数据的处理过程单元和数据将要存储的目标地址(Sinks)单元,将上述各个单元作为有向无环图的节点,将数据的流向,即数据的处理顺序作为有向无环图的边生成有向无环图,以有向无环图的形式表示数据对应的事件;其中,每个有向无环图以数据的来源(Sources)单元对应的节点作为起始节点,以数据将要存储的目标地址(Sinks)单元对应的节点作为终止节点。
根据本申请一些优选的实施例,在读取数据库的日志之前,数据同步的方法包括:配置数据库的地址,确定目标数据表和开始时间戳,其中,目标数据表为需要在数据库与消息中间件之间进行同步的数据表,开始时间戳用于指示数据库与消息中间件开始同步的时刻。
在一些优选的实施例中,在通过管道进程读取数据库的binlog日志之前,通过以下方法对管道进程进行配置,为管道进程配置要读取的目标数据库的地址,消息中间件要与数据库之间同步的目标数据表的名称,以及消息中间件与数据库开始同步的时间;配置完成后,管道进程将按照上述配置,在目标数据表中的数据发生变更时域数据库之间进行数据同步。另外,在对管道进程进行配置时,还为管道进程配置与数据库之间传输数据的协议,使得管道进程能够与数据库之间进行数据传输。通过本实施例提供的方法管道进程可读取不同的数据库中的数据表,而不需要针对某一个单独的数据库,或者某一个单独的数据表再重新进行配置。
根据本申请一个可选的实施例,在将数据库与消息中间件的数据进行同步之后,数据同步的方法包括:获取终端的请求消息,其中,请求消息用于向数据库请求数据;通过消息中间件向终端发送与请求消息对应的数据。
在本实施例中,在通过上述方法对数据库和消息中间件进行数据同步之后,终端不再从数据库中读取数据,当数据库接收到终端请求数据的消息之后,直接从缓存层的消息中间件中向终端发送数据,相当于终端直接从消息中间件中读取数据。另外,如果终端暂时未向数据库请求数据,消息中间件仍然实时的与数据库之间进行数据同步,将数据暂时缓存在消息中间件中,当终端重新读取数据时,能够立即从消息中间件中读取到数据,降低了数据同步的延迟。
根据本申请另一些优选的实施例,对日志进行解析,包括:同时对日志中的多个数据进行解析。
在另一些优选的实施例中,采用并行的方式,同时对日志中的多个数据解析,而不是逐个解析每一个数据,提高了数据解析的速度,有利于降低数据同步的延迟。
图3是本申请实施例提供的一种数据同步系统的示意图,包括:关系型数据库模块30,用于生成日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;同步工具模块32,用于读取日志,并将日志发送至分布式计算引擎;分布式计算引擎模块34,用于对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
如图3所示,关系型数据库模块30与同步工具模块32通信连接,关系型数据库模块30接收同步工具模块32发送的用于请求日志数据的dump请求消息,通过传输协议将生成的binlog日志数据传输到同步工具模块32;同步工具模块32与分布式计算引擎模块34通信连接,接收同步工具模块32封装处理后的日志数据;分布式计算引擎模块34对接收到的日志数据进行解析,生成有向无环图,并将接收到的日志数据存储到有向无环图指示的中间件中,实现数据库与消息中间件的数据同步。
需要说明的是,上述数据同步系统中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
图4是根据本申请实施例提供的一种数据同步的装置的结构图,包括:读取模块40,用于读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;解析模块42,用于对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;同步模块44,用于将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
上述数据同步的装置工作时,通过读取模块40从数据库中读取日志中的增量数据,即发生变更的数据,读取数据变更前的形式,数据变更后的形式,数据变时执行的具体操作,执行数据变更操作的查询语句,以及数据的流向。通过解析模块42对读取到的日志数据解析,得到日志数据中记录的数据的流向,并依据数据的流向生成有向无环图;该有向无环图之间传递的是数据的操作逻辑而非数据本身,极大减少了服务器资源浪费,降低了数据同步的延时,并且通过该有向无环图增加了数据可视性,能够清晰看出数据的流向,以及在该有向无环图的每个节点对数据进行的操作。通过同步模块44将从数据库中读取的数据存储在上述有向无环图指示的消息中间件中,实现了数据库与消息中间件的数据同步。
需要说明的是,图4所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的数据同步的方法。
上述非易失性存储介质用于存储执行以下功能的程序:采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
本申请实施例还提供了一种电子设备,包括:存储器和处理器,该处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的数据同步的方法。
上述电子设备中的处理器用于运行执行以下功能的程序:采用数据库管道进程读取数据库的日志,其中,日志用于记录数据库中数据的依赖关系,且用于记录数据库中更新的查询语句信息,依赖关系用于指示数据库中数据的流向;对日志进行解析得到数据库中数据的流向,并根据数据的流向生成有向无环图;将数据库中的数据存储在有向无环图指示的消息中间件,将数据库与消息中间件中的数据进行同步。
需要说明的是,上述数据同步的装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种数据同步的方法,其特征在于,包括:
采用数据库管道进程读取数据库的日志,其中,所述日志用于记录所述数据库中数据的依赖关系,且用于记录所述数据库中更新的查询语句信息,所述依赖关系用于指示所述数据库中数据的流向;
对所述日志进行解析得到所述数据库中数据的流向,并根据所述数据的流向生成有向无环图;
将所述数据库中的数据存储在所述有向无环图指示的消息中间件,将所述数据库与所述消息中间件中的数据进行同步。
2.根据权利要求1所述的方法,其特征在于,在读取数据库的日志之前,所述方法包括:
将所述数据库的日志模式设置为行模式;
在所述行模式下,监听所述数据库;在监听到所述数据库中的数据被修改时,将修改前的数据,修改后的数据,以及数据的修改过程记录在所述日志中。
3.根据权利要求1所述的方法,其特征在于,采用数据库管道进程读取数据库的日志,包括:
所述数据库管道进程通过预设协议向所述数据库发送请求消息,其中,所述请求消息用于请求读取所述数据库的日志;
接收所述数据库发送的日志数据,并将所述日志数据的格式转换为目标格式。
4.根据权利要求1所述的方法,其特征在于,根据所述数据的流向生成有向无环图,包括:
确定多个数据处理单元,将多个所述数据处理单元中各所述数据处理单元作为所述有向无环图的节点;
将所述数据的流向作为所述有向无环图的边;
根据所述有向无环图的节点和所述有向无环图的边生成所述有向无环图。
5.根据权利要求1所述的方法,其特征在于,在读取数据库的日志之前,所述方法包括:
配置所述数据库的地址,确定目标数据表和开始时间戳,其中,所述目标数据表为需要在所述数据库与所述消息中间件之间进行同步的数据表,所述开始时间戳用于指示所述数据库与所述消息中间件开始同步的时刻。
6.根据权利要求1所述的方法,其特征在于,在将所述数据库与所述消息中间件的数据进行同步之后,所述方法包括:
获取终端的请求消息,其中,所述请求消息用于向所述数据库请求数据;
通过所述消息中间件向所述终端发送与所述请求消息对应的数据。
7.根据权利要求1所述的方法,其特征在于,对所述日志进行解析,包括:同时对所述日志中的多个数据进行解析。
8.一种数据同步系统,其特征在于,包括:关系型数据库模块,同步工具模块,分布式计算引擎模块和消息中间件模块,
所述关系型数据库模块,用于生成日志,其中,所述日志用于记录所述数据库中数据的依赖关系,且用于记录所述数据库中更新的查询语句信息,所述依赖关系用于指示所述数据库中数据的流向;
所述同步工具模块,用于读取所述日志,并将所述日志发送至所述分布式计算引擎;
所述分布式计算引擎模块,用于对所述日志进行解析得到所述数据库中数据的流向,并根据所述数据的流向生成有向无环图;将所述数据库中的数据存储在所述有向无环图指示的消息中间件,将所述数据库与所述消息中间件中的数据进行同步。
9.一种数据同步的装置,其特征在于,包括:
读取模块,用于读取数据库的日志,其中,所述日志用于记录所述数据库中数据的依赖关系,且用于记录所述数据库中更新的查询语句信息,所述依赖关系用于指示所述数据库中数据的流向;
解析模块,用于对所述日志进行解析得到所述数据库中数据的流向,并根据所述数据的流向生成有向无环图;
同步模块,用于将所述数据库中的数据存储在所述有向无环图指示的消息中间件,将所述数据库与所述消息中间件中的数据进行同步。
10.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述的数据同步的方法。
11.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的数据同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211595593.1A CN115964440A (zh) | 2022-12-13 | 2022-12-13 | 数据同步的方法及装置、数据同步系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211595593.1A CN115964440A (zh) | 2022-12-13 | 2022-12-13 | 数据同步的方法及装置、数据同步系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964440A true CN115964440A (zh) | 2023-04-14 |
Family
ID=87352056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211595593.1A Pending CN115964440A (zh) | 2022-12-13 | 2022-12-13 | 数据同步的方法及装置、数据同步系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964440A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737834A (zh) * | 2023-06-26 | 2023-09-12 | 舟谱数据技术南京有限公司 | 经销商多租户分库分表场景数据实时同步系统 |
-
2022
- 2022-12-13 CN CN202211595593.1A patent/CN115964440A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737834A (zh) * | 2023-06-26 | 2023-09-12 | 舟谱数据技术南京有限公司 | 经销商多租户分库分表场景数据实时同步系统 |
CN116737834B (zh) * | 2023-06-26 | 2024-04-19 | 舟谱数据技术南京有限公司 | 经销商多租户分库分表场景数据实时同步系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284334B (zh) | 实时数据库同步方法、装置、电子设备及存储介质 | |
US11366686B1 (en) | Managing user data in a multitenant deployment | |
CN110147411B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和系统 | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111666326B (zh) | Etl调度方法及装置 | |
WO2021169268A1 (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109829009A (zh) | 可配置的异构数据实时同步并可视化的系统及方法 | |
US10467192B2 (en) | Method and apparatus for updating data table in keyvalue database | |
CN111352994B (zh) | 数据同步方法以及相关设备、装置 | |
CN113553310B (zh) | 数据的采集方法及装置、存储介质、电子设备 | |
TW201735589A (zh) | 網頁中的資料處理方法、裝置及系統 | |
CN110928681A (zh) | 数据的处理方法和装置、存储介质及电子装置 | |
CN115964440A (zh) | 数据同步的方法及装置、数据同步系统 | |
CN110941665A (zh) | 节点间的数据同步方法、数据同步装置及数据同步设备 | |
CN111881209A (zh) | 异构数据库的数据同步方法、装置、电子设备及介质 | |
CN114722092A (zh) | 时序数据处理方法、系统、存储介质和电子设备 | |
WO2022237506A1 (zh) | 在线问诊业务监控方法、装置、设备及存储介质 | |
WO2016074412A1 (zh) | 基于网络配置协议进行兼容管理的方法、存储介质及设备 | |
CN114661823A (zh) | 数据同步的方法、装置、电子设备及可读存储介质 | |
CN110865973B (zh) | 一种数据处理方法及设备和相关装置 | |
CN116634011A (zh) | 数据推送方法、装置、存储介质及电子设备 | |
CN110659299B (zh) | 数据更新的方法及装置、前端开发客户端 | |
CN114297292A (zh) | 一种基于canal平台的数据同步系统及执行方法 | |
CN111506644B (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 |