CN108959657B - 一种数据变更处理方法及装置 - Google Patents
一种数据变更处理方法及装置 Download PDFInfo
- Publication number
- CN108959657B CN108959657B CN201810917891.5A CN201810917891A CN108959657B CN 108959657 B CN108959657 B CN 108959657B CN 201810917891 A CN201810917891 A CN 201810917891A CN 108959657 B CN108959657 B CN 108959657B
- Authority
- CN
- China
- Prior art keywords
- data
- change
- server
- change record
- record
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种数据变更方法及装置,其中,该方法包括:当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,然后在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中,再将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器,最后将发送完成的未被处理的变更记录的状态更新为已被处理。通过这种方式,能够实现数据变更的实时监测,可靠性较高。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种数据变更处理方法及装置。
背景技术
大数据的使用已经成为企业成长和竞争的关键,人们对大数据的运用支撑了新一波生产力增长的浪潮。在大数据的浪潮的影响下,源数据方和数据消费方之间的交互也越来越频繁,源数据方可以记录新增加的数据,也可以对已经记录的数据进行删除、修改等操作。为保持源数据方和数据消费方之间记录的数据一致性,数据消费方可以获取源数据方对于记录的数据的数据变更信息,并基于数据变更信息进行相应的增加、删除、修改数据等操作。那么,如何进行数据变更信息的采集和分发成为亟需解决的问题。
现有技术中,采集数据变更信息主要通过定期地对源数据方记录的数据进行全量扫描来确定源数据方存储的数据是否发生变更,这种方式所耗费时间较长,采集数据变更信息的及时性较差。
分发数据变更信息主要通过线上异步双写的方式来实现,线上异步双写可以是源数据方在检测到源数据方数据库产生数据变更时,将数据变更信息发送给消息队列,然后经过消息队列处理后再传输给数据消费方,以便数据消费方按照数据变更信息更新数据消费方记录的数据。然而,实际应用中,考虑到源数据方可能会源源不断地产生数据变更信息,但是由于消息队列的处理速度受限,可能导致消息队列堆积了大量的数据变更信息,处理性能受到影响,可能会丢失数据,可靠性较低。
发明内容
有鉴于此,本申请的目的在于提供一种数据变更处理方法及装置,以实现数据变更的实时监控,提高消息传输的可靠性。
第一方面,本申请实施例提供了一种数据变更处理方法,该方法包括:
当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;
在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中;
将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器;
将发送完成的未被处理的变更记录的状态更新为已被处理。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,在生成变更记录后,还包括:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当上述选定变更记录占用的存储空间小于预设值时,将上述选定变更记录封装为同一变更记录文件;
当上述选定变更记录占用的存储空间大于或等于上述预设值时,将上述选定变更记录封装在不同的变更记录文件中,其中,上述不同的变更记录文件能够占用的最大存储空间相同。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,若上述第一服务器存储的数据以数据列表的形式进行存储,则当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器之前,还包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中,在上述将发送完成的未被处理的变更记录的状态更新为已被处理后,还包括:
将更新为已被处理后的变更记录从上述环形内存队列删除。
结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
通过监听上述第一服务器的磁盘输入输出接口和/或操作系统接口来获取上述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
第二方面,本申请实施例还提供一种数据变更处理装置,包括:
数据采集模块,用于当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;
数据接收模块,用于在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中;
数据处理模块,用于将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器,并将发送完成的未被处理的变更记录的状态更新为已被处理。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,上述数据接收模块还用于:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当上述选定变更记录占用的存储空间小于预设值时,将上述选定变更记录封装为同一变更记录文件;
当上述选定变更记录占用的存储空间大于或等于上述预设值时,将上述选定变更记录封装在不同的变更记录文件中,其中,上述不同的变更记录文件能够占用的最大存储空间相同。
结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,其中,若上述第一服务器存储的数据以数据列表的形式进行存储,则上述数据采集模块,在监测到源数据方的第一服务器存储的数据发生变更,生成变更记录时,具体用于:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器之前,还包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
结合第二方面,本申请实施例提供了第二方面的第三种可能的实施方式,其中,上述装置还包括:
数据检查模块,用于将更新为已被处理后的变更记录从上述环形内存队列删除。
结合第二方面,本申请实施例提供了第二方面的第四种可能的实施方式,其中,数据采集模块在监测到源数据方的第一服务器存储的数据发生变更,生成变更记录时,具体用于:
通过监听上述第一服务器的磁盘输入输出接口和/或操作系统接口来获取上述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
第三方面,本申请实施例还提供了一种电子设备,该设备包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线通信,机器可读指令被处理器执行时执行上述第一方面及第一方面任意可能的实施方式中上述的数据变更处理方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面以及第一方面任意可能的实施方式中上述的数据变更处理方法的步骤。
本申请实施例提供的数据变更处理的方法及装置,当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,然后在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中,再将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器,最后将发送完成的未被处理的变更记录的状态更新为已被处理。通过这种方式,可以对数据变更的情况实时监测,且在源数据方的第一服务器存储的数据发生短时间内剧烈变更,产生大量变更记录时,若环形内存队列中待处理的变更记录的数量超过一定值时,会停止向环形内存队列中添加数据,从而能够使变更记录处理与存有待处理变更记录的环形内存队列之间达到平衡,即使产生大量变更记录,环形内存队列也不会堆积大量待处理变更记录,可靠性较高。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种数据变更处理方法的流程示意图;
图2示出了本申请实施例所提供的数据变更处理装置200的架构示意图;
图3示出了本申请实施例所提供的数据变更处理装置模块交互图;
图4示出了本申请实施例所提供的电子设备400的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到现有技术中,获取数据变更记录所耗费的时间较长,且可靠性较低,基于此,本申请实施例提供了一种数据变更处理方法及装置,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种数据变更处理方法进行详细介绍。
实施例一
参见图1所示,为本申请实施例提供的一种数据变更处理方法的流程示意图,包括以下步骤:
S101、当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录。
在一种可能的实施方式中,针对源数据方的第一服务器存储在磁盘上的数据,判断源数据方的第一服务器存储的数据是否发生变更的方式可以为通过监听上述第一服务器的磁盘输入输出接口,进而来获取磁盘上存储的数据的变更信息;
针对源数据方的第一服务器的操作系统的软件程序,判断源数据方的第一服务器存储的数据是否发生变更的方式还可以为通过监听操作系统接口来获取操作系统上软件程序的变更信息,例如软件的更新、升级。
进一步地,可以基于获取的变更信息,生成变更记录。
在另一种可能的实施方式中,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
在生成变更记录后,为实现数据的批量变更,可以根据变更记录的生成时间及变更记录所占用的存储空间大小,将多条变更记录及变更记录的标识信息封装为同一变更记录文件,并设置变更记录文件的标识信息,其中,在变更记录文件中,上述变更记录可以是以数据列表形式存储的。
在对生成的变更记录进行封装时,具体地:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当选定变更记录占用的存储空间小于预设值时,将上述选定变更记录封装为同一变更记录文件;
当上述选定变更记录占用的存储空间大于或等于上述预设值时,将上述选定变更记录封装在不同的变更记录文件中,其中,上述不同的变更记录文件能够占用的最大存储空间相同。
具体实施中,例如每10毫秒采集一次变更记录,则从第1毫秒到第10毫秒之间生成的变更记录为选定变更记录,然后判断选定变更记录的占用空间是否大于预设值。如设预设值为20kb,从第1毫秒到第10毫秒之间生成10条变更记录,这10条变更记录所占用空间为15kb,则可以将这10条变更记录封装为同一变更记录文件;若从第1毫秒到第10毫秒之间生成3条变更记录,这3条变更记录所占用空间为30kb,则将上述3条变更记录封装到不同的变更记录文件中,其中,上述不同的变更记录能够占用的最大存储空间为20kb。
S102、在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至环形内存队列中。
在一种可能的实施方式中,在将新生成的变更记录添加至环形内存队列之前,还可以将上述新生成的变更记录的格式统一为相同的格式。因为从源数据方生成的变更记录格式可能有很多种,例如可以为二进制格式,但在数据处理时可能只能处理JAVA格式的数据,因此需要统一变更记录的格式。
S103、将环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器。
将环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器前,可以对未被处理的变更记录进行处理,若所处理的变更记录出现错误,则可以根据上述变更记录的标识信息重新去源数据方重新获取变更记录。
在一种可能的实施方式中,变更记录可以是以数据列表形式存储的,若变更记录来源于同一数据列表的不同分表,那么将环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录发送给数据消费方的第二服务器前,还可以先将数据变更记录进行整合,具体地:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
数据消费方的第二服务器接收到上述总变更记录后,数据消费方可根据需要判断是否根据所接收到的总变更记录对第二服务器存储的数据进行更新。在一种可能的实施方式中,若源数据方的第一服务器新增了数据,源数据方会发送一条新增数据的变更记录给数据消费方,数据消费方若需要进行更新,可根据源数据方提供的接口从源数据方的服务器获取新增数据。
S104、将发送完成的未被处理的变更记录的状态更新为已被处理。
在一种可能的实施方式中,在将发送完成的未被处理的变更记录的状态更新为已被处理后,将更新为已被处理后的变更记录从上述环形内存队列中删除,以此来清除环形内存队列的内存,清理出来的内存可以用来添加新生成的变更记录。
实施例二
本申请实施例提供了一种数据变更处理装置,参照图2所示,为本申请实施例所提供的数据变更处理装置200的架构示意图,该装置200包括:数据采集模块201,数据接收模块202,数据处理模块203,数据检查模块204。
具体的,数据采集模块201,用于当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;
数据接收模块202,用于在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中;
数据处理模块203,用于将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器,并将发送完成的未被处理的变更记录的状态更新为已被处理。
在一种可能的实施中,数据接收模块202还用于:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当上述选定变更记录占用的存储空间小于预设值时,将上述选定变更记录封装为同一变更记录文件;
当上述选定变更记录占用的存储空间大于或等于上述预设值时,将上述选定变更记录封装在不同的变更记录文件中,其中,上述不同的变更记录文件能够占用的最大存储空间相同。
在一种可能的实施方式中,若上述第一服务器存储的数据以数据列表的形式进行存储,则上述数据采集模块201,在监测到源数据方的第一服务器存储的数据发生变更,生成变更记录时,具体用于:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器之前,还包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
另外,在一种可能的实施方式中,上述装置还包括:
数据检查模块204,用于将更新为已被处理后的变更记录从上述环形内存队列删除。
进一步地,在一种可能的实施方式中,上述数据采集模块201,在监测到源数据方的第一服务器存储的数据发生变更,生成变更记录时,具体用于:
通过监听上述第一服务器的磁盘输入输出接口和/或操作系统接口来获取上述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
实施例三
对于实施例二所提供的数据变更处理装置,为了方便理解,本实施例对其各个模块之间的交互进行进一步说明,参见图3所示的数据变更处理装置模块交互图:
上述装置包括源数据方的第一服务器,数据消费方的第二服务器以及第三代理服务器,其中第三代理服务器包括数据处理模块,数据检查模块,数据接收模块以及日志信息管理模块。
数据采集模块负责监听采集源数据方第一服务器存储的数据的变更记录;在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,数据接收模块从数据采集模块获取最新生成的变更记录,对获取的变更记录进行封装和格式化处理,并将处理后的数据变更记录添加至环形内存队列中;数据处理模块从环形内存队列中获取变更记录,并对需要进行数据整合的变更记录进行数据整合,然后发送至数据消费方的第二服务器,并将发送成功的变更记录的状态更新为已被处理;数据检查模块检查变更记录的状态,对于已被处理的变更记录进行清除。
数据采集模块在监听采集源数据方第一服务器存储的数据的变更记录时,在一种可能的实施方式中,可以在每个源数据方的数据存储系统部署数据采集插件,通过数据采集插件,通过监听每一源数据方服务器的磁盘输入输出接口和/或操作系统接口来获取每一源数据方服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
其中,因为源数据方在存储数据时使用格式可能不同,存储数据时,除了数据本身,还需存储数据结构的描述信息,使得在查找数据时能快速准确的找到。例如数据库的数据结构的描述信息为二进制格式(Binlog),而磁盘文件的存储信息则采用分片文件+索引+位置游标的方式来确定记录位置。
数据采集插件可以是基于上述数据结构的描述信息还获取数据变更记录的,因此为适应不同类型的存储格式,数据采集插件设计为可拓展的,若监听方式为通过监听每一源数据方服务器的磁盘输入输出接口和/或操作系统接口来获取每一源数据方服务器存储的数据的变更信息,数据采集插件再将所获取的变更信息的格式转换为统一的数据传输格式;若监听方式为基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
数据检查模块除了负责清理环形内存队列的已处理的变更记录外,若环形内存队列中之前记录的变更记录中未被记录的变更记录的数量达到了预设阈值,数据检查模块会反馈给数据接收模块,数据接收模块再反馈给数据采集模块,数据采集模块会继续采集源数据方的数据变更记录,但并不会将数据变更记录发送到数据接收模块。
日志信息管理模块负责管理记录数据采集插件的工作状态。例如当数据接收模块向数据采集模块请求获取变更记录时,数据采集模块会向日志信息管理模块插入一条日志信息记录已采集的变更记录;当数据检查模块将环形内存队列中已被处理的变更记录清除时,会通过数据接收模块向数据采集插件发送数据已被处理的消息,同时数据接收模块会给数据数据采集插件管理服务器发送一条变更记录已被处理的消息。在一种可能的实施方式中,数据采集差价的管理服务器中还可用源数据方自身的数据变更日志来代替,例如可用Mysql数据库的二进制文件(Binlog文件)来代替。
数据消费方通过订阅源数据方的数据变更消息,消息队列服务器将所对应的数据变更记录发送至数据变更消息接收器,然后通过变更消息接收器将变更记录发送给各个数据消费方,其中上述订阅源数据方的数据变更信息可以是确认获取源数据方的所有数据变更记录。
实施例四
如图4所示,本申请实施例三所提供的一种电子设备400的结构示意图,包括:处理器401、存储器402和总线403;
上述存储器402存储有上述处理器401可执行的机器可读指令(比如,包括图2中的数据采集模块201,数据接收模块202以及数据处理模块203对应的执行指令等),当电子设备400运行时,上述处理器401与上述存储器402之间通过总线403通信,上述机器可读指令被上述处理器401执行时执行如下处理:
当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;
在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的变更记录添加至上述环形内存队列中;
将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器;
将发送完成的未被处理的变更记录的状态更新为已被处理。
另外,上述处理器401在执行的处理中,在生成变更记录后,还包括:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当上述选定变更记录占用的存储空间小于预设值时,将上述选定变更记录封装为同一变更记录文件;
当上述选定变更记录占用的存储空间大于或等于上述预设值时,将上述选定变更记录封装在不同的变更记录文件中,其中,上述不同的变更记录文件能够占用的最大存储空间相同。
进一步地,处理器401执行的处理中,若上述第一服务器存储的数据以数据列表的形式进行存储,则当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器之前,还包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
若上述第一服务器存储的数据以数据列表的形式进行存储,则当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将上述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录依次发送给数据消费方的第二服务器之前,还包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的上述总变更记录发送给上述数据消费方的第二服务器。
另外,在处理器401执行的操作中,在上述将发送完成的未被处理的变更记录的状态更新为已被处理后,还包括:
将更新为已被处理后的变更记录从上述环形内存队列删除。
另外,在处理器401执行的操作中,上述当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
通过监听上述第一服务器的磁盘输入输出接口和/或操作系统接口来获取上述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于源数据方的第一服务器存储数据时使用的备份协议,备份所述源数据方的第一服务器存储的数据变更日志,并在第一服务器存储数据的发生变更时,重新备份源数据方的第一服务器存储的变更以后的数据变更日志,根据所述数据变更日志,生成变更记录。
实施例五
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施例中上述的数据变更处理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据变更处理方法的步骤,从而实现数据变更的实时监测,提高可靠性。
本申请实施例所提供的进行数据变更处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,上述程序代码包括的指令可用于执行前面方法实施例中上述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据变更处理方法,其特征在于,包括:
当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;其中,所述源数据方的第一服务器中还存储有所述数据的数据结构的描述信息,以便查找所述数据;
对获取的所述变更记录进行包括封装和/或格式统一的处理,在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的处理后的变更记录添加至所述环形内存队列中;
将所述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录进行数据整合后依次发送给数据消费方的第二服务器;
将发送完成的未被处理的变更记录的状态更新为已被处理;
所述当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
通过监听所述第一服务器的磁盘输入输出接口和/或操作系统接口来获取所述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;或者,
基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
2.根据权利要求1所述的方法,其特征在于,对获取的所述变更记录进行封装处理,包括:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当所述选定变更记录占用的存储空间小于预设值时,将所述选定变更记录封装为同一变更记录文件;
当所述选定变更记录占用的存储空间大于或等于所述预设值时,将所述选定变更记录封装在不同的变更记录文件中,其中,所述不同的变更记录文件能够占用的最大存储空间相同。
3.根据权利要求1所述的方法,其特征在于,若所述第一服务器存储的数据以数据列表的形式进行存储,则当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录,包括:
当监测到同一数据列表中不同的分表中存储的数据发生变更时,生成每个分表对应的变更记录;
在将所述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录进行数据整合后依次发送给数据消费方的第二服务器,包括:
将属于同一数据列表中的不同分表对应的变更记录整合为同一数据列表对应的总变更记录;
将整合成的所述总变更记录发送给所述数据消费方的第二服务器。
4.根据权利要求1所述的方法,其特征在于,在所述将发送完成的未被处理的变更记录的状态更新为已被处理后,还包括:
将更新为已被处理后的变更记录从所述环形内存队列删除。
5.一种数据变更处理装置,其特征在于,包括:
数据采集模块,用于当监测到源数据方的第一服务器存储的数据发生变更时,生成变更记录;其中,所述源数据方的第一服务器中还存储有所述数据的数据结构的描述信息,以便查找所述数据;
数据接收模块,用于对获取的所述变更记录进行包括封装和/或格式统一的处理,在确定环形内存队列中之前记录的变更记录中未被处理的变更记录的数量不超过预设阈值之后,将最新生成的处理后的变更记录添加至所述环形内存队列中;
数据处理模块,用于将所述环形内存队列中记录的包括最新生成的变更记录在内的未被处理的变更记录进行数据整合后依次发送给数据消费方的第二服务器,并将发送完成的未被处理的变更记录的状态更新为已被处理;
所述数据采集模块,在监测到源数据方的第一服务器存储的数据发生变更,生成变更记录时,具体用于:
通过监听上述第一服务器的磁盘输入输出接口和/或操作系统接口来获取上述第一服务器存储的数据的变更信息,并基于获取的变更信息,生成变更记录;
或者,基于所述第一服务器存储数据时使用的备份协议,备份所述第一服务器存储的数据变更日志,并在所述第一服务器存储数据的发生变更时,基于所述第一服务器存储的数据的变更信息,更新所述数据变更日志,根据更新后的数据变更日志,生成变更记录。
6.根据权利要求5所述的装置,其特征在于,所述数据接收模块具体用于:
从生成的变更记录中确定出变更记录的生成时间在同一预设时段的选定变更记录;
当所述选定变更记录占用的存储空间小于预设值时,将所述选定变更记录封装为同一变更记录文件;
当所述选定变更记录占用的存储空间大于或等于所述预设值时,将所述选定变更记录封装在不同的变更记录文件中,其中,所述不同的变更记录文件能够占用的最大存储空间相同。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
数据检查模块,用于将更新为已被处理后的变更记录从所述环形内存队列删除。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1~4任一所述的数据变更处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1~4任一所述的数据变更处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810917891.5A CN108959657B (zh) | 2018-08-13 | 2018-08-13 | 一种数据变更处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810917891.5A CN108959657B (zh) | 2018-08-13 | 2018-08-13 | 一种数据变更处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959657A CN108959657A (zh) | 2018-12-07 |
CN108959657B true CN108959657B (zh) | 2020-12-25 |
Family
ID=64469044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810917891.5A Active CN108959657B (zh) | 2018-08-13 | 2018-08-13 | 一种数据变更处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959657B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708335A (zh) * | 2020-06-03 | 2020-09-25 | 深圳前海禾盈科技有限公司 | 一种基于智慧工厂的设备数据采集的方法 |
CN112073520B (zh) * | 2020-09-09 | 2022-08-09 | 北京金山云网络技术有限公司 | 数据处理方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760126A (zh) * | 2011-04-26 | 2012-10-31 | 阿里巴巴集团控股有限公司 | 一种分布式系统中的数据同步方法和分布式系统 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
CN104598574A (zh) * | 2015-01-13 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种海量gps数据存储的方法及装置 |
US9697224B1 (en) * | 2016-02-09 | 2017-07-04 | International Business Machines Corporation | Data deduplication for an eventually consistent system |
-
2018
- 2018-08-13 CN CN201810917891.5A patent/CN108959657B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760126A (zh) * | 2011-04-26 | 2012-10-31 | 阿里巴巴集团控股有限公司 | 一种分布式系统中的数据同步方法和分布式系统 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
CN104598574A (zh) * | 2015-01-13 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种海量gps数据存储的方法及装置 |
US9697224B1 (en) * | 2016-02-09 | 2017-07-04 | International Business Machines Corporation | Data deduplication for an eventually consistent system |
Also Published As
Publication number | Publication date |
---|---|
CN108959657A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661659B (zh) | 一种告警方法、装置、系统及电子设备 | |
US8140591B2 (en) | Enabling workflow awareness within a business process management (BPM) system | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN108959657B (zh) | 一种数据变更处理方法及装置 | |
US10387370B2 (en) | Collecting test results in different formats for storage | |
CN112256715B (zh) | 索引的更新方法、装置、电子设备以及存储介质 | |
CN111538563A (zh) | 一种对Kubernetes的事件分析方法及装置 | |
JP2006260056A (ja) | 統合運用管理サーバ、統合的な運用管理のためのメッセージの抽出方法、及び、プログラム | |
CN111367760A (zh) | 日志采集方法及装置、计算机设备、存储介质 | |
CN115622906A (zh) | 一种应用日志抓取系统及方法 | |
CN109861843B (zh) | 日志文件的完整采集确认方法、装置及设备 | |
CN113419935B (zh) | 移动端性能监控方法、装置、设备及存储介质 | |
CN106487852B (zh) | 实现客户端文件同步的方法、装置、终端设备及系统 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN111159142B (zh) | 一种数据处理方法及装置 | |
CN109684279B (zh) | 一种数据处理方法及系统 | |
CN113487340A (zh) | 业务解耦处理方法、装置、设备及存储介质 | |
CN113672307A (zh) | 数据处理方法、电子设备和计算机可读存储介质 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN111125004B (zh) | 文件采集方法及装置 | |
CN108184141B (zh) | 一种监控视频任务的处理方法及服务器 | |
US20240061494A1 (en) | Monitoring energy consumption associated with users of a distributed computing system using tracing | |
CN114201541A (zh) | 一种数据提取方法、装置、设备和存储介质 | |
CN113509734A (zh) | 游戏文件处理系统 | |
CN109428914B (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 |