CN112417050A - 数据同步方法和装置、***、存储介质及电子装置 - Google Patents
数据同步方法和装置、***、存储介质及电子装置 Download PDFInfo
- Publication number
- CN112417050A CN112417050A CN202011339972.5A CN202011339972A CN112417050A CN 112417050 A CN112417050 A CN 112417050A CN 202011339972 A CN202011339972 A CN 202011339972A CN 112417050 A CN112417050 A CN 112417050A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- sending
- component
- subscription system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000008859 change Effects 0.000 claims abstract description 105
- 238000013481 data capture Methods 0.000 claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 132
- 238000004590 computer program Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据同步方法和装置、***、存储介质及电子装置,上述方法包括:通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。通过本发明,解决了相关技术中数据同步所需时间较长的技术问题,降低了数据同步所需的时间,提高了数据同步的实时性。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据同步方法和装置、***、存储介质及电子装置。
背景技术
随着智能家电的普及,用户可以使用终端中安装的智能控制应用程序(Application,简称为APP)对智能家电设备进行控制,并可以通过该智能控制APP分享科技生活的方方面面的信息,以及通过该智能控制APP进行信息的检索。相关技术中,用户通过智能控制APP分享和上传的信息存储在数据库中,数据库将存储的数据同步到搜索***中,用户进而可以通过智能控制APP在搜索***中搜索到自己或其他用户上传的信息。然而在相关技术中,以数据库为支持分布式数据存储的TiDB数据库为例,在进行TiDB数据库与搜索***之间的数据同步时,通常是通过TiDB Binlog组件收集各个TiDB数据库实例产生的binlog日志,并按照事务提交的时间排序后将收集的binlog提交到搜索***,搜索***对收到的binlog进行解析后进行数据同步。然而,由于用户上传的数据是海量的,从而存在海量的binlog,海量binlog在生成、收集以及提交等各个环节都需要消耗一定的时间,并且存在丢失的风险,从而导致数据同步过程所需时间较长,导致数据同步效率较低。
针对相关技术中,数据同步所需时间较长的技术问题,尚未提出有效的技术方案。
发明内容
本发明实施例提供了一种数据同步方法和装置、***、存储介质及电子装置,以至少解决相关技术中数据同步所需时间较长的技术问题。
根据本发明的一个实施例,提供了一种数据同步方法,包括:通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
可选地,所述数据库包括TiDB数据库,所述通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,包括:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
可选地,所述通过所述订阅***将所述数据发送给目标搜索***,包括:通过所述订阅***将所述数据发送给目标处理组件,其中,所述目标处理组件用于对所述数据进行处理得到处理后的数据,并将所述处理后的数据发送给所述目标搜索***;其中,所述方法还包括:通过所述目标搜索***对所述处理后的数据进行存储。
可选地,所述目标处理组件包括抽取转换加载组件,其中,在所述通过所述订阅***将所述数据发送给目标处理组件之后,所述方法还包括:通过所述抽取转换加载组件对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
可选地,所述目标处理组件包括多个处理组件,其中,所述通过所述订阅***将所述数据发送给目标处理组件,包括:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
可选地,所述通过所述变更数据捕获组件向订阅***发送第一通知消息,包括:通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
根据本发明的另一个实施例,提供了一种数据同步装置,包括:监听模块,用于通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;第一发送模块,用于通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;第二发送模块,用于通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
可选地,所述数据库包括TiDB数据库,所述监听模块,还用于:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
可选地,所述第二发送模块,还用于:通过所述订阅***将所述数据发送给目标处理组件,以及用于通过所述目标处理组件对所述数据进行处理得到处理后的数据,并通过所述目标处理组件将所述处理后的数据发送给所述目标搜索***;其中,所述装置还包括存储模块,用于:通过所述目标搜索***对所述处理后的数据进行存储。
可选地,所述目标处理组件包括抽取转换加载组件,其中,所述装置还包括处理模块,用于在所述通过所述订阅***将所述数据发送给目标处理组件之后,通过所述抽取转换加载组件对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
可选地,所述目标处理组件包括多个处理组件,其中,所述第二发送模块,还用于:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
可选地,所述第一发送模块,还用于:通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
根据本发明的另一个实施例,提供了一种数据同步***,包括:数据库,订阅***和目标搜索***,其中,所述数据库,用于通过所述中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;所述数据库,还用于通过所述变更数据捕获组件向所述订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;所述订阅***,用于接收所述第一通知消息,并对所述数据进行存储;所述订阅***,还用于将所述数据发送给所述目标搜索***以对所述目标搜索***进行数据同步。
可选地,所述数据库包括TiDB数据库,所述TiDB数据库用于:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
可选地,所述***还包括目标处理组件,其中,所述订阅***,还用于:将所述数据发送给目标处理组件;所述目标处理组件,用于对所述数据进行处理得到处理后的数据,并将所述处理后的数据发送给所述目标搜索***;其中,所述目标搜索***,还用于:对所述处理后的数据进行存储。
可选地,所述目标处理组件包括抽取转换加载组件,其中,所述目标处理组件,还用于:在所述通过所述订阅***将所述数据发送给目标处理组件之后,对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
可选地,所述目标处理组件包括多个处理组件,其中,所述订阅***还用于:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
可选地,所述数据库,还用于:通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
可选地,根据本发明的另一个实施例,提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
可选地,根据本发明的另一个实施例,提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。
通过本发明,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。由于数据同步不再需要经历binlog的生成、收集和提交的过程,从而节省了数据同步所需的时间,解决了相关技术中数据同步所需时间较长的技术问题,降低了数据同步所需的时间,提高了数据同步的实时性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的数据同步方法的流程图;
图2为根据本发明实施例的数据同步方法中对TiDB数据库进行监听的示意图;
图3为根据本发明实施例的数据同步方法的应用环境示意图;
图4为根据本发明实施例的目标处理组件的示意图;
图5为根据本发明另一实施例的数据同步方法的流程图;
图6为根据本发明一实施例的数据同步装置的结构框图;
图7为根据本发明另一实施例的数据同步装置的结构框图;
图8为根据本发明又一实施例的数据同步装置的结构框图;
图9为根据本发明实施例的数据同步***的示意图;
图10为根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明实施例提供了一种数据同步方法,图1为根据本发明实施例的数据同步方法的流程图,如图1所示,包括:
步骤S102,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
步骤S104,通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
步骤S106,通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
通过本发明,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。由于数据同步不再需要经历binlog的生成、收集和提交的过程,从而节省了数据同步所需的时间,解决了相关技术中数据同步所需时间较长的技术问题,降低了数据同步所需的时间,提高了数据同步的实时性。
在上述实施例中,目标搜索***可以对所述数据进行存储,并在后续接收到用户发起的针对该数据的搜索请求后,将该数据返回给用户。
在一个可选实施例中,所述数据库包括TiDB数据库,其中,所述通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,包括:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
其中,在上述实施例中,通过TiDB数据库中的监听组件对TiDB数据库的存储层(又称为KV(键字-值,Key-Value)层,用于对数据进行存储)进行监听,并将监听到的数据变更事件通知给变更数据捕获(Chang Data Capture,简称为CDC)组件,从而实现了对数据变更的实时捕获,进而节省了数据同步的时间。作为一种可选的方式,如图2所示,可以通过变更数据捕获组件直接对TiDB数据库中的KV层的数据变更事件进行监听,从而进一步从整体上提高了数据同步的效率。
在上述实施例中,所述通过所述订阅***将所述数据发送给目标搜索***,包括:通过所述订阅***将所述数据发送给目标处理组件,其中,所述目标处理组件用于对所述数据进行处理得到处理后的数据,并将所述处理后的数据发送给所述目标搜索***;其中,所述方法还包括:通过所述目标搜索***对所述处理后的数据进行存储。
可选地,订阅***为消息队列Kafka***(Message Queue Kafka,简称为MQ Kafka***),其中,第一通知消息中包括所述数据,通过目标处理组件向订阅***发送订阅请求,订阅请求用于指示目标处理组件对TiDB数据库的数据进行订阅,从而在订阅***接收到第一通知消息并进行存储(包括但不限于缓存)后,可以将存储的数据发送给目标处理组件。
上述实施例可以应用在图3所示的应用环境中,其中,如图3所示,该应用环境的***中包括用户终端,TiDB数据库,订阅***,目标处理组件以及搜索***。
作为一种可选的实施方式,所述目标处理组件包括抽取转换加载组件,其中,在所述通过所述订阅***将所述数据发送给目标处理组件之后,所述方法还包括:通过所述抽取转换加载组件对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
基于上述实施例,抽取转换加载(Extract-Transform-Load,简称为ETL)组件位于订阅***和目标搜索***之间,订阅***将数据发送至ETL组件,并由ETL组件对数据进行加工(包括但不限于解析、去重等处理操作)后得到处理后的数据,并将处理后的数据发送至目标搜索***,从而实现对目标搜索***进行数据同步。
其中,所述目标处理组件包括多个处理组件,其中,所述通过所述订阅***将所述数据发送给目标处理组件,包括:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
需要说明的是,多个类型包括但不限于订阅***中的多个主题(或称为话题,Topic),目标类型可以是目标主题(或称为话题)。从而,在上述实施例中,如图4所述,在订阅***和目标搜索***之间的目标处理组件包括多个处理组件(作为示例,图4中示出了目标处理组件包括处理组件1至处理组件n,其中,n为自然数),并通过多个处理组件实现将订阅***中的数据发送至目标搜索***,可选地,每个处理组件负责一个主题的数据的发送。
在上述实施例中,所述通过所述变更数据捕获组件向订阅***发送第一通知消息,包括:通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
作为一种可选的实施方式,开放数据协议包括但不限于OData(Open DataProtocol)或JdbOpen协议。
以下结合一示例,对上述实施例中的数据同步方法进行解释说明,但不用于限定本发明实施例的技术方案。
相关技术中,在进行数据同步时,是基于TiDB Binlog组件收集各个TiDB实例产生的binlog进而实现同步数据到下游,其中TiDB Binlog组件中的Drainer组件采用单节点归并排序,其无法应对超大规模TiDB集群,同时极端情况下可能会binlog,因此需要反查TiDB中的TiKV节点(其中,存储层KV层位于TiKV节点)的事务状态,进而导致数据同步延迟可达到10分钟,并且TiDB Binlog组件需要单独解决数据安全和服务高可用的问题,实现代价很高。
在一个可选实施例中,提供了一种数据同步方法,如图5所示,该方法包括以下步骤:
步骤501、用户通过用户终端中的智能控制APP发布内容信息;
例如,通过智能控制APP中的发布入口发送内容信息
步骤502、智能控制APP的后台服务器将用户发布的内容信息存储在TiDB数据库中;
步骤503、TiDB数据库向用户终端返回消息,用于通知用户终端内容发布成功;
步骤504、在TiDB数据库对内容信息(即上述实施例中的数据)进行存储时,TiDB数据库中发生了数据变更事件;
需要说明的是,在本实施例中,步骤503和步骤504的执行顺序可以互换,即先执行步骤504,再执行步骤503。
步骤505、变更数据捕获组件对TiDB数据库中发生的数据变更事件进行捕获,即实现了对变更数据的捕获;
其中,数据变更事件,包括但不限于数据写入事件;
步骤506、变更数据捕获组件将捕获到的数据发送至订阅***;
可选地,订阅***为MQ Kafka***。其中,通过变更数据捕获组件通过标准的开放数据协议将变更数据投递到MQ Kafka***;
步骤507、订阅***对接收到的数据进行缓存;
步骤508、订阅***将数据发送至目标处理组件;
在上述实施例中,目标处理组件从订阅***订阅到了TiDB数据库中写入的数据;
步骤509、目标处理组件对接收到的数据进行数据加工,得到处理的数据;
其中,数据加工包括但不限于:解析、去重等处理操作;
步骤510、目标处理组件将处理后的数据发送至目标搜索***;
步骤511、目标搜索***接收处理后的数据,并对接收到的处理后的数据进行存储,向目标处理组件发送存储数据应答,该存储数据应答用于通知目标处理组件处理后的数据已完成存储;
步骤512、目标处理组件向订阅***发送消费数据应答,该消费数据应答用于通知订阅***目标搜索***已完成对数据的消费(可选地,目标搜索***已完成对数据的消费包括但不限于目标搜索***已完成对数据的获取);
步骤513、用户通过用户终端在目标搜索***中进行内容信息(包括但不限于该用户自己先前发送的内容信息(例如上述实施例中的数据),其他用户发布的内容信息)的搜索;
步骤514、目标搜索***将搜索到的内容信息发送至目标终端。
在上述实施例中,涉及到了用户发布内容信息至用户搜索内容信息的全过程,并提供了一种非侵入式、高性能的应用于海量数据连接存储***和搜索***的近实时数据同步方法,其中应用了基于分布式关系数据库TiDB的CDC组件和Kafka订阅***。可选地,可以基于TiDB数据库中的TiKV节点的KV改变日志(KV Change Logs)来实现CDC组件。
在上述实施例中,提供了较高的可靠性,其中,CDC组件是一种无状态节点,通过TiDB中的管理(Placement Driver,简称为PD)组件内部的注册中心(etcd)实现高可用。可选地,上述实施例中可以采用多个CDC组件构成CDC集群,其中,CDC集群支持创建多个同步任务,从而实现向多个不同的下游(包括但不限于目标搜索***以及其他***)进行数据同步。可选地,在CDC集群故障期间,可以重复发相同的数据定义语句/数据操作语句(DDL/DML);ETL组件支持集群,ETL集群的规模可扩展至Kafka中TOPIC的分区数(即TOPIC的总数),即使部分节点故障也不会影响整个数据的消费,以及即使整个集群挂掉也可以重启后继续消费。
通过上述实施例,实现了近实时的数据同步至搜索***的方法,其中,ETL组件进行数据的消费在毫秒级延迟的基础上保证了数据分区消费上顺序性和一致性,并且ETL组件实时写入目标搜索***从而保证了数据同步的实时性,以及ETL组件可扩展,高可靠、灵活,从而实现了业务数据的处理完全和数据的变更捕获逻辑解耦,更方便进行业务开发。
上述实施例中的数据同步方法的同步延迟通常在毫秒级别,具有更良好的扩展性,可以应对超大规模TiDB集群的使用场景,且多个节点写下游不会有单点瓶颈,并且能够保证数据安全性;各节点无状态,很方便实现数据高可用及服务高可用,从捕获数据的变化,到订阅变更数据,数据转换完成,整个数据的同步以实现数据的近实时检索。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,执行拖拽编辑操作时,对各种内容格式的圈中,编辑内容时对各种内容的识别和打开对应的编辑工具,圈中内容的选中以及拖拽不限于右键双击等操作。本发明的保护范围应以权利要求的保护范围为准。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明的另一个实施例,提供了一种数据同步装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6为根据本发明一实施例的数据同步装置的结构框图,该装置包括:
监听模块62,用于通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
第一发送模块64,用于通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
第二发送模块66,用于通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
通过本发明,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。由于数据同步不再需要经历binlog的生成、收集和提交的过程,从而节省了数据同步所需的时间,解决了相关技术中数据同步所需时间较长的技术问题,降低了数据同步所需的时间,提高了数据同步的实时性。
其中,所述数据库包括TiDB数据库,所述监听模块62,还用于:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
需要说明的是,所述第二发送模块66,还用于:通过所述订阅***将所述数据发送给目标处理组件,以及用于通过所述目标处理组件对所述数据进行处理得到处理后的数据,并通过所述目标处理组件将所述处理后的数据发送给所述目标搜索***;其中,如图7所示,所述装置还包括存储模块72,用于:通过所述目标搜索***对所述处理后的数据进行存储。
作为一种可选的实施方式,所述目标处理组件包括抽取转换加载组件,其中,如图8所示,所述装置还包括处理模块82,用于在所述通过所述订阅***将所述数据发送给目标处理组件之后,通过所述抽取转换加载组件对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
其中,存储模块72还用于对处理后的数据进行存储。
在上述实施例中,所述目标处理组件包括多个处理组件,其中,所述第二发送模块66,还用于:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
可选地,所述第一发送模块64,还用于:通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
本发明的实施例还提供了一种数据同步***,如图9所示,该***包括:数据库92,订阅***94和目标搜索***96,其中,
所述数据库92,用于通过所述数据库92中的变更数据捕获组件,监听所述数据库92中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库92中;
所述数据库92,还用于通过所述变更数据捕获组件向所述订阅***94发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***94对所述数据进行存储;
所述订阅***94,用于接收所述第一通知消息,并对所述数据进行存储;
所述订阅***94,还用于将所述数据发送给所述目标搜索***96以对所述目标搜索***96进行数据同步。
通过本发明,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。由于数据同步不再需要经历binlog的生成、收集和提交的过程,从而节省了数据同步所需的时间,解决了相关技术中数据同步所需时间较长的技术问题,降低了数据同步所需的时间,提高了数据同步的实时性。
其中,所述数据库92包括TiDB数据库,所述TiDB数据库,用于:通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
基于上述实施例,所述数据同步***还包括目标处理组件,其中,所述订阅***96,还用于:将所述数据发送给目标处理组件;所述目标处理组件,用于对所述数据进行处理得到处理后的数据,并将所述处理后的数据发送给所述目标搜索***96;其中,所述目标搜索***96,还用于:对所述处理后的数据进行存储。
作为一种可选的实施方式,所述目标处理组件包括抽取转换加载组件,其中,所述目标处理组件,还用于:在所述通过所述订阅***96将所述数据发送给目标处理组件之后,对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;将所述第二数据确定为所述处理后的数据。
其中,所述目标处理组件包括多个处理组件,其中,所述订阅***96还用于:在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***96将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***96获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***96获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
需要说明的是,所述TiDB数据库,还用于:通过所述变更数据捕获组件基于开放数据协议向所述订阅***96发送所述第一通知消息。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
S2,通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
S3,通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
S2,通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
S3,通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
图10为根据本发明实施例的一种可选的电子装置的结构示意图。可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的数据同步方法和数据同步装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据同步方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。作为一种示例,上述存储器1002中可以但不限于包括上述数据同步装置的监听模块62,第一发送模块64以及第二发送模块66。此外,还可以包括但不限于上述数据同步装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输设备1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输设备1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输设备1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1008,用于显示画面;和连接总线1010,用于连接上述电子装置中的各个模块部件。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
2.根据权利要求1所述的方法,其特征在于,所述数据库包括TiDB数据库,其中,所述通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,包括:
通过所述TiDB数据库中的监听组件对所述TiDB数据库的存储层中执行的所述数据变更事件进行监听;
在所述监听组件监听到所述数据变更事件的情况下,向所述变更数据捕获组件发送第二通知消息,其中,所述第二通知消息用于指示所述存储层中写入了所述数据。
3.根据权利要求1所述的方法,其特征在于,所述通过所述订阅***将所述数据发送给目标搜索***,包括:
通过所述订阅***将所述数据发送给目标处理组件,其中,所述目标处理组件用于对所述数据进行处理得到处理后的数据,并将所述处理后的数据发送给所述目标搜索***;
其中,所述方法还包括:
通过所述目标搜索***对所述处理后的数据进行存储。
4.根据权利要求3所述的方法,其特征在于,所述目标处理组件包括抽取转换加载组件,其中,在所述通过所述订阅***将所述数据发送给目标处理组件之后,所述方法还包括:
通过所述抽取转换加载组件对所述数据进行解析得到第一数据,并对所述第一数据进行去重后得到第二数据;
将所述第二数据确定为所述处理后的数据。
5.根据权利要求4所述的方法,其特征在于,所述目标处理组件包括多个处理组件,其中,所述通过所述订阅***将所述数据发送给目标处理组件,包括:
在所述目标处理后的数据属于目标类型的情况下,通过所述订阅***将所述处理后的数据发送给所述目标处理组件中的第一处理组件,其中,所述多个处理组件包括所述第一处理组件,所述第一处理组件用于从所述订阅***获取属于所述目标类型的数据,所述多个处理组件中的每个处理组件用于从所述订阅***获取多个类型中的一个类型的数据,所述多个类型包括所述目标类型。
6.根据权利要求1所述的方法,其特征在于,所述通过所述变更数据捕获组件向订阅***发送第一通知消息,包括:
通过所述变更数据捕获组件基于开放数据协议向所述订阅***发送所述第一通知消息。
7.一种数据同步装置,其特征在于,包括:
监听模块,用于通过数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
第一发送模块,用于通过所述变更数据捕获组件向订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
第二发送模块,用于通过所述订阅***将所述数据发送给目标搜索***以对所述目标搜索***进行数据同步。
8.一种数据同步***,其特征在于,包括:数据库,订阅***和目标搜索***,其中,
所述数据库,用于通过所述数据库中的变更数据捕获组件,监听所述数据库中的数据变更事件,其中,所述数据变更事件用于指示将数据写入到所述数据库中;
所述数据库,还用于通过所述变更数据捕获组件向所述订阅***发送第一通知消息,其中,所述第一通知消息用于指示所述订阅***对所述数据进行存储;
所述订阅***,用于接收所述第一通知消息,并对所述数据进行存储;
所述订阅***,还用于将所述数据发送给所述目标搜索***以对所述目标搜索***进行数据同步。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339972.5A CN112417050A (zh) | 2020-11-25 | 2020-11-25 | 数据同步方法和装置、***、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339972.5A CN112417050A (zh) | 2020-11-25 | 2020-11-25 | 数据同步方法和装置、***、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112417050A true CN112417050A (zh) | 2021-02-26 |
Family
ID=74842794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011339972.5A Pending CN112417050A (zh) | 2020-11-25 | 2020-11-25 | 数据同步方法和装置、***、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417050A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048241A (zh) * | 2022-01-12 | 2022-02-15 | 树根互联股份有限公司 | 工业互联网数据的同步方法、装置和电子设备 |
WO2023123755A1 (zh) * | 2021-12-30 | 2023-07-06 | 中国民航信息网络股份有限公司 | 信息推送的方法及装置、电子设备、存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078464A1 (en) * | 1999-09-16 | 2004-04-22 | Rajan Sreeranga P. | Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services |
CN1953420A (zh) * | 2006-09-26 | 2007-04-25 | 杭州华为三康技术有限公司 | 一种转发隧道报文的方法和一种网络设备 |
CN102882973A (zh) * | 2012-10-11 | 2013-01-16 | 北京邮电大学 | 基于p2p技术的分布式负载均衡***和方法 |
CN107943979A (zh) * | 2017-11-29 | 2018-04-20 | 山东鲁能软件技术有限公司 | 一种数据库之间数据的准实时同步方法及装置 |
CN108197263A (zh) * | 2017-12-30 | 2018-06-22 | 苏州精易会信息技术有限公司 | 数据同步方法 |
CN109582731A (zh) * | 2018-10-18 | 2019-04-05 | 恒峰信息技术有限公司 | 一种数据实时同步方法及*** |
CN110046137A (zh) * | 2017-12-20 | 2019-07-23 | 宏碁云端技术公司 | 将数据流分组并存储至云端存储文件中的***和方法 |
CN110532113A (zh) * | 2019-08-30 | 2019-12-03 | 北京地平线机器人技术研发有限公司 | 信息处理方法、装置、计算机可读存储介质及电子设备 |
CN111274257A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种基于数据的实时同步方法及*** |
CN111382206A (zh) * | 2020-03-20 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及装置 |
-
2020
- 2020-11-25 CN CN202011339972.5A patent/CN112417050A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078464A1 (en) * | 1999-09-16 | 2004-04-22 | Rajan Sreeranga P. | Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services |
CN1953420A (zh) * | 2006-09-26 | 2007-04-25 | 杭州华为三康技术有限公司 | 一种转发隧道报文的方法和一种网络设备 |
CN102882973A (zh) * | 2012-10-11 | 2013-01-16 | 北京邮电大学 | 基于p2p技术的分布式负载均衡***和方法 |
CN107943979A (zh) * | 2017-11-29 | 2018-04-20 | 山东鲁能软件技术有限公司 | 一种数据库之间数据的准实时同步方法及装置 |
CN110046137A (zh) * | 2017-12-20 | 2019-07-23 | 宏碁云端技术公司 | 将数据流分组并存储至云端存储文件中的***和方法 |
CN108197263A (zh) * | 2017-12-30 | 2018-06-22 | 苏州精易会信息技术有限公司 | 数据同步方法 |
CN109582731A (zh) * | 2018-10-18 | 2019-04-05 | 恒峰信息技术有限公司 | 一种数据实时同步方法及*** |
CN110532113A (zh) * | 2019-08-30 | 2019-12-03 | 北京地平线机器人技术研发有限公司 | 信息处理方法、装置、计算机可读存储介质及电子设备 |
CN111274257A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种基于数据的实时同步方法及*** |
CN111382206A (zh) * | 2020-03-20 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023123755A1 (zh) * | 2021-12-30 | 2023-07-06 | 中国民航信息网络股份有限公司 | 信息推送的方法及装置、电子设备、存储介质 |
CN114048241A (zh) * | 2022-01-12 | 2022-02-15 | 树根互联股份有限公司 | 工业互联网数据的同步方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918349B (zh) | 日志处理方法、装置、存储介质和电子装置 | |
CN110908879A (zh) | 埋点数据的上报方法、装置、终端和存储介质 | |
CN111046011B (zh) | 日志收集方法、***、装置、电子设备及可读存储介质 | |
CN111090699A (zh) | 业务数据的同步方法和装置、存储介质、电子装置 | |
CN111800443B (zh) | 数据处理***和方法、装置以及电子设备 | |
CN105653425A (zh) | 基于复杂事件处理引擎的监控*** | |
CN102446222A (zh) | 一种网页内容预加载方法、装置及*** | |
CN102594598A (zh) | 一种日志管理***及其实现方法 | |
CA2896865A1 (en) | Method and system for using a recursive event listener on a node in hierarchical data structure | |
CN110837423A (zh) | 一种自动导引运输车数据采集的方法和装置 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN111338893A (zh) | 进程日志处理方法、装置、计算机设备以及存储介质 | |
CN112417050A (zh) | 数据同步方法和装置、***、存储介质及电子装置 | |
CN110928934A (zh) | 一种用于业务分析的数据处理方法和装置 | |
CN113138900B (zh) | 一种数据采集处理方法、装置和电子设备 | |
CN112445861B (zh) | 信息处理方法、装置、***及存储介质 | |
CN112579406B (zh) | 一种日志调用链生成方法和装置 | |
CN112363838A (zh) | 数据处理方法及装置、存储介质、电子装置 | |
CN112732663A (zh) | 一种日志信息处理方法及装置 | |
CN109684279B (zh) | 一种数据处理方法及*** | |
CN112685486B (zh) | 数据库集群的数据管理方法、装置、电子设备及存储介质 | |
CN113312174A (zh) | 一种信息查询方法、装置、电子设备及容器管理*** | |
CN112417015A (zh) | 数据分发方法和装置、存储介质及电子装置 | |
CN113872814A (zh) | 内容分发网络的信息处理方法、装置和*** | |
CN107330089B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210226 |