CN110750592A - 数据同步的方法、装置和终端设备 - Google Patents

数据同步的方法、装置和终端设备 Download PDF

Info

Publication number
CN110750592A
CN110750592A CN201910840696.1A CN201910840696A CN110750592A CN 110750592 A CN110750592 A CN 110750592A CN 201910840696 A CN201910840696 A CN 201910840696A CN 110750592 A CN110750592 A CN 110750592A
Authority
CN
China
Prior art keywords
data
byte stream
database
target
target 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
Application number
CN201910840696.1A
Other languages
English (en)
Other versions
CN110750592B (zh
Inventor
丁永
郑泽宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910840696.1A priority Critical patent/CN110750592B/zh
Publication of CN110750592A publication Critical patent/CN110750592A/zh
Application granted granted Critical
Publication of CN110750592B publication Critical patent/CN110750592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例适用于数据处理技术领域,提供了一种数据同步的方法、装置和终端设备,所述方法包括:采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;基于所述数据链路,生成源数据库与目标数据库之间的多个数据传输通道;当检测到针对源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;通过多个数据传输通道,将字节流传输至目标数据库,所述目标数据库用于将字节流编译为操作行为,并基于时间信息在目标数据库中重演所述操作行为,以实现数据同步。本实施例解决了大数据库的数据一致性处理时,受计算机资源影响较大、时效性较低的问题。

Description

数据同步的方法、装置和终端设备
技术领域
本发明属于数据处理技术领域,特别是涉及一种数据同步的方法、一种数据同步的装置、一种终端设备及一种计算机可读存储介质。
背景技术
在分布式存储领域,为了增加系统的高可用性,经常将同一份数据存储多个副本。但是此做法也带来了数据一致性的问题。数据一致性是指事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。保证数据一致性可以在事务完成时,使所有数据都具有一致的状态。
现有技术中,大数据领域的数据一致性处理多采用批量处理、多线程拉取的同步方式实现。例如,对于一个sqoop(一种批量数据迁移工具)进程,可以分成多线程拉取数据。但是,多线程批量拉取数据受链路稳定性的影响较大,容易因为计算机资源问题出现进程阻塞、甚至异常退出等问题。并且,批量拉取数据的时效性较低,当天存放到业务系统数据库的数据只能按天增量拉取,在明天才会被同步到大数据数据库,容易导致大数据侧业务分析处理的滞后。
发明内容
有鉴于此,本发明实施例提供了一种数据同步的方法、装置和终端设备,以解决现有技术中大数据领域的数据同步受计算机资源影响较大、时效性较低,容易出现进程阻塞、甚至异常退出等情况,同步后的数据往往只能第二日才可正常使用的问题。
本发明实施例的第一方面提供了一种数据同步的方法,包括:
采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
本发明实施例的第二方面提供了一种数据同步的装置,包括:
构建模块,用于采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
生成模块,用于基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
解析模块,用于当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
同步模块,用于通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述数据同步的方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面所述数据同步的方法的步骤。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例,通过采用分布式的OGG链路设计方式,并结合Docker、Kubernetes、Kafka、Zookeeper等组件技术,可以在源数据库与目标数据库之间构建出包括多个数据传输通道的数据链路,实现从源端到终端全链路的高可用。当检测到针对源数据库中任一数据的操作行为时,OGG工具可以将上述操作行为解析为携带有时间信息的字节流,并通过多个数据传输通道传输至目标数据库,由目标数据库对接收到的字节流进行编译,得到与源数据库相同的操作行为,并基于时间先后顺序在目标数据库中重演这些操作行为,实现数据同步。本实施例基于OGG工具来解析源数据库的增量变化,然后将变化信息发送到多个数据传输通道,目标数据库再消费这些增量变化,以流处理的方式,同步执行修改操作,实现实时同步功能,解决了数据同步的时效问题。进一步地,借助于实时性功能的实现,源端数据在被执行插入/删除/更新等操作时,可以在目标端数据库进行相应的操作,满足了对数据完整性的要求,保证了数据的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的一种数据同步的方法的步骤流程示意图;
图2是本发明一个实施例的另一种数据同步的方法的步骤流程示意图;
图3是本发明一个实施例的一种数据同步的装置的示意图;
图4是本发明一个实施例的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本发明。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
下面通过具体实施例来说明本发明的技术方案。
参照图1,示出了本发明一个实施例的一种数据同步的方法的步骤流程示意图,具体可以包括如下步骤:
S101、采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
OGG是Oracle GoldenGate的简称,是一种基于日志的结构化数据复制备份软件,它可以通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库和目标数据库之间的同步。
在具体实现中,可以通过在源数据库和目标数据库中安装Oracle GoldenGate工具构建出两个数据库之间的数据链路,即OGG链路。
在本发明实施例中,源数据库和目标数据库可以是大数据库,也可以普通数据库,本实施例对此不作限定。
S102、基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
在本发明实施例中,在构建出OGG链路的基础上,还可以结合多种组件技术,在该OGG链路中配置出多个数据传输通道,通过多个数据传输通道实现对数据增量变化的传递,提高OGG全链路的高可用性。
在具体实现中,可以结合Docker、Kubernetes、Kafka、Zookeeper等组件技术完成数据传输通道的配置,提高OGG全链路的高可用性。
Docker是一个应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Kubernetes是一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
Zookeeper是一个分布式的应用程序协调服务,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
在本发明实施例中,可以分别在源数据库和目标数据库配置上述多种组件技术,从而生成多个数据传输通道。多个数据传输通道其实质上是一种消息队列,可以实时地对数据增量变化进行传递。
S103、当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
在本发明实施例中,针对源数据库中数据的操作行为可以包括插入、更新及删除等操作行为。上述操作行为可以实时地被OGG工具检测到。
在具体实现中,上述各个操作行为在被执行时,会生成相应的日志文件,OGG工具可以通过检测日志文件的增加来检测到是否产生某一操作行为。
OGG工具在检测到日志文件中存在上述操作行为的信息后,可以将其解析为字节流,即,将操作行为对应的日志信息解析为一串以0和1表示的流数据。
需要说明的是,针对源数据库中数据的各种操作都是按照一定的时间先后顺序进行的,日志文件中的信息携带有执行本次操作行为的具体时间,该时间可以通过每条消息在文件中的位置来确定。
在本发明实施例中,针对源数据库的操作行为在被解析为字节流后,该字节流中可以携带有该操作行为的时间信息。
S104、通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
在本发明实施例中,OGG工具解析得到的字节流会被发送至多个数据传输通道,目标数据库可以实时感知到多个数据传输通道中存储的字节流,并通过数据传输通道获取这些字节流。由于存在多个数据传输通道,能够保证上述字节流不会丢失。
目标数据库在获取到字节流后,可以将其编译为具体的操作行为,如数据的插入、更新及删除等行为。
通常,所有的文件在硬盘中存储或在传输时都是以字节的方式进行的。目标数据库在接收到字节流后,可以按照生成字节流时所指定的编码方式将其编译为记录有源数据库中具体的操作行为的文件。然后,在本地数据库中对上述各个操作行为重演一次,从而完成源数据库与目标数据库之间的同步。
在具体实现中,目标数据库可以首先确定源数据库中发生上述各个操作行为的时间先后顺序,然后按照该顺序,逐个执行各个操作行为。即,源数据库中越早发生的操作行为,在目标数据库重演时顺序越靠前。
例如,源数据库中各个操作行为的先后顺序分别是插入-更新-删除,则在目标数据库重演时,其顺序也应当是插入-更新-删除。
在本发明实施例中,通过采用分布式的OGG链路设计方式,并结合Docker、Kubernetes、Kafka、Zookeeper等组件技术,可以在源数据库与目标数据库之间构建出包括多个数据传输通道的数据链路,实现从源端到终端全链路的高可用。当检测到针对源数据库中任一数据的操作行为时,OGG工具可以将上述操作行为解析为携带有时间信息的字节流,并通过多个数据传输通道传输至目标数据库,由目标数据库对接收到的字节流进行编译,得到与源数据库相同的操作行为,并基于时间先后顺序在目标数据库中重演这些操作行为,实现数据同步。本实施例基于OGG工具来解析源数据库的增量变化,然后将变化信息发送到多个数据传输通道,目标数据库再消费这些增量变化,以流处理的方式,同步执行修改操作,实现实时同步功能,解决了数据同步的时效问题。进一步地,借助于实时性功能的实现,源端数据在被执行插入/删除/更新等操作时,可以在目标端数据库进行相应的操作,满足了对数据完整性的要求,保证了数据的准确性。
参照图2,示出了本发明一个实施例的另一种数据同步的方法的步骤流程示意图,具体可以包括如下步骤:
S201、采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
在本发明实施例中,源数据库和目标数据库可以是大数据库。可以通过在源数据库和目标数据库中安装Oracle GoldenGate工具构建出两个数据库之间的数据链路,即OGG链路。
S202、基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
在本发明实施例中,在构建出OGG链路的基础上,可以结合Docker、Kubernetes、Kafka、Zookeeper等组件技术,在该OGG链路中配置出多个数据传输通道,通过多个数据传输通道实现对数据增量变化的传递,提高OGG全链路的高可用性。
在具体实现中,可以首先采用预置的Docker组件和Kubernetes组件,分别在源数据库和目标数据库建立多个应用容器,这些应用容器将会被作为构建待部署的Zookeeper消息集群的容器。然后,基于预置的Zookeeper组件,分别在上述各个应用容器中创建配置文件,生成Zookeeper实例。通过将各个应用容器中配置文件的参数设置为相同,可以建立各个应用容器中的Zookeeper实例之间的通信连接,构建出Zookeeper消息集群;在将预置的Kafka组件注册至Zookeeper消息集群中后,便可以获得源数据库与目标数据库之间的多个数据传输通道。
例如,可以结合Docker组件和Kubernetes组件,分别在源数据库端和目标数据库端构建多个应用实例,通过内置的负载均衡策略,实现对各个应用实例的管理、发现和访问,达到高可用目的。上述各个应用实例即是后续部署的Zookeeper消息集群的应用容器(类似于虚拟机)。然后,可以结合Kafka组件和Zookeeper组件,构建出OGG链路的多个数据传输通道。
在本发明实施例中,为了保证数据链路的高可用性,可以使用集群的形式部署Zookeeper。
首先,可以在各个应用容器中分别安装Zookeeper软件,并各自创建一个配置文件(zoo.cfg),保证每个应用容器中配置文件的参数都设置为相同。由于Zookeeper的功能特性是通过Zookeeper配置文件来进行控制管理的,在设置相同的配置文件参数后,通过运行Zookeeper软件可以使得各个应用容器中生成的Zookeeper实例能够互相通信,从而构建出Zookeeper集群。这样,只要服务器集群中大多数(超过一半)的Zookeeper服务启动了,那么总的Zookeeper服务就将是可用的。然后,Zookeeper集群可以作为注册中心接受各个容器中Kafka的注册,并对Kafka进行管理。作为一种分布式消息队列,Kafka在注册到Zookeeper集群后,相互之间形成的各个消息队列便可作为OGG链路的多个数据传输通道。
这样,源数据库端生产的数据增量变化信息可以被存储至消息集群中,通过生成多个副本集,使得即使在某个传输通道阻塞时,也能够通过其他传输通道传输数据,保证数据不丢失,实现数据通道链路的高可用性。
具体地,源数据库端生产的数据增量变化信息可以认为是一个topic(主题),每个topic将会被分成多个partition(区),每个partition在存储层面是append log(增量日志)文件。任何发布到此partition的消息都会被直接追加到log(日志)文件的尾部,每条消息在文件中的位置称为offset(偏移量),offset为一个long(长整型)型数字,它唯一地标记一条消息。
在实际传输过程中,一个topic的多个partitions被分布在多个数据传输通道中分别进行传输。每个partition通过选举的方式确定一个leader(主传输通道),由leader负责所有的读写操作,并在其他传输通道对应的应用容器中形成多个副本集。当leader阻塞时,将会有follower(其他传输通道)来接管成为新的leader执行传输任务。一般地,有多少个partitions就意味着有多少个leader,Kafka会将leader均衡的分散在每个实例上,来确保整体的性能稳定。
对于目标数据库端,在其消费到的partitions时,可以根据offset“线性”地向前驱动。即消息将依顺序被消费,源数据库端的数据增量变化也会按照时间顺序在目标数据库端进行重演。
S203、获取所述源数据库的日志文件,所述日志文件用于记录针对所述源数据库的各种操作行为,所述各种操作行为分别具有相应的类型标识信息;
通常,针对源数据库的各种行为在被执行时,会生成相应的日志文件,OGG工具可以通过检测日志文件的增加来检测到是否产生某一行为。
在本发明实施例中,日志文件在记录针对源数据库的各种操作行为时,也将记录执行该行为的时间信息,以及该行为的具体类型。
S204、提取所述日志文件中所述类型标识信息为目标类型的目标信息,所述目标类型包括数据插入、数据更新及数据删除;
在本发明实施例中,目标类型可以包括数据插入、数据更新及数据删除等等。
由于生成的日志文件可能包括各种不同类型的信息。在检测是否包括某一操作行为时,可以根据日志文件中的类型标识信息,从全部的日志文件中过滤出仅仅针对数据的插入、更新及删除等操作的信息。
S205、将所述目标信息解析为字节流,所述字节流中携带有所述操作行为的时间信息;
OGG工具在检测到日志文件中存在上述操作行为的信息后,可以将其解析为字节流,即,将操作行为对应的日志信息解析为一串以0和1表示的流数据。
S206、确定所述多个数据传输通道中的主传输通道;
S207、复制所述字节流,得到所述字节流的多个备份文件,并将所述字节流的多个备份文件分别传输至多个非主传输通道进行存储;
在本发明实施例中,在传输某一字节流前,需要首先确定一个主传输通道,并由该主传输进行当前字节流的传输任务。
在确定主传输通道的同时,该字节流还会以副本的形式备份至其他传输通道对应的应用容器中。
S208、通过所述主传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步;
需要说明的是,当主传输通道阻塞时,可以再次从多个非主传输通道中确定新的主传输通道,然后通过新的主传输通道,将字节流的备份文件传输至目标数据库,以提高数据通道的可用性。
目标数据库在获取到字节流后,可以将其编译为具体的操作行为,如数据的插入、更新及删除等行为。
需要说明的是,由于针对源数据库中数据的各种操作都是按照一定的时间先后顺序进行的,日志文件中的上述操作信息携带有本次操作的具体时间,该时间可以通过每条消息在文件中的位置来确定。因此,目标数据库在将字节流编译为操作行为时,得到的操作行为信息中也应当包括有该操作的具体时间。
然后,目标数据库可以按照时间先后顺序,将上述各个操作行为重演一次,从而完成源数据库与目标数据库之间的同步。
S209、在预设时间到达时,删除存储于所述多个非主传输通道中的所述字节流的多个备份文件。
在本发明实施例中,根据应用容器中的配置要求,各个应用容器中备份的日志文件(字节流的备份文件)将会在保留一定的时间之后删除。
例如,若日志文件需保留2天,那么在两天后,存储于数据传输通道中的文件会被清除,无论其中的消息是否被消费。Kafka通过这种简单的手段,来释放磁盘空间,以及减少消息消费之后由于文件内容改动带来的磁盘IO开支。
在本发明实施例中,通过采用分布式的OGG链路设计方式,结合Docker、Kubernetes、Kafka、Zookeeper等组件技术,构建出从源端到目标端的多个数据传输通道,实现全链路的高可用,解决了数据同步时链路不稳定的问题。其次,本实施例利用大数据集群高吞吐量优势,采用流处理等方式,实现实时同步功能,可以实现毫秒级的数据同步,解决了数据同步的时效问题。第三,本实施例借助于实时性功能的实现,源端数据在被执行插入/删除/更新等操作时,可以在目标端数据库进行相应的操作,能够满足实时的增删改查等需求,保证了数据的完整性和准确性。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图3,示出了本发明一个实施例的一种数据同步的装置的示意图,具体可以包括如下模块:
构建模块301,用于采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
生成模块302,用于基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
解析模块303,用于当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
同步模块304,用于通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
在本发明实施例中,所述生成模块302具体可以包括如下子模块:
应用容器建立子模块,用于采用预置的Docker组件和Kubernetes组件,分别在所述源数据库和所述目标数据库建立多个应用容器;
配置文件创建子模块,用于基于预置的Zookeeper组件,分别在各个应用容器中创建配置文件,生成Zookeeper实例;
消息集群构建子模块,用于通过将所述各个应用容器中配置文件的参数设置为相同,建立所述各个应用容器中的Zookeeper实例之间的通信连接,以构建出Zookeeper消息集群;
数据传输通道生成子模块,用于将预置的Kafka组件注册至所述Zookeeper消息集群中,获得所述源数据库与所述目标数据库之间的多个数据传输通道。
在本发明实施例中,所述解析模块303具体可以包括如下子模块:
日志文件获取子模块,用于获取所述源数据库的日志文件,所述日志文件用于记录针对所述源数据库的各种操作行为,所述各种操作行为分别具有相应的类型标识信息;
目标信息提取子模块,用于提取所述日志文件中所述类型标识信息为目标类型的目标信息,所述目标类型包括数据插入、数据更新及数据删除;
目标信息解析子模块,用于将所述目标信息解析为字节流。
在本发明实施例中,所述同步模块304具体可以包括如下子模块:
主传输通道确定子模块,用于确定所述多个数据传输通道中的主传输通道;
字节流传输子模块,用于通过所述主传输通道,将所述字节流传输至所述目标数据库;
字节流备份子模块,用于复制所述字节流,得到所述字节流的多个备份文件,并将所述字节流的多个备份文件分别传输至多个非主传输通道进行存储。
在本发明实施例中,所述主传输通道确定子模块还用于在所述主传输通道阻塞时,从所述多个非主传输通道中确定新的主传输通道,通过所述新的主传输通道,将所述字节流的备份文件传输至所述目标数据库;
在本发明实施例中,所述同步模块304还可以包括如下子模块:
备份文件删除子模块,用于在预设时间到达时,删除存储于所述多个非主传输通道中的所述字节流的多个备份文件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图4,示出了本发明一个实施例的一种终端设备的示意图。如图4所示,本实施例的终端设备400包括:处理器410、存储器420以及存储在所述存储器420中并可在所述处理器410上运行的计算机程序421。所述处理器410执行所述计算机程序421时实现上述数据同步的方法各个实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器410执行所述计算机程序421时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至304的功能。
示例性的,所述计算机程序421可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器420中,并由所述处理器410执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序421在所述终端设备400中的执行过程。例如,所述计算机程序421可以被分割成构建模块、生成模块、解析模块、同步模块,各模块具体功能如下:
构建模块,用于采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
生成模块,用于基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
解析模块,用于当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
同步模块,用于通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
所述终端设备400可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备400可包括,但不仅限于,处理器410、存储器420。本领域技术人员可以理解,图4仅仅是终端设备400的一种示例,并不构成对终端设备400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备400还可以包括输入输出设备、网络接入设备、总线等。
所述处理器410可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器420可以是所述终端设备400的内部存储单元,例如终端设备400的硬盘或内存。所述存储器420也可以是所述终端设备400的外部存储设备,例如所述终端设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器420还可以既包括所述终端设备400的内部存储单元也包括外部存储设备。所述存储器420用于存储所述计算机程序421以及所述终端设备400所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据同步的方法,其特征在于,包括:
采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道的步骤包括:
采用预置的Docker组件和Kubernetes组件,分别在所述源数据库和所述目标数据库建立多个应用容器;
基于预置的Zookeeper组件,分别在各个应用容器中创建配置文件,生成Zookeeper实例;
通过将所述各个应用容器中配置文件的参数设置为相同,建立所述各个应用容器中的Zookeeper实例之间的通信连接,以构建出Zookeeper消息集群;
将预置的Kafka组件注册至所述Zookeeper消息集群中,获得所述源数据库与所述目标数据库之间的多个数据传输通道。
3.根据权利要求1所述的方法,其特征在于,所述当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流的步骤包括:
获取所述源数据库的日志文件,所述日志文件用于记录针对所述源数据库的各种操作行为,所述各种操作行为分别具有相应的类型标识信息;
提取所述日志文件中所述类型标识信息为目标类型的目标信息,所述目标类型包括数据插入、数据更新及数据删除;
将所述目标信息解析为字节流。
4.根据权利要求1所述的方法,其特征在于,所述通过所述多个数据传输通道,将所述字节流传输至所述目标数据库的步骤包括:
确定所述多个数据传输通道中的主传输通道;
通过所述主传输通道,将所述字节流传输至所述目标数据库;
复制所述字节流,得到所述字节流的多个备份文件,并将所述字节流的多个备份文件分别传输至多个非主传输通道进行存储。
5.根据权利要求4所述的方法,其特征在于,还包括:
当所述主传输通道阻塞时,从所述多个非主传输通道中确定新的主传输通道,通过所述新的主传输通道,将所述字节流的备份文件传输至所述目标数据库;
在预设时间到达时,删除存储于所述多个非主传输通道中的所述字节流的多个备份文件。
6.一种数据同步的装置,其特征在于,包括:
构建模块,用于采用预置的OGG工具,构建源数据库与目标数据库之间的数据链路;
生成模块,用于基于所述数据链路,生成所述源数据库与所述目标数据库之间的多个数据传输通道;
解析模块,用于当检测到针对所述源数据库中任一数据的操作行为时,将所述操作行为解析为字节流,所述字节流中携带有所述操作行为的时间信息;
同步模块,用于通过所述多个数据传输通道,将所述字节流传输至所述目标数据库,所述目标数据库用于将所述字节流编译为所述操作行为,并基于所述时间信息在所述目标数据库中重演所述操作行为,以实现数据同步。
7.根据权利要求6所述的装置,其特征在于,所述解析模块包括:
日志文件获取子模块,用于获取所述源数据库的日志文件,所述日志文件用于记录针对所述源数据库的各种操作行为,所述各种操作行为分别具有相应的类型标识信息;
目标信息提取子模块,用于提取所述日志文件中所述类型标识信息为目标类型的目标信息,所述目标类型包括数据插入、数据更新及数据删除;
目标信息解析子模块,用于将所述目标信息解析为字节流。
8.根据权利要求7所述的装置,其特征在于,所述同步模块包括:
主传输通道确定子模块,用于确定所述多个数据传输通道中的主传输通道;
字节流传输子模块,用于通过所述主传输通道,将所述字节流传输至所述目标数据库;
字节流备份子模块,用于复制所述字节流,得到所述字节流的多个备份文件,并将所述字节流的多个备份文件分别传输至多个非主传输通道进行存储。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述数据同步的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据同步的方法的步骤。
CN201910840696.1A 2019-09-06 2019-09-06 数据同步的方法、装置和终端设备 Active CN110750592B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910840696.1A CN110750592B (zh) 2019-09-06 2019-09-06 数据同步的方法、装置和终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910840696.1A CN110750592B (zh) 2019-09-06 2019-09-06 数据同步的方法、装置和终端设备

Publications (2)

Publication Number Publication Date
CN110750592A true CN110750592A (zh) 2020-02-04
CN110750592B CN110750592B (zh) 2023-10-20

Family

ID=69276034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910840696.1A Active CN110750592B (zh) 2019-09-06 2019-09-06 数据同步的方法、装置和终端设备

Country Status (1)

Country Link
CN (1) CN110750592B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110794791A (zh) * 2019-11-18 2020-02-14 吉林烟草工业有限责任公司 卷烟厂制造执行系统与制丝集控系统的数据传输方法
CN112231152A (zh) * 2020-12-11 2021-01-15 北京国导科技有限公司 数据同步方法、远程服务器、客户端以及系统
CN113239121A (zh) * 2021-06-07 2021-08-10 中国农业银行股份有限公司 数据同步方法及设备
CN113822657A (zh) * 2021-11-24 2021-12-21 太平金融科技服务(上海)有限公司深圳分公司 业务监督方法、装置、计算机设备以及存储介质
WO2022012305A1 (zh) * 2020-07-13 2022-01-20 华为技术有限公司 推理应用中模型文件的管理方法及装置
CN114691231A (zh) * 2020-12-29 2022-07-01 深圳云天励飞技术股份有限公司 一种数据流水编排方法、装置、可读存储介质及终端设备
WO2022142900A1 (zh) * 2020-12-29 2022-07-07 深圳云天励飞技术股份有限公司 一种数据流水编排方法、装置、存储介质及终端设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625581B1 (en) * 1994-04-22 2003-09-23 Ipf, Inc. Method of and system for enabling the access of consumer product related information and the purchase of consumer products at points of consumer presence on the world wide web (www) at which consumer product information request (cpir) enabling servlet tags are embedded within html-encoded documents
CN104391926A (zh) * 2014-11-20 2015-03-04 浪潮(北京)电子信息产业有限公司 一种同步数据复制方法及装置
US20150207874A1 (en) * 2014-01-21 2015-07-23 International Business Mchines Corporation Optimizing data transfer across multiple asynchronous data replication sessions using shared bandwidth
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法
CN109656999A (zh) * 2018-10-11 2019-04-19 平安科技(深圳)有限公司 大数据量的数据同步方法、设备、存储介质及装置
CN110008286A (zh) * 2019-03-26 2019-07-12 华南理工大学 一种注塑成型装备大数据采集和存储系统及方法
CN110162571A (zh) * 2019-04-26 2019-08-23 厦门市美亚柏科信息股份有限公司 一种异构数据库之间数据同步的系统、方法、存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625581B1 (en) * 1994-04-22 2003-09-23 Ipf, Inc. Method of and system for enabling the access of consumer product related information and the purchase of consumer products at points of consumer presence on the world wide web (www) at which consumer product information request (cpir) enabling servlet tags are embedded within html-encoded documents
US20150207874A1 (en) * 2014-01-21 2015-07-23 International Business Mchines Corporation Optimizing data transfer across multiple asynchronous data replication sessions using shared bandwidth
CN104391926A (zh) * 2014-11-20 2015-03-04 浪潮(北京)电子信息产业有限公司 一种同步数据复制方法及装置
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法
CN109656999A (zh) * 2018-10-11 2019-04-19 平安科技(深圳)有限公司 大数据量的数据同步方法、设备、存储介质及装置
CN110008286A (zh) * 2019-03-26 2019-07-12 华南理工大学 一种注塑成型装备大数据采集和存储系统及方法
CN110162571A (zh) * 2019-04-26 2019-08-23 厦门市美亚柏科信息股份有限公司 一种异构数据库之间数据同步的系统、方法、存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110794791A (zh) * 2019-11-18 2020-02-14 吉林烟草工业有限责任公司 卷烟厂制造执行系统与制丝集控系统的数据传输方法
WO2022012305A1 (zh) * 2020-07-13 2022-01-20 华为技术有限公司 推理应用中模型文件的管理方法及装置
CN112231152A (zh) * 2020-12-11 2021-01-15 北京国导科技有限公司 数据同步方法、远程服务器、客户端以及系统
CN114691231A (zh) * 2020-12-29 2022-07-01 深圳云天励飞技术股份有限公司 一种数据流水编排方法、装置、可读存储介质及终端设备
WO2022142900A1 (zh) * 2020-12-29 2022-07-07 深圳云天励飞技术股份有限公司 一种数据流水编排方法、装置、存储介质及终端设备
CN113239121A (zh) * 2021-06-07 2021-08-10 中国农业银行股份有限公司 数据同步方法及设备
CN113822657A (zh) * 2021-11-24 2021-12-21 太平金融科技服务(上海)有限公司深圳分公司 业务监督方法、装置、计算机设备以及存储介质
CN113822657B (zh) * 2021-11-24 2022-04-01 太平金融科技服务(上海)有限公司深圳分公司 业务监督方法、装置、计算机设备以及存储介质

Also Published As

Publication number Publication date
CN110750592B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN110750592A (zh) 数据同步的方法、装置和终端设备
US10691716B2 (en) Dynamic partitioning techniques for data streams
US10795905B2 (en) Data stream ingestion and persistence techniques
US10467105B2 (en) Chained replication techniques for large-scale data streams
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US9276959B2 (en) Client-configurable security options for data streams
EP3069228B1 (en) Partition-based data stream processing framework
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
US10481948B2 (en) Data transfer in a collaborative file sharing system
CA2930026C (en) Data stream ingestion and persistence techniques
US10560544B2 (en) Data caching in a collaborative file sharing system
US11294758B2 (en) Automated methods and systems to classify and troubleshoot problems in information technology systems and services
US10338958B1 (en) Stream adapter for batch-oriented processing frameworks
US9900374B2 (en) Application bundle management across mixed file system types
US10498817B1 (en) Performance tuning in distributed computing systems
CN107943618B (zh) 仿真系统的数据快速恢复方法及存储介质
US9063826B2 (en) Process mapping in parallel computing
CN113783667A (zh) 信息传输方法、装置、计算机系统和计算机可读存储介质
CN113157645A (zh) 集群数据迁移方法、装置、设备及存储介质
CN115550382A (zh) 配置项同步方法、装置、系统以及设备
CN113760836A (zh) 一种宽表计算方法和装置
Martin Minimizing Overhead for Fault Tolerance in Event Stream Processing Systems

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