CN111831748B - 数据同步方法、装置及存储介质 - Google Patents
数据同步方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111831748B CN111831748B CN202010620729.4A CN202010620729A CN111831748B CN 111831748 B CN111831748 B CN 111831748B CN 202010620729 A CN202010620729 A CN 202010620729A CN 111831748 B CN111831748 B CN 111831748B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- target server
- message queue
- incremental
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000001360 synchronised effect Effects 0.000 claims abstract description 33
- 230000008859 change Effects 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 20
- 230000010076 replication Effects 0.000 claims description 18
- 238000005192 partition Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 17
- 230000008878 coupling Effects 0.000 abstract description 14
- 238000010168 coupling process Methods 0.000 abstract description 14
- 238000005859 coupling reaction Methods 0.000 abstract description 14
- 230000004044 response Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 2
- 230000032297 kinesis Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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
- G06F16/275—Synchronous 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
本公开涉及一种数据同步方法、装置及存储介质,该方法包括:接收目标服务器发送的数据同步请求;从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备;将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步。本公开的实施例提供了异构存储设备间的数据同步方案,数据同步时只需要向目标服务器发送增量数据,提高了同步效率;另外,使用消息队列实现数据同步,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
Description
技术领域
本公开涉及数据处理技术领域,具体地,涉及一种数据同步方法、装置及存储介质。
背景技术
HBase是一个分布式的、面向列的开源数据库,可以存储海量数据,HBase集群间可以实现数据同步,在HBase集群间同步数据时,常用的同步方法,主要是全量同步方法,即每次同步都对全部数据进行一次拷贝,全量同步方法由于每次同步都需要拷贝全部数据,数据量相当大,因此同步所需时长较长,同步效率低。
发明内容
为克服相关技术中存在的问题,本公开的目的是提供一种数据同步方法、装置及存储介质,能够实现异构存储设备间的数据同步,且能够提高同步效率。
为了实现上述目的,根据本公开实施例的第一方面,提供一种数据同步方法,所述方法包括:
接收目标服务器发送的数据同步请求;
从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步。
可选地,在接收目标服务器发送的数据同步请求之前,还包括:
从所述HBase服务器获取所述增量数据,并为所述增量数据添加增量标识;
将所述增量数据存入所述消息队列;
所述从消息队列中提取增量数据,包括:
根据所述增量标识从所述消息队列中提取所述增量数据。
可选地,所述HBase服务器包括扩展的HBase复制功能接口,所述从所述HBase服务器获取所述增量数据,包括:
通过所述扩展的HBase复制功能接口从所述HBase服务器获取所述增量数据。
可选地,将所述增量数据存入所述消息队列,包括:
确定所述目标服务器支持的目标格式;
将所述增量数据的格式转换成所述目标格式;
将转换之后的所述增量数据存入所述消息队列。
可选地,将所述增量数据存入所述消息队列,包括:
将所述HBase服务器中每个域的所述增量数据存入所述消息队列中与所述每个域对应的分区中,其中,同一个域的增量数据存入所述消息队列中的同一个分区。
可选地,在从所述HBase服务器获取所述增量数据之前,所述方法还包括:
从所述HBase服务器获取在所述预设同步时间节点之前产生的全量数据;
将所述全量数据转发给所述目标服务器,以使得所述目标服务器根据所述全量数据进行同步对齐。
可选地,在从消息队列中提取增量数据之前,还包括:
根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
所述从消息队列中提取增量数据,包括:
在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
可选地,所述方法还包括:
接收所述目标服务器反馈的同步成功确认消息;
删除所述消息队列中存储的所述增量数据。
根据本公开实施例的第二方面,提供一种数据同步装置,所述装置包括:
第一接收模块,被配置为接收目标服务器发送的数据同步请求;
提取模块,被配置为从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
第一转发模块,被配置为将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步。
可选地,所述装置还包括:
第一获取模块,被配置为从所述HBase服务器获取所述增量数据,并为所述增量数据添加增量标识;
存储模块,被配置为将所述增量数据存入所述消息队列;
所述提取模块具体被配置为,根据所述增量标识从所述消息队列中提取所述增量数据。
可选地,所述HBase服务器包括扩展的HBase复制功能接口;
所述第一获取模块具体被配置为,通过所述扩展的HBase复制功能接口从所述HBase服务器获取所述增量数据。
可选地,所处存储模块包括:
确定子模块,被配置为确定所述目标服务器支持的目标格式;
转换子模块,被配置为将所述增量数据的格式转换成所述目标格式;
存储子模块,被配置为将转换之后的所述增量数据存入所述消息队列。
可选地,所处存储模块具体用于,将所述HBase服务器中每个域的所述增量数据存入所述消息队列中与所述每个域对应的分区中,其中,同一个域的增量数据存入所述消息队列中的同一个分区。
可选地,所述装置还包括:
第二获取模块,被配置为从所述HBase服务器获取在所述预设同步时间节点之前产生的全量数据;
第二转发模块,被配置为将所述全量数据转发给所述目标服务器,以使得所述目标服务器根据所述全量数据进行同步对齐。
可选地,所述装置还包括:
验证模块,被配置为根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
所述提取模块具体被配置为,在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
可选地,所述装置还包括:
第二接收模块,被配置为接收所述目标服务器反馈的同步成功确认消息;
删除模块,被配置为删除所述消息队列中存储的所述增量数据。
根据本公开实施例的第三方面,提供另一种数据同步装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收目标服务器发送的数据同步请求;
从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例的第一方面所述数据同步方法的步骤。
通过上述技术方案,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步,同步的增量数据可以满足目标服务器端进行数据备份、进行实时数据的流式计算等需求。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开的实施例示出的一种数据同步方法的流程图。
图2是本公开的实施例示出的另一种数据同步方法的流程图。
图3是本公开的实施例示出的一种数据同步装置的结构图。
图4是本公开的实施例示出的另一种数据同步装置的结构图。
图5是本公开的实施例示出的一种数据同步***的结构图。
图6是本公开的实施例示出的又一种数据同步装置的结构图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先,对本公开的应用场景进行说明。本公开可以应用在数据同步场景,现有技术中,HBase集群间可以实现数据同步,在HBase集群间同步数据时,主要是全量同步方法,即每次同步都对全部数据进行一次拷贝,全量同步方法由于每次同步都需要拷贝全部数据,存在大量重复的同步数据,因而导致数据处理量相当大,同步所需时长较长,同步效率低,且现有技术缺乏将HBase数据库中的数据同步到其他异构存储(比如Oracle数据库MySQL数据库)上的同步方案。
为了解决上述问题,本公开提供一种数据同步方法、装置及存储介质,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
请参阅图1,图1是本公开的实施例示出的一种数据同步方法的流程图,本公开的实施例示出的数据同步方法的执行主体,可以是本公开的实施例提供的数据同步装置,或者是集成了该数据同步装置的电子设备,其中,电子设备可以是消息队列服务器,如图1所示,该方法包括:
步骤101,接收目标服务器发送的数据同步请求。
目标服务器可以是目标数据库对应的存储服务器,目标数据库比如Oracle数据库(甲骨文公司的一款关系数据库)、MySQL数据库(一种开放源代码的关系型数据库)、NoSQL数据库(非关系型的数据库)等。目标服务器可以定期向消息队列服务器发送数据同步请求,或者目标服务器可以根据消息队列服务器发送的同步通知消息(比如,当消息队列中存储新的同步数据时,消息队列服务器可以向目标服务器发送同步通知消息)向消息队列服务器发送数据同步请求,或者目标服务器可以自行监听消息队列,当监听到消息队列中有新的同步数据存入时,向消息队列服务器发送数据同步请求,以请求获取同步数据,消息队列服务器接收目标服务器发送的数据同步请求。
步骤102,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据。
消息队列(Message Queue,MQ)本质是一个数据的链表,消息队列具有先进先出的数据结构,对消息队列有写权限的设备可以向消息队列中按照一定的规则添加新数据,对消息队列有读权限的设备可以按照一定的规则从消息队列中读走数据。本公开的实施例所使用的消息队列,比如ActiveMQ,RabbitMQ,RocketMQ,kafka、Kinesis等,此处不做具体限定。
HBase服务器即HBase数据库对应的存储服务器,HBase数据库是一个分布式的、面向列的开源数据库,它可以用于超大规模的数据集存储,从而可以实现对超大规模数据的实时随机访问,HBase服务器与目标服务器是异构存储设备。
本实施例中,可以利用监控进程对HBase服务器中的数据进行监控,当监控到HBase服务器中的数据在预设同步时间节点之后发生变化时,可以从HBase服务器获取该变化数据(比如在预设同步时间节点之后新增的数据,被修改的数据),即增量数据。或者,如果目标服务器对数据实时性要求不高,消息队列服务器也可以按照预设周期(比如1分钟、5分钟)从HBase服务器获取增量数据。在获取该增量数据之后,可以将该增量数据存入消息队列,当接收到目标服务器发送的数据同步请求时,可以从消息队列提取该增量数据。
步骤103,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步。
通过上述技术方案,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步,同步的增量数据可以满足目标服务器端进行数据备份、进行实时数据的流式计算(比如对用户实时行为产生的日志数据进行分析,从而对用户进行商品的实时推荐)等需求。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,由于消息队列服务器的处理速度快于存储服务器,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
图2是本公开的实施例示出的另一种数据同步方法的流程图,如图2所示,该方法包括:
步骤201,从HBase服务器获取在预设同步时间节点之前产生的全量数据。
本实施例中,要将HBase服务器中的数据同步到目标服务器,HBase服务器即HBase数据库对应的存储服务器。目标服务器可以是目标数据库对应的存储服务器,目标数据库比如Oracle数据库、MySQL数据库、NoSQL数据库等,HBase服务器与目标服务器是异构存储设备。具体实现中,目标服务器可以有一个或多个,目标服务器可以提前向HBase服务器订阅同步数据。
预设同步时间节点可根据实际需求设置,预设同步时间节点设置一次即可。在实际同步时,可以先判断在预设时间节点之前HBase服务器中是否有数据,如果没有(比如HBase服务器初次启用),则将没有全量数据,即可以直接采用增量同步方案;如果在预设时间节点之前HBase服务器中已经有数据,则将采用全量同步与增量同步相结合的同步方案,即在进行增量同步之前,可以先进行一次全量同步,以实现同步对齐。具体地,HBase服务器和目标服务器可以提前通过通知消息约定,在接收到全量数据时,进行一次同步对齐,此后将发送增量数据,进行增量同步。
比如,可以将当前时间作为同步时间节点,则可以获取HBase服务器中当前已经产生的所有数据,这些数据即全量数据。具体实现中,HBase数据库对应的HBase服务器本身有一些复制(Replication)功能接口,比如,异步复制接口、串行复制接口和同步复制接口,但已有的这些复制功能接口只能实现HBase集群间的数据复制,无法实现将HBase服务器中的数据复制到其他异构存储设备,因而本实施例中,为了实现异构存储设备间的数据同步,可以在HBase服务器上扩展一个复制功能接口,通过扩展的HBase复制功能接口从HBase服务器获取该全量数据。在获取全量数据之后,可以为该全量数据添加全量标识、时间戳等,其中,全量标识用于标识该数据为全量数据,时间戳用于标识该全量数据的产生时间或获取时间,此后,全量标识、时间戳会随着全量数据一起发送给目标服务器。
具体实现中,在获取全量数据之后,还可以确定目标服务器支持的目标格式,将该全量数据的格式转换成目标格式,比如,HBase服务器中数据的格式为string格式,目标服务器支持的数据格式为json、XML格式等,则需要将全量数据的格式由string格式转换为json格式或者XML格式。本实施例中,可以创建消息队列并对向HBase服务器订阅了同步数据的目标服务器进行授权(比如将目标队列的访问密钥发送给目标服务器),在对该全量数据进行格式转换之后,可以将格式转换之后的全量数据存入消息队列。
消息队列(Message Queue,MQ)本质是一个数据的链表,消息队列具有先进先出的数据结构,对消息队列有写权限的设备可以向消息队列中按照一定的规则添加新数据,对消息队列有读权限的设备可以按照一定的规则从消息队列中读走数据。本公开的实施例所使用的消息队列,比如ActiveMQ,RabbitMQ,RocketMQ,kafka、Kinesis等,此处不做具体限定。
消息队列中,会为每一个数据类型创建一个主题,每个主题下会有多个分区,这多个分区用来适应不同流量大小的服务。HBase服务器中,会把表划分为多个域,当表初写数据时,此时表只有一个域,当随着数据的增多,域开始变大,等到域达到限定的阀值大小时,会把原来的域***为两个大小基本相同的域,随着表的变大,域的个数也会相应的增加,域是HBase集群分布数据的最小单位,HBase集群中的表数据其实是存储在这些域中的。本实施例中,为避免数据混乱,可以建立HBase服务器中的域与消息队列中的分区的对应关系,在从HBase服务器获取全量数据并进行格式转换之后,可以根据域对该全量数据进行分组,将HBase服务器中每个域的全量数据作为一组数据,将该组数据存入消息队列中与该域对应的分区中,其中,同一个域的全量数据存入消息队列中的同一个分区。
消息队列有两种模式,队列消息(Queue)模式和主题消息(Topic)模式,在队列消息模式下,写入消息队列的数据,可以被一个或多个接收者按队列顺序接收,但一条消息只能被一个接收者接收,当有多个接收者时,会按照“先来者优先”的原则确定哪个接收者接收下一条数据,比如,消息队列中存储了10条数据,两个接收者A和B,那么A和B两个接收者总共会收到10条数据,A和B收到的数据不重复;在主题消息模式下,写入消息队列的数据,同样可以被一个或多个接收者按队列顺序接收,且一条消息可以被多个接收者接收,当有多个接收者时,每个接收者都可以获取到消息队列中的完整数据,比如,消息队列中存储了10条数据,两个接收者A和B,那么A和B两个接收者各自会收到这10条数据。具体在本实施例中,由于目标服务器可以为一个或多个,为了保证当目标服务器有多个时,每个目标服务器都可以进行可靠的数据同步,可以采用消息队列的主题消息模式向目标服务器发送数据。
步骤202,将该全量数据转发给目标服务器,以使得目标服务器根据全量数据进行同步对齐。
具体地,目标服务器可以定期向消息队列服务器发送数据同步请求,或者目标服务器可以根据消息队列服务器发送的同步通知消息(比如,当消息队列中存储新的同步数据时,消息队列服务器可以向订阅了同步数据的目标服务器发送同步通知消息)向消息队列服务器发送数据同步请求,或者目标服务器可以自行监听消息队列,当监听到消息队列中有新的同步数据存入时,向消息队列服务器发送数据同步请求,以请求获取同步数据。消息队列服务器接收目标服务器发送的数据同步请求,该数据同步请求中可以携带密钥,消息队列服务器根据该密钥对目标服务器进行合法性验证,在验证结果为通过(比如该密钥与预设密钥匹配)时,根据全量标识从消息队列中提取该全量数据,将该全量数据转发给目标服务器,以使得目标服务器根据全量数据进行同步对齐。在同步的过程中,对目标服务器进行合法性验证,可以保证同步过程中的数据安全,避免无关设备获取同步数据。
目标服务器在根据全量数据完成同步对齐之后,可以向消息队列服务器发送同步成功确认消息(比如ACK消息),消息队列服务器在接收到该同步成功确认消息之后,可以删除消息队列中存储的该全量数据,以减少存储空间的占用。当目标服务器有多个时,消息队列服务器可以在接收到所有目标服务器发送的同步成功确认消息之后,再删除消息队列中存储的该全量数据。
步骤203,从HBase服务器获取增量数据,并为增量数据添加增量标识。
本实施例中,可以利用监控进程对HBase服务器中的数据进行监控,当监控到HBase服务器中的数据在预设同步时间节点之后发生变化时,可以通过扩展的HBase复制功能接口从HBase服务器获取该变化数据(比如在预设同步时间节点之后新增的数据,被修改的数据),即增量数据。或者,如果目标服务器对数据实时性要求不高,消息队列服务器也可以按照预设周期(比如1分钟、5分钟)从HBase服务器获取增量数据。在获取该增量数据之后,可以为该增量数据添加增量标识、时间戳等,其中,增量标识用于标识该数据为增量数据,时间戳用于标识该增量数据的产生时间或获取时间,此后,增量标识、时间戳会随着增量数据一起发送给目标服务器。
具体实现中,在获取增量数据之后,还可以根据目标服务器支持的目标格式,将该增量数据的格式转换成目标格式,将格式转换之后的该增量数据根据域分组存入消息队列的对应分区中,其中,同一个域的增量数据存入消息队列中的同一个分区。
步骤204,确定目标服务器支持的目标格式。
步骤205,将该增量数据的格式转换成目标格式。
步骤206,将转换之后的该增量数据存入消息队列。
步骤207,接收目标服务器发送的数据同步请求。
当接收到目标服务器发送的数据同步请求时,可以基于该数据同步请求中携带的密钥对目标服务器进行合法性验证,在验证结果为合法时,根据增量标识从消息队列提取该增量数据。或者,为了提高数据处理效率,也可以仅在目标服务器第一次向存储队列服务器发送数据同步请求时,对目标服务器进行合法性验证。
步骤208,根据数据同步请求中携带的密钥对目标服务器进行合法性验证。
步骤209,在目标服务器的合法性验证结果为合法时,根据该增量标识从消息队列中提取该增量数据。
步骤210,将该增量数据转发给目标服务器,以使得目标服务器根据增量数据进行数据同步。
由于消息队列具有先进先出的数据结构,所以目标服务器根据增量数据的接收顺序,依次对接收到的增量数据进行存储,即可完成数据同步。或者,由于增量数据具有时间戳,目标服务器也可以根据时间戳的先后顺序,依次对接收到的增量数据进行存储,从而完成数据同步。
步骤211,接收目标服务器反馈的同步成功确认消息。
步骤212,删除消息队列中存储的该增量数据。
目标服务器在根据增量数据完成数据同步之后,可以向消息队列服务器发送同步成功确认消息,消息队列服务器在接收到该同步成功确认消息之后,可以删除消息队列中存储的该增量数据,以减少存储空间的占用。
可选地,为了保证同步的可靠性,还可以设置一个较长的全量同步周期(该全量同步周期可以大于现有的使用全量同步方法进行同步的周期),在进行增量同步的同时,按照该全量同步周期进行全量同步。比如,现有的使用全量同步方法进行同步的同步周期是一天(即一天进行一次全量同步),则可以将本实施例的全量同步周期设置为七天(即七天进行一次全量同步),即可以每七天通过消息队列进行一次全量同步,在这七天之内,通过消息队列实时进行增量同步。
通过上述技术方案,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步,同步的增量数据可以满足目标服务器端进行数据备份、进行实时数据的流式计算等需求。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,由于消息队列服务器的处理速度快于存储服务器,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
图3是本公开的实施例示出的一种数据同步装置的结构框图,如图3所示,该装置300可以包括:
第一接收模块301,被配置为接收目标服务器发送的数据同步请求;
提取模块302,被配置为从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
第一转发模块303,被配置为将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步。
一实施例中,如图4所示,所述装置还包括:
第一获取模块304,被配置为从所述HBase服务器获取所述增量数据,并为所述增量数据添加增量标识;
存储模块305,被配置为将所述增量数据存入所述消息队列;
所述提取模块302具体被配置为,根据所述增量标识从所述消息队列中提取所述增量数据。
一实施例中,所述HBase服务器包括扩展的HBase复制功能接口;
所述第一获取模块304具体被配置为,通过所述扩展的HBase复制功能接口从所述HBase服务器获取所述增量数据。
一实施例中,如图4所示,所处存储模块305包括:
确定子模块3051,被配置为确定所述目标服务器支持的目标格式;
转换子模块3052,被配置为将所述增量数据的格式转换成所述目标格式;
存储子模块3053,被配置为将转换之后的所述增量数据存入所述消息队列。
一实施例中,所处存储模块305具体用于,将所述HBase服务器中每个域的所述增量数据存入所述消息队列中与所述每个域对应的分区中,其中,同一个域的增量数据存入所述消息队列中的同一个分区。
一实施例中,如图4所示,所述装置还包括:
第二获取模块306,被配置为从所述HBase服务器获取在所述预设同步时间节点之前产生的全量数据;
第二转发模块307,被配置为将所述全量数据转发给所述目标服务器,以使得所述目标服务器根据所述全量数据进行同步对齐。
一实施例中,如图4所示,所述装置还包括:
验证模块308,被配置为根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
所述提取模块302具体被配置为,在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
一实施例中,如图4所示,所述装置还包括:
第二接收模块309,被配置为接收所述目标服务器反馈的同步成功确认消息;
删除模块310,被配置为删除所述消息队列中存储的所述增量数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述装置,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步,同步的增量数据可以满足目标服务器端进行数据备份、进行实时数据的流式计算等需求。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,由于消息队列服务器的处理速度快于存储服务器,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
本公开实施例还提供一种数据同步装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,该处理器被配置为执行本公开上述任一方法实施例提供的数据同步方法的步骤。
本公开还提供一种数据同步***,如图5所示,该***包括HBase服务器、目标服务器和消息队列服务器,该目标服务器与该HBase服务器是异构存储设备,该消息队列服务器用于:
接收目标服务器发送的数据同步请求;
从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据;
将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步。
图6是本公开的实施例示出的一种用于数据同步的装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述数据同步方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据同步方法的代码部分。
本公开的实施例所提供的技术方案,在接收到目标服务器发送的数据同步请求时,从消息队列中提取增量数据,该增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,目标服务器与HBase服务器是异构存储设备,将该增量数据转发给目标服务器,以使得目标服务器根据该增量数据进行数据同步,同步的增量数据可以满足目标服务器端进行数据备份、进行实时数据的流式计算等需求。即本公开的实施例提供了异构存储设备间通过消息队列进行增量同步的同步方案,每次同步只需要向目标服务器发送增量数据,避免了数据重复,减小了同步的数据量,缩短了同步所需的时间,提高了同步效率;另外,使用消息队列实现数据同步,由于消息队列服务器的处理速度快于存储服务器,通过异步处理提高了响应速度;进一步地,使用消息队列避免了HBase服务器与目标服务器之间直接耦合,降低了***耦合性,提高了***的可扩展性。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
接收目标服务器发送的数据同步请求;
从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步;
在从消息队列中提取增量数据之前,所述方法还包括:
仅在第一次接收到目标服务器发送的数据同步请求时,根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
所述从消息队列中提取增量数据,包括:
在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
2.根据权利要求1所述的数据同步方法,其特征在于,在接收目标服务器发送的数据同步请求之前,还包括:
从所述HBase服务器获取所述增量数据,并为所述增量数据添加增量标识;
将所述增量数据存入所述消息队列;
所述从消息队列中提取增量数据,包括:
根据所述增量标识从所述消息队列中提取所述增量数据。
3.根据权利要求2所述的数据同步方法,其特征在于,所述HBase服务器包括扩展的HBase复制功能接口,所述从所述HBase服务器获取所述增量数据,包括:
通过所述扩展的HBase复制功能接口从所述HBase服务器获取所述增量数据。
4.根据权利要求2所述的数据同步方法,其特征在于,将所述增量数据存入所述消息队列,包括:
确定所述目标服务器支持的目标格式;
将所述增量数据的格式转换成所述目标格式;
将转换之后的所述增量数据存入所述消息队列。
5.根据权利要求2所述的数据同步方法,其特征在于,将所述增量数据存入所述消息队列,包括:
将所述HBase服务器中每个域的所述增量数据存入所述消息队列中与所述每个域对应的分区中,其中,同一个域的增量数据存入所述消息队列中的同一个分区。
6.根据权利要求2所述的数据同步方法,其特征在于,在从所述HBase服务器获取所述增量数据之前,所述方法还包括:
从所述HBase服务器获取在所述预设同步时间节点之前产生的全量数据;
将所述全量数据转发给所述目标服务器,以使得所述目标服务器根据所述全量数据进行同步对齐。
7.根据权利要求1至6任一项所述的数据同步方法,其特征在于,所述方法还包括:
接收所述目标服务器反馈的同步成功确认消息;
删除所述消息队列中存储的所述增量数据。
8.一种数据同步装置,其特征在于,包括:
第一接收模块,被配置为接收目标服务器发送的数据同步请求;
提取模块,被配置为从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
第一转发模块,被配置为将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步;
所述装置还包括验证模块,所述验证模块被配置为仅在第一次接收到目标服务器发送的数据同步请求时,根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
提取模块被配置为在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
9.一种数据同步装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收目标服务器发送的数据同步请求;
从消息队列中提取增量数据,所述增量数据为从HBase服务器中获取的、在预设同步时间节点之后产生的变化数据,所述目标服务器与所述HBase服务器是异构存储设备;
将所述增量数据转发给所述目标服务器,以使得所述目标服务器根据所述增量数据进行数据同步;
在从消息队列中提取增量数据之前,还包括:
仅在第一次接收到目标服务器发送的数据同步请求时,根据所述数据同步请求中携带的密钥对所述目标服务器进行合法性验证;
所述从消息队列中提取增量数据,包括:
在所述目标服务器的合法性验证结果为合法时,从所述消息队列中提取所述增量数据。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620729.4A CN111831748B (zh) | 2020-06-30 | 2020-06-30 | 数据同步方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620729.4A CN111831748B (zh) | 2020-06-30 | 2020-06-30 | 数据同步方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831748A CN111831748A (zh) | 2020-10-27 |
CN111831748B true CN111831748B (zh) | 2024-04-30 |
Family
ID=72899975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010620729.4A Active CN111831748B (zh) | 2020-06-30 | 2020-06-30 | 数据同步方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831748B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948378A (zh) * | 2021-02-04 | 2021-06-11 | 上海中通吉网络技术有限公司 | 基于HBase的数据处理方法、装置和设备 |
CN112988916B (zh) * | 2021-03-05 | 2023-06-16 | 杭州天阙科技有限公司 | 针对Clickhouse的全量和增量同步方法、设备和存储介质 |
CN113242313B (zh) * | 2021-05-28 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 数据同步方法、***、装置、服务器及存储介质 |
CN113778764B (zh) * | 2021-08-24 | 2023-10-27 | 百融至信(北京)科技有限公司 | 一种hbase数据双活***及方法 |
CN113824651B (zh) * | 2021-11-25 | 2022-02-22 | 上海金仕达软件科技有限公司 | 行情数据缓存处理方法、装置、存储介质及电子设备 |
CN115982133A (zh) * | 2023-02-01 | 2023-04-18 | 花瓣云科技有限公司 | 数据处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408132A (zh) * | 2014-11-28 | 2015-03-11 | 北京京东尚科信息技术有限公司 | 数据推送方法和*** |
CN107330003A (zh) * | 2017-06-12 | 2017-11-07 | 上海藤榕网络科技有限公司 | 数据同步方法、***、存储器及数据同步设备 |
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步*** |
CN108769212A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及*** |
CN109905457A (zh) * | 2019-01-09 | 2019-06-18 | 广州视源电子科技股份有限公司 | 主从服务器数据同步方法、装置、计算机设备和存储介质 |
CN110502572A (zh) * | 2019-06-26 | 2019-11-26 | 中电万维信息技术有限责任公司 | 一种数据同步的方法及服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10545988B2 (en) * | 2015-02-26 | 2020-01-28 | Red Hat, Inc. | System and method for data synchronization using revision control |
WO2018113580A1 (zh) * | 2016-12-19 | 2018-06-28 | 腾讯科技(深圳)有限公司 | 一种数据管理方法及服务器 |
-
2020
- 2020-06-30 CN CN202010620729.4A patent/CN111831748B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408132A (zh) * | 2014-11-28 | 2015-03-11 | 北京京东尚科信息技术有限公司 | 数据推送方法和*** |
CN107330003A (zh) * | 2017-06-12 | 2017-11-07 | 上海藤榕网络科技有限公司 | 数据同步方法、***、存储器及数据同步设备 |
CN107729366A (zh) * | 2017-09-08 | 2018-02-23 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步*** |
CN108769212A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及*** |
CN109905457A (zh) * | 2019-01-09 | 2019-06-18 | 广州视源电子科技股份有限公司 | 主从服务器数据同步方法、装置、计算机设备和存储介质 |
CN110502572A (zh) * | 2019-06-26 | 2019-11-26 | 中电万维信息技术有限责任公司 | 一种数据同步的方法及服务器 |
Non-Patent Citations (1)
Title |
---|
基于Dotmim.Sync框架的Android移动数据同步方法及应用;周千明;计算机与数字工程;20200430;第48卷(第4期);857-860 * |
Also Published As
Publication number | Publication date |
---|---|
CN111831748A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831748B (zh) | 数据同步方法、装置及存储介质 | |
CN107818120B (zh) | 基于大数据的数据处理方法和装置 | |
CN109542865B (zh) | 分布式集群***配置文件同步方法、装置、***及介质 | |
US20180367610A1 (en) | Data storage method and server applicable to distributed server cluster | |
CN112714192B (zh) | 数据同步方法、装置、计算机可读介质及电子设备 | |
CN112486915B (zh) | 数据存储方法及装置 | |
CN107040576A (zh) | 信息推送方法及装置、通讯*** | |
CN108140035B (zh) | 分布式***的数据库复制方法及装置 | |
CN113407637A (zh) | 一种数据同步方法、装置、电子设备以及存储介质 | |
CN111309693A (zh) | 一种数据同步方法、装置、***、电子设备及存储介质 | |
CN115982133A (zh) | 数据处理方法及装置 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理***以及处理装置 | |
CN111935316B (zh) | 一种前端设备目录获取方法及装置 | |
CN110134547B (zh) | 一种基于中间件的重复数据删除方法和相关装置 | |
CN110471922B (zh) | 记账节点的内容扩展方法、设备及计算机可读存储介质 | |
CN114501347A (zh) | 异构***间信息交互方法、装置及*** | |
CN108805741B (zh) | 一种电能质量数据的融合方法、装置及*** | |
CN113515425A (zh) | 数据动态上报的方法和装置 | |
CN113472469B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN112732728A (zh) | 一种数据同步方法和*** | |
CN117349376A (zh) | 数据同步方法、相关装置及介质 | |
CN117478535B (zh) | 一种日志存储的方法和装置 | |
CN113179333B (zh) | 一种用于区块链的文件传输与实时计算***及方法 | |
CN115941209B (zh) | 区块链去中心化可信数据采集方法及*** | |
CN112769630B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |