CN111694840B - 数据同步方法、装置、服务器及存储介质 - Google Patents
数据同步方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111694840B CN111694840B CN202010357422.XA CN202010357422A CN111694840B CN 111694840 B CN111694840 B CN 111694840B CN 202010357422 A CN202010357422 A CN 202010357422A CN 111694840 B CN111694840 B CN 111694840B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- redo log
- storage engine
- syntax tree
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
Abstract
本发明涉及数据处理技术领域,提供一种数据同步方法、装置、服务器及存储介质。该方法能够监听数据源上的修改操作,当有修改操作产生时,读取目标重做日志并解析,得到类型,获取目标重做日志中的变更数据并清洗,得到目标数据,当接收到数据同步请求时,从数据同步请求中提取引擎信息并确定存储引擎,与存储引擎建立连接,得到网络链接,生成与存储引擎对应的指令,通过网络链接将指令发送至存储引擎,以使存储引擎完成数据同步,通过服务器与数据源建立网络连接,降低数据源与存储引擎之间通信的繁杂性,本发明还涉及区块链技术,通过服务器统一同步数据,能够减少数据源所在设备的CPU以及内存资源的消耗,提高了数据源所在设备运行的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据同步方法、装置、服务器及存储介质。
背景技术
目前,随着大数据技术的快速发展,各种应用场景层出不穷,针对不同的应用场景,所需的数据格式也各不相同。为了得到不同格式的数据,往往需要从数据源中获取数据,并将获取到的数据以相应的格式存储于存储引擎中。当数据源中的数据发生变更且需要将变更数据同步于存储引擎时,存储引擎需从数据源中获取变更数据。
然而,在存储引擎有多个时,每个存储引擎均需与数据源建立网络连接,增添了数据源与存储引擎之间通信的繁杂性,另外,每个存储引擎均需通过网络连接对数据源中的数据进行分析处理,因此,将变更数据存入存储引擎所花费的时间较长,导致存储效率低下。
因此,如何快速将变更数据同步于存储引擎,并减少数据源与存储引擎之间通信的繁杂性,成了有待解决的问题。
发明内容
鉴于以上内容,有必要提供一种数据同步方法、装置、服务器及存储介质,不仅能够降低数据源与存储引擎之间通信的繁杂性,还能够减少数据源所在设备的CPU以及内存资源的消耗,另外,缩短了将变更数据同步于存储引擎的时间。
一种数据同步方法,所述方法包括:
监听数据源上的修改操作;
当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志;
解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据;
对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据;
当接收到数据同步请求时,从所述数据同步请求中提取引擎信息;
根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接;
根据所述类型及所述目标数据,生成与所述存储引擎对应的指令;
通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
根据本发明优选实施例,所述从所述数据源对应的重做日志组中读取目标重做日志包括:
获取预先配置的线程数量;
根据所述线程数量创建线程,得到目标线程;
调用start命令启动所述目标线程;
通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志;
将所述目标重做日志从所述消息缓存队列中剔除。
根据本发明优选实施例,所述解析所述目标重做日志,得到所述目标重做日志的类型包括:
获取所述目标重做日志的日志名称及生成时间,并根据所述日志名称从预设列表中索引出与所述日志名称对应的抽象语法树;
获取所述抽象语法树的构建时间,并将与所述生成时间距离最近的构建时间确定为目标时间;
将所述目标时间对应的抽象语法树确定为第一抽象语法树;
获取所述目标重做日志的源码;
将所述源码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码及所述日志名称,构建第二抽象语法树,并将所述第二抽象语法树存储于所述预设列表中;
将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型。
根据本发明优选实施例,所述将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型包括:
当检测到不属于所述第一抽象语法树且属于所述第二抽象语法树的数据时,将该数据确定为新增数据,并将所述目标重做日志的类型确定为增加类型;及/或
当检测到属于所述第一抽象语法树且不属于所述第二抽象语法树的数据时,将该数据确定为删除数据,并将所述目标重做日志的类型确定为删除类型;及/或
当检测到所述第一抽象语法树与所述第二抽象语法树的相应位置上对应的数据不同时,将所述第二抽象语法树的相应位置上对应的数据确定为更改数据,并将所述目标重做日志的类型确定为更改类型。
根据本发明优选实施例,所述目标数据存储于区块链中,所述对所述变更数据进行清洗,得到目标数据包括:
当检测到所述变更数据中存在多个相同的数据时,将所述多个相同的数据确定为重复数据;
保留所述重复数据中的任意一个数据作为剩余数据,并将所述剩余数据从所述变更数据中剔除,得到去重处理后的变更数据,并将所述去重处理后的变更数据确认为第一数据;
检测所述第一数据中是否存在不属于预设区间的数据;
当检测到所述第一数据中存在不属于所述预设区间的数据时,删除该数据,得到所述目标数据。
根据本发明优选实施例,所述根据所述类型及所述目标数据,生成与所述存储引擎对应的指令包括:
获取所述存储引擎的存储格式;
将所述目标数据按照所述存储格式进行格式转换,得到所述存储引擎中的待传输数据;
封装所述类型及所述待传输数据,得到所述指令。
根据本发明优选实施例,所述方法还包括:
获取发送所述指令的第一时刻;
将加上预设时段后的第一时刻确定为第二时刻;
当检测到所述存储引擎在所述第二时刻之前未完成数据同步时,检测所述存储引擎是否接收到所述指令;
当所述存储引擎未接收到所述指令时,重复发送所述指令,直至发送次数达到配置数值或者所述存储引擎接收到所述指令;
当所述发送次数达到所述配置数值且所述存储引擎未接收到所述指令时,生成告警信息;
将所述告警信息发送至指定联系人的终端设备。
一种数据同步装置,所述装置包括:
监听单元,用于监听数据源上的修改操作;
读取单元,用于当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志;
执行单元,用于解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据;
清洗单元,用于对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据;
提取单元,用于当接收到数据同步请求时,从所述数据同步请求中提取引擎信息;
建立单元,用于根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接;
生成单元,用于根据所述类型及所述目标数据,生成与所述存储引擎对应的指令;
发送单元,用于通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
根据本发明优选实施例,所述读取单元具体用于:
获取预先配置的线程数量;
根据所述线程数量创建线程,得到目标线程;
调用start命令启动所述目标线程;
通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志;
将所述目标重做日志从所述消息缓存队列中剔除。
根据本发明优选实施例,所述执行单元解析所述目标重做日志,得到所述目标重做日志的类型包括:
获取所述目标重做日志的日志名称及生成时间,并根据所述日志名称从预设列表中索引出与所述日志名称对应的抽象语法树;
获取所述抽象语法树的构建时间,并将与所述生成时间距离最近的构建时间确定为目标时间;
将所述目标时间对应的抽象语法树确定为第一抽象语法树;
获取所述目标重做日志的源码;
将所述源码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码及所述日志名称,构建第二抽象语法树,并将所述第二抽象语法树存储于所述预设列表中;
将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型。
根据本发明优选实施例,所述执行单元将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型包括:
当检测到不属于所述第一抽象语法树且属于所述第二抽象语法树的数据时,将该数据确定为新增数据,并将所述目标重做日志的类型确定为增加类型;及/或
当检测到属于所述第一抽象语法树且不属于所述第二抽象语法树的数据时,将该数据确定为删除数据,并将所述目标重做日志的类型确定为删除类型;及/或
当检测到所述第一抽象语法树与所述第二抽象语法树的相应位置上对应的数据不同时,将所述第二抽象语法树的相应位置上对应的数据确定为更改数据,并将所述目标重做日志的类型确定为更改类型。
根据本发明优选实施例,所述目标数据存储于区块链中,所述清洗单元具体用于:
当检测到所述变更数据中存在多个相同的数据时,将所述多个相同的数据确定为重复数据;
保留所述重复数据中的任意一个数据作为剩余数据,并将所述剩余数据从所述变更数据中剔除,得到去重处理后的变更数据,并将所述去重处理后的变更数据确认为第一数据;
检测所述第一数据中是否存在不属于预设区间的数据;
当检测到所述第一数据中存在不属于所述预设区间的数据时,删除该数据,得到所述目标数据。
根据本发明优选实施例,所述生成单元具体用于:
获取所述存储引擎的存储格式;
将所述目标数据按照所述存储格式进行格式转换,得到所述存储引擎中的待传输数据;
封装所述类型及所述待传输数据,得到所述指令。
根据本发明优选实施例,所述装置还包括:
获取单元,用于获取发送所述指令的第一时刻;
确定单元,用于将加上预设时段后的第一时刻确定为第二时刻;
检测单元,用于当检测到所述存储引擎在所述第二时刻之前未完成数据同步时,检测所述存储引擎是否接收到所述指令;
所述发送单元,还用于当所述存储引擎未接收到所述指令时,重复发送所述指令,直至发送次数达到配置数值或者所述存储引擎接收到所述指令;
所述生成单元,还用于当所述发送次数达到所述配置数值且所述存储引擎未接收到所述指令时,生成告警信息;
所述发送单元,还用于将所述告警信息发送至指定联系人的终端设备。
一种服务器,所述服务器包括:
存储器,存储至少一个指令;及
处理器,获取所述存储器中存储的指令以实现所述数据同步方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被服务器中的处理器获取以实现所述数据同步方法。
由以上技术方案可以看出,本发明通过服务器与数据源建立网络连接,有效降低了数据源与存储引擎之间通信的繁杂性,另外,通过服务器统一同步数据,能够减少数据源所在设备的CPU以及内存资源的消耗,提高了数据源所在设备运行的效率,同时,无需多次分析处理数据源中的数据,缩短了将变更数据同步于存储引擎的时间。
附图说明
图1是本发明数据同步方法的较佳实施例的流程图。
图2是本发明数据同步装置的较佳实施例的功能模块图。
图3是本发明实现数据同步方法的较佳实施例的服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明数据同步方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述数据同步方法应用于一个或者多个服务器中,所述服务器是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述服务器可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述服务器还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。
所述服务器所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,监听数据源上的修改操作。
在本发明的至少一个实施例中,所述数据源可以是数据库应用程序所使用的数据库,也可以是数据库服务器。
进一步地,所述修改操作可以是将所述数据源中的数据进行删除、也可以是对所述数据源中的数据进行更改、也可以是在所述数据源中增加新的数据,本发明对所述修改操作不作限制。
在本发明的至少一个实施例中,所述服务器在所述数据源中插入监视代码,所述监视代码用于检测所述数据源中是否有keypress事件或者keydown事件产生,当所述数据源中有所述keypress事件或者所述keydown事件产生时,所述服务器确定产生所述keypress事件或者所述keydown事件的目标按键,进一步地,所述服务器检测所述目标按键是否为预设按键。
具体地,所述监视代码能够查询所述数据源对应的日志,当查询到所述日志中有keypress事件或者keydown事件产生时,以查询结果作为响应结果。
其中,所述预设按键能够用于在数据源中的数据被修改后,进行相应的数据保存。
通过上述实施方式,能够实时监听所述数据源上的修改操作,有效避免了修改操作的遗漏。
S11,当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志。
在本发明的至少一个实施例中,为了在数据源出现崩溃时能够及时恢复数据,所述数据源都会设置对应的重做日志组,进一步地,所述重做日志组用于存储多个重做日志。
在本发明的至少一个实施例中,所述目标重做日志是指未处理的重做日志。
在本发明的至少一个实施例中,在从所述数据源对应的重做日志组中读取目标重做日志之前,所述方法还包括:
所述服务器确定产生所述修改操作的目标人物,进一步地,所述服务器检测所述目标人物是否存在于配置名单中,当所述目标人物存在于所述配置名单中时,所述服务器确定所述目标人物具有修改权限。
其中,所述配置名单上的人物为具有修改权限的用户。
通过上述实施方式,能够避免不具有修改权限的人物对所述数据源中的数据进行修改,进而避免不具有修改权限的人物对存储引擎中的数据进行篡改,提高了数据源及存储引擎中数据的安全性。
在本发明的至少一个实施例中,所述数据源在所述重做日志组中创建消息缓存队列,所述消息缓存队列中存储至少一个未处理的重做日志。
在本发明的至少一个实施例中,所述从所述数据源对应的重做日志组中读取目标重做日志包括:
所述服务器获取预先配置的线程数量,根据所述线程数量创建线程,得到目标线程,进一步地,所述服务器调用start命令启动所述目标线程,通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志,更进一步地,所述服务器将所述目标重做日志从所述消息缓存队列中剔除。
通过多线程获取目标重做日志的方式,提高目标重做日志的读取效率。
S12,解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据。
在本发明的至少一个实施例中,所述类型包括增加类型、删除类型及更改类型。
在本发明的至少一个实施例中,所述解析所述目标重做日志,得到所述目标重做日志的类型包括:
所述服务器获取所述目标重做日志的日志名称及生成时间,并根据所述日志名称从预设列表中索引出与所述日志名称对应的抽象语法树,进一步地,所述服务器获取所述抽象语法树的构建时间,并将与所述生成时间距离最近的构建时间确定为目标时间,进一步地,所述服务器将所述目标时间对应的抽象语法树确定为第一抽象语法树,并获取所述目标重做日志的源码,所述服务器将所述源码的格式转换为预设格式,得到具有预设格式的目标代码,所述服务器对所述目标代码进行词法解析,并对词法解析后的目标代码进行语法解析,得到预处理代码,所述服务器根据所述预处理代码及所述日志名称,构建第二抽象语法树,并将所述第二抽象语法树存储于所述预设列表中,并将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型。
其中,所述预设格式是指可以生成所述第二抽象语法树的格式,由于能够将所述源码转换成统一的预设格式,因此,本方案不限制所述源码的格式,所述源码可以是C语言格式、也可以是JAVA语言格式等。通过对所述源码进行格式化,能够得到统一的预设格式,因此不管是哪种格式的源码,经过格式化之后,都可以转换为统一的预设格式。
进一步地,所述词法解析是将所述目标代码切成多个语元,并为每个语元分配一个编号。实际上是将所述源码切割成多个语元,并按照顺序为每个语元分配一个编号。
更进一步地,所述语法解析是在词法解析的基础上将各个语元组合成具有一定语法的语句,如“程序”、“表达式”等。
通过将距离所述生成时间最近的构建时间对应的抽象语法树与所述生成时间对应的目标重做日志构建的抽象语法树进行对比,能够直观、准确地确定所述目标重做日志的类型。
在本发明的至少一个实施例中,所述将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型包括:
(1)当检测到不属于所述第一抽象语法树且属于所述第二抽象语法树的数据时,所述服务器将该数据确定为新增数据,并将所述目标重做日志的类型确定为增加类型。
(2)当检测到属于所述第一抽象语法树且不属于所述第二抽象语法树的数据时,所述服务器将该数据确定为删除数据,并将所述目标重做日志的类型确定为删除类型。
(3)当检测到所述第一抽象语法树与所述第二抽象语法树的相应位置上对应的数据不同时,所述服务器将所述第二抽象语法树的相应位置上对应的数据确定为更改数据,并将所述目标重做日志的类型确定为更改类型。
S13,对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据。
在本发明的至少一个实施例中,所述目标数据是将所述变更数据进行去重及从所述变更数据中过滤掉错误数据后得到的数据。
在一实施例中,可将所述目标数据保存在区块链网络上,通过区块链存储,实现数据信息在不同平台之间的共享,也可防止数据被篡改。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在本发明的至少一个实施例中,所述对所述变更数据进行清洗,得到目标数据包括:
当检测到所述变更数据中存在多个相同的数据时,所述服务器将所述多个相同的数据确定为重复数据,进一步地,所述服务器保留所述重复数据中的任意一个数据作为剩余数据,并将所述剩余数据从所述变更数据中剔除,得到去重处理后的变更数据,并将所述去重处理后的变更数据确认为第一数据,所述服务器检测所述第一数据中是否存在不属于预设区间的数据,当检测到所述第一数据中存在不属于所述预设区间的数据时,所述服务器删除该数据,得到所述目标数据。
其中,所述预设区间是指数据的限定范围值,进一步地,所述预设区间的取值范围在本发明中不作限制。
通过剔除掉所述变更数据中的重复数据,使重复数据无需同步至存储引擎,不仅能够节约存储引擎的存储空间,还能节省数据同步的时间,另外,通过过滤所述变更数据中的错误数据,提高了所述变更数据的准确性。
S14,当接收到数据同步请求时,从所述数据同步请求中提取引擎信息。
在本发明的至少一个实施例中,所述数据同步请求可以是由所述数据源发出的,所述数据同步请求的信息包括,但不限于:请求编号、引擎信息等。进一步地,所述引擎信息表征存储引擎。
进一步地,所述存储引擎能够用来存储数据,另外,不同的存储引擎能够存储不同格式的数据。
在本发明的至少一个实施例中,所述从所述数据同步请求中提取引擎信息包括:
所述服务器获取目标标签,进一步地,所述服务器从所述数据同步请求所携带的所有信息中提取与所述目标标签对应的信息,作为所述引擎信息。
其中,所述目标标签是指与所述引擎信息对应的标签。
进一步地,所述标签的格式可以是由字符组成,也可以是由数字组成,本发明对所述标签的格式不作限制。另外,所述标签的长度可以是2位,也可以是3位,本发明对所述标签的长度也不作限制。例如,标签abc。
S15,根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接。
在本发明的至少一个实施例中,所述引擎信息中含有存储引擎的标识,因此,所述服务器能够根据所述引擎信息确定所述存储引擎。
在本发明的至少一个实施例中,所述服务器与所述存储引擎建立网络连接的方式属于现有技术,本发明不作具体阐述。
通过与存储引擎建立连接,使所述服务器可以中转数据,此外,存储引擎无需与所述数据源建立连接,有效降低了数据源与存储引擎间通信的繁杂性。
S16,根据所述类型及所述目标数据,生成与所述存储引擎对应的指令。
在本发明的至少一个实施例中,所述指令是指能够执行数据同步请求的代码,另外,不同存储引擎对应不同的指令。进一步地,所述指令的表现形式可以为{类型:待传输数据}。
在本发明的至少一个实施例中,所述根据所述类型及所述目标数据,生成与所述存储引擎对应的指令包括:
所述服务器获取所述存储引擎的存储格式,并将所述目标数据按照所述存储格式进行格式转换,得到所述存储引擎中的待传输数据,进一步地,所述服务器封装所述类型及所述待传输数据,得到所述指令。
具体地,所述服务器封装所述类型及所述待传输数据,得到所述指令包括:
所述服务器采用JSON技术封装所述类型及所述待传输数据,得到所述指令。
其中,所述JSON(JavaScript Object Notation,JS对象简谱)技术是一种轻量级的数据交换格式。所述JSON技术采用完全独立于编程语言的文本格式来存储和表示数据,易于阅读和编写,同时也易于机器解析和生成,有效地提升网络传输效率。
通过上述实施方式,将所述目标数据及所述类型进行封装,使所述目标数据及所述类型能够随着所述指令传入到所述存储引擎进行数据处理。
S17,通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
在本发明的至少一个实施例中,所述方法还包括:
所述服务器获取发送所述指令的第一时刻,并将加上预设时段后的第一时刻确定为第二时刻,当检测到所述存储引擎在所述第二时刻之前未完成数据同步时,所述服务器检测所述存储引擎是否接收到所述指令,当所述存储引擎未接收到所述指令时,所述服务器重复发送所述指令,直至发送次数达到配置数值或者所述存储引擎接收到所述指令,当所述发送次数达到所述配置数值且所述存储引擎未接收到所述指令时,所述服务器生成告警信息,并将所述告警信息发送至指定联系人的终端设备。
其中,所述配置数值的取值在本发明中不作限制。
进一步地,所述指定联系人是指负责控制数据同步请求的用户。
通过上述实施方式,能够确保所述存储引擎接收到所述指令,进而确保所述存储引擎能够完成数据同步,另外,能够在所述存储引擎未接收到所述指令时,生成并发送告警信息,以提醒所述指定联系人对所述告警信息进行处理。
在本发明的至少一个实施例中,所述方法还包括:
当监测到存储引擎完成数据同步时,所述服务器获取所述数据同步请求的请求编号,并根据所述请求编号生成提示信息,所述服务器采用对称加密技术加密所述提示信息,得到密文,当检测到所述密文解密成功时,所述服务器将所述提示信息显示在所述指定联系人的终端设备上。
由以上技术方案可以看出,本发明通过服务器与数据源建立网络连接,有效降低了数据源与存储引擎之间通信的繁杂性,另外,通过服务器统一同步数据,能够减少数据源所在设备的CPU以及内存资源的消耗,提高了数据源所在设备运行的效率,同时,无需多次分析处理数据源中的数据,缩短了将变更数据同步于存储引擎的时间。
如图2所示,是本发明数据同步装置的较佳实施例的功能模块图。所述数据同步装置11包括监听单元110、读取单元111、执行单元112、清洗单元113、提取单元114、建立单元115、生成单元116、发送单元117、获取单元118、确定单元119、检测单元120、加密单元121及显示单元122。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
监听单元110监听数据源上的修改操作。
在本发明的至少一个实施例中,所述数据源可以是数据库应用程序所使用的数据库,也可以是数据库服务器。
进一步地,所述修改操作可以是将所述数据源中的数据进行删除、也可以是对所述数据源中的数据进行更改、也可以是在所述数据源中增加新的数据,本发明对所述修改操作不作限制。
在本发明的至少一个实施例中,所述服务器在所述数据源中插入监视代码,所述监视代码用于检测所述数据源中是否有keypress事件或者keydown事件产生,当所述数据源中有所述keypress事件或者所述keydown事件产生时,所述监听单元110确定产生所述keypress事件或者所述keydown事件的目标按键,进一步地,所述监听单元110检测所述目标按键是否为预设按键。
具体地,所述监视代码能够查询所述数据源对应的日志,当查询到所述日志中有keypress事件或者keydown事件产生时,以查询结果作为响应结果。
其中,所述预设按键能够用于在数据源中的数据被修改后,进行相应的数据保存。
通过上述实施方式,能够实时监听所述数据源上的修改操作,有效避免了修改操作的遗漏。
当所述数据源上有修改操作产生时,读取单元111从所述数据源对应的重做日志组中读取目标重做日志。
在本发明的至少一个实施例中,为了在数据源出现崩溃时能够及时恢复数据,所述数据源都会设置对应的重做日志组,进一步地,所述重做日志组用于存储多个重做日志。
在本发明的至少一个实施例中,所述目标重做日志是指未处理的重做日志。
在本发明的至少一个实施例中,在从所述数据源对应的重做日志组中读取目标重做日志之前,确定单元119确定产生所述修改操作的目标人物,进一步地,检测单元120检测所述目标人物是否存在于配置名单中,当所述目标人物存在于所述配置名单中时,所述确定单元119确定所述目标人物具有修改权限。
其中,所述配置名单上的人物为具有修改权限的用户。
通过上述实施方式,能够避免不具有修改权限的人物对所述数据源中的数据进行修改,进而避免不具有修改权限的人物对存储引擎中的数据进行篡改,提高了数据源及存储引擎中数据的安全性。
在本发明的至少一个实施例中,所述数据源在所述重做日志组中创建消息缓存队列,所述消息缓存队列中存储至少一个未处理的重做日志。
在本发明的至少一个实施例中,所述读取单元111从所述数据源对应的重做日志组中读取目标重做日志包括:
所述读取单元111获取预先配置的线程数量,根据所述线程数量创建线程,得到目标线程,进一步地,所述读取单元111调用start命令启动所述目标线程,通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志,更进一步地,所述读取单元111将所述目标重做日志从所述消息缓存队列中剔除。
通过多线程获取目标重做日志的方式,提高目标重做日志的读取效率。
执行单元112解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据。
在本发明的至少一个实施例中,所述类型包括增加类型、删除类型及更改类型。
在本发明的至少一个实施例中,所述执行单元112解析所述目标重做日志,得到所述目标重做日志的类型包括:
所述执行单元112获取所述目标重做日志的日志名称及生成时间,并根据所述日志名称从预设列表中索引出与所述日志名称对应的抽象语法树,进一步地,所述执行单元112获取所述抽象语法树的构建时间,并将与所述生成时间距离最近的构建时间确定为目标时间,进一步地,所述执行单元112将所述目标时间对应的抽象语法树确定为第一抽象语法树,并获取所述目标重做日志的源码,所述执行单元112将所述源码的格式转换为预设格式,得到具有预设格式的目标代码,所述执行单元112对所述目标代码进行词法解析,并对词法解析后的目标代码进行语法解析,得到预处理代码,所述执行单元112根据所述预处理代码及所述日志名称,构建第二抽象语法树,并将所述第二抽象语法树存储于所述预设列表中,并将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型。
其中,所述预设格式是指可以生成所述第二抽象语法树的格式,由于能够将所述源码转换成统一的预设格式,因此,本方案不限制所述源码的格式,所述源码可以是C语言格式、也可以是JAVA语言格式等。通过对所述源码进行格式化,能够得到统一的预设格式,因此不管是哪种格式的源码,经过格式化之后,都可以转换为统一的预设格式。
进一步地,所述词法解析是将所述目标代码切成多个语元,并为每个语元分配一个编号。实际上是将所述源码切割成多个语元,并按照顺序为每个语元分配一个编号。
更进一步地,所述语法解析是在词法解析的基础上将各个语元组合成具有一定语法的语句,如“程序”、“表达式”等。
通过将距离所述生成时间最近的构建时间对应的抽象语法树与所述生成时间对应的目标重做日志构建的抽象语法树进行对比,能够直观、准确地确定所述目标重做日志的类型。
在本发明的至少一个实施例中,所述执行单元112将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型包括:
(1)当检测到不属于所述第一抽象语法树且属于所述第二抽象语法树的数据时,所述执行单元112将该数据确定为新增数据,并将所述目标重做日志的类型确定为增加类型。
(2)当检测到属于所述第一抽象语法树且不属于所述第二抽象语法树的数据时,所述执行单元112将该数据确定为删除数据,并将所述目标重做日志的类型确定为删除类型。
(3)当检测到所述第一抽象语法树与所述第二抽象语法树的相应位置上对应的数据不同时,所述执行单元112将所述第二抽象语法树的相应位置上对应的数据确定为更改数据,并将所述目标重做日志的类型确定为更改类型。
清洗单元113对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据。
在本发明的至少一个实施例中,所述目标数据是将所述变更数据进行去重及从所述变更数据中过滤掉错误数据后得到的数据。
在本发明的至少一个实施例中,所述清洗单元113对所述变更数据进行清洗,得到目标数据包括:
当检测到所述变更数据中存在多个相同的数据时,所述清洗单元113将所述多个相同的数据确定为重复数据,进一步地,所述清洗单元113保留所述重复数据中的任意一个数据作为剩余数据,并将所述剩余数据从所述变更数据中剔除,得到去重处理后的变更数据,并将所述去重处理后的变更数据确认为第一数据,所述清洗单元113检测所述第一数据中是否存在不属于预设区间的数据,当检测到所述第一数据中存在不属于所述预设区间的数据时,所述清洗单元113删除该数据,得到所述目标数据。
其中,所述预设区间是指数据的限定范围值,进一步地,所述预设区间的取值范围在本发明中不作限制。
通过剔除掉所述变更数据中的重复数据,使重复数据无需同步至存储引擎,不仅能够节约存储引擎的存储空间,还能节省数据同步的时间,另外,通过过滤所述变更数据中的错误数据,提高了所述变更数据的准确性。
当接收到数据同步请求时,提取单元114从所述数据同步请求中提取引擎信息。
在本发明的至少一个实施例中,所述数据同步请求可以是由所述数据源发出的,所述数据同步请求的信息包括,但不限于:请求编号、引擎信息等。进一步地,所述引擎信息表征存储引擎。
进一步地,所述存储引擎能够用来存储数据,另外,不同的存储引擎能够存储不同格式的数据。
在本发明的至少一个实施例中,所述提取单元114从所述数据同步请求中提取引擎信息包括:
所述提取单元114获取目标标签,进一步地,所述提取单元114从所述数据同步请求所携带的所有信息中提取与所述目标标签对应的信息,作为所述引擎信息。
其中,所述目标标签是指与所述引擎信息对应的标签。
进一步地,所述标签的格式可以是由字符组成,也可以是由数字组成,本发明对所述标签的格式不作限制。另外,所述标签的长度可以是2位,也可以是3位,本发明对所述标签的长度也不作限制。例如,标签abc。
建立单元115根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接。
在本发明的至少一个实施例中,所述引擎信息中含有存储引擎的标识,因此,所述服务器能够根据所述引擎信息确定所述存储引擎。
在本发明的至少一个实施例中,所述建立单元115建立网络连接的方式属于现有技术,本发明不作具体阐述。
通过与存储引擎建立连接,使服务器可以中转数据,此外,存储引擎无需与所述数据源建立连接,有效降低了数据源与存储引擎间通信的繁杂性。
生成单元116根据所述类型及所述目标数据,生成与所述存储引擎对应的指令。
在本发明的至少一个实施例中,所述指令是指能够执行数据同步请求的代码,另外,不同存储引擎对应不同的指令。进一步地,所述指令的表现形式可以为{类型:待传输数据}。
在本发明的至少一个实施例中,所述生成单元116根据所述类型及所述目标数据,生成与所述存储引擎对应的指令包括:
所述生成单元116获取所述存储引擎的存储格式,并将所述目标数据按照所述存储格式进行格式转换,得到所述存储引擎中的待传输数据,进一步地,所述生成单元116封装所述类型及所述待传输数据,得到所述指令。
具体地,所述生成单元116封装所述类型及所述待传输数据,得到所述指令包括:
所述生成单元116采用JSON技术封装所述类型及所述待传输数据,得到所述指令。
其中,所述JSON(JavaScript Object Notation,JS对象简谱)技术是一种轻量级的数据交换格式。所述JSON技术采用完全独立于编程语言的文本格式来存储和表示数据,易于阅读和编写,同时也易于机器解析和生成,有效地提升网络传输效率。
通过上述实施方式,将所述目标数据及所述类型进行封装,使所述目标数据及所述类型能够随着所述指令传入到所述存储引擎进行数据处理。
发送单元117通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
在本发明的至少一个实施例中,获取单元118获取发送所述指令的第一时刻,并将加上预设时段后的第一时刻确定为第二时刻,当检测到所述存储引擎在所述第二时刻之前未完成数据同步时,所述检测单元120检测所述存储引擎是否接收到所述指令,当所述存储引擎未接收到所述指令时,所述发送单元117重复发送所述指令,直至发送次数达到配置数值或者所述存储引擎接收到所述指令,当所述发送次数达到所述配置数值且所述存储引擎未接收到所述指令时,所述生成单元116生成告警信息,所述发送单元117将所述告警信息发送至指定联系人的终端设备。
其中,所述配置数值的取值在本发明中不作限制。
进一步地,所述指定联系人是指负责控制数据同步请求的用户。
通过上述实施方式,能够确保所述存储引擎接收到所述指令,进而确保所述存储引擎能够完成数据同步,另外,能够在所述存储引擎未接收到所述指令时,生成并发送告警信息,以提醒所述指定联系人对所述告警信息进行处理。
在本发明的至少一个实施例中,当监测到存储引擎完成数据同步时,所述获取单元118获取所述数据同步请求的请求编号,所述生成单元116根据所述请求编号生成提示信息,加密单元121采用对称加密技术加密所述提示信息,得到密文,当检测到所述密文解密成功时,显示单元122将所述提示信息显示在所述指定联系人的终端设备上。
由以上技术方案可以看出,本发明通过服务器与数据源建立网络连接,有效降低了数据源与存储引擎之间通信的繁杂性,另外,通过服务器统一同步数据,能够减少数据源所在设备的CPU以及内存资源的消耗,提高了数据源所在设备运行的效率,同时,无需多次分析处理数据源中的数据,缩短了将变更数据同步于存储引擎的时间。
如图3所示,是本发明实现数据同步方法的较佳实施例的服务器的结构示意图。
在本发明的一个实施例中,所述服务器1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如数据同步程序。
本领域技术人员可以理解,所述示意图仅仅是服务器1的示例,并不构成对服务器1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器1还可以包括输入输出设备、网络接入设备、总线等。
所述处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述服务器1的运算核心和控制中心,利用各种接口和线路连接整个服务器1的各个部分,及获取所述服务器1的操作系统以及安装的各类应用程序、程序代码等。
所述处理器13获取所述服务器1的操作系统以及安装的各类应用程序。所述处理器13获取所述应用程序以实现上述各个数据同步方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13获取,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述服务器1中的获取过程。例如,所述计算机程序可以被分割成监听单元110、读取单元111、执行单元112、清洗单元113、提取单元114、建立单元115、生成单元116、发送单元117、获取单元118、确定单元119、检测单元120、加密单元121及显示单元122。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或获取存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述服务器1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器12可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述存储器12可以是服务器1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。
所述服务器1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器获取时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可获取文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
结合图1,所述服务器1中的所述存储器12存储多个指令以实现一种数据同步方法,所述处理器13可获取所述多个指令从而实现:监听数据源上的修改操作;当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志;解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据;对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据;当接收到数据同步请求时,从所述数据同步请求中提取引擎信息;根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接;根据所述类型及所述目标数据,生成与所述存储引擎对应的指令;通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (9)
1.一种数据同步方法,应用于服务器中,其特征在于,所述数据同步方法包括:
监听数据源上的修改操作;
当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志,包括:获取预先配置的线程数量;根据所述线程数量创建线程,得到目标线程;调用start命令启动所述目标线程;通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志;将所述目标重做日志从所述消息缓存队列中剔除;
解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据;
对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据;
当接收到数据同步请求时,从所述数据同步请求中提取引擎信息;
根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接;
根据所述类型及所述目标数据,生成与所述存储引擎对应的指令;
通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
2.如权利要求1所述的数据同步方法,其特征在于,所述解析所述目标重做日志,得到所述目标重做日志的类型包括:
获取所述目标重做日志的日志名称及生成时间,并根据所述日志名称从预设列表中索引出与所述日志名称对应的抽象语法树;
获取所述抽象语法树的构建时间,并将与所述生成时间距离最近的构建时间确定为目标时间;
将所述目标时间对应的抽象语法树确定为第一抽象语法树;
获取所述目标重做日志的源码;
将所述源码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码及所述日志名称,构建第二抽象语法树,并将所述第二抽象语法树存储于所述预设列表中;
将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型。
3. 如权利要求2所述的数据同步方法,其特征在于,所述将所述第一抽象语法树与所述第二抽象语法树进行对比,确定所述目标重做日志的类型包括:
当检测到不属于所述第一抽象语法树且属于所述第二抽象语法树的数据时,将该数据确定为新增数据,并将所述目标重做日志的类型确定为增加类型;及/或
当检测到属于所述第一抽象语法树且不属于所述第二抽象语法树的数据时,将该数据确定为删除数据,并将所述目标重做日志的类型确定为删除类型;及/或
当检测到所述第一抽象语法树与所述第二抽象语法树的相应位置上对应的数据不同时,将所述第二抽象语法树的相应位置上对应的数据确定为更改数据,并将所述目标重做日志的类型确定为更改类型。
4.如权利要求1所述的数据同步方法,其特征在于,所述目标数据存储于区块链中,所述对所述变更数据进行清洗,得到目标数据包括:
当检测到所述变更数据中存在多个相同的数据时,将所述多个相同的数据确定为重复数据;
保留所述重复数据中的任意一个数据作为剩余数据,并将所述剩余数据从所述变更数据中剔除,得到去重处理后的变更数据,并将所述去重处理后的变更数据确认为第一数据;
检测所述第一数据中是否存在不属于预设区间的数据;
当检测到所述第一数据中存在不属于所述预设区间的数据时,删除该数据,得到所述目标数据。
5.如权利要求1所述的数据同步方法,其特征在于,所述根据所述类型及所述目标数据,生成与所述存储引擎对应的指令包括:
获取所述存储引擎的存储格式;
将所述目标数据按照所述存储格式进行格式转换,得到所述存储引擎中的待传输数据;
封装所述类型及所述待传输数据,得到所述指令。
6.如权利要求1所述的数据同步方法,其特征在于,所述数据同步方法还包括:
获取发送所述指令的第一时刻;
将加上预设时段后的第一时刻确定为第二时刻;
当检测到所述存储引擎在所述第二时刻之前未完成数据同步时,检测所述存储引擎是否接收到所述指令;
当所述存储引擎未接收到所述指令时,重复发送所述指令,直至发送次数达到配置数值或者所述存储引擎接收到所述指令;
当所述发送次数达到所述配置数值且所述存储引擎未接收到所述指令时,生成告警信息;
将所述告警信息发送至指定联系人的终端设备。
7.一种数据同步装置,运行于服务器中,其特征在于,所述数据同步装置包括:
监听单元,用于监听数据源上的修改操作;
读取单元,用于当所述数据源上有修改操作产生时,从所述数据源对应的重做日志组中读取目标重做日志,包括:获取预先配置的线程数量;根据所述线程数量创建线程,得到目标线程;调用start命令启动所述目标线程;通过启动后的目标线程按序逐条读取所述重做日志组中消息缓存队列的日志,并将读取到的日志作为所述目标重做日志;将所述目标重做日志从所述消息缓存队列中剔除;
执行单元,用于解析所述目标重做日志,得到所述目标重做日志的类型,并获取所述目标重做日志中的变更数据;
清洗单元,用于对所述变更数据进行清洗,得到目标数据,并根据所述类型存储所述目标数据;
提取单元,用于当接收到数据同步请求时,从所述数据同步请求中提取引擎信息;
建立单元,用于根据所述引擎信息确定存储引擎,并与所述存储引擎建立连接,得到网络链接;
生成单元,用于根据所述类型及所述目标数据,生成与所述存储引擎对应的指令;
发送单元,用于通过所述网络链接将所述指令发送至所述存储引擎,以使所述存储引擎完成数据同步。
8. 一种服务器,其特征在于,所述服务器包括:
存储器,存储至少一个指令;及
处理器,获取所述存储器中存储的指令以实现如权利要求1至6中任意一项所述的数据同步方法。
9.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被服务器中的处理器获取以实现如权利要求1至6中任意一项所述的数据同步方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010357422.XA CN111694840B (zh) | 2020-04-29 | 2020-04-29 | 数据同步方法、装置、服务器及存储介质 |
PCT/CN2020/131952 WO2021218143A1 (zh) | 2020-04-29 | 2020-11-26 | 数据同步方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010357422.XA CN111694840B (zh) | 2020-04-29 | 2020-04-29 | 数据同步方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111694840A CN111694840A (zh) | 2020-09-22 |
CN111694840B true CN111694840B (zh) | 2023-05-30 |
Family
ID=72476825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010357422.XA Active CN111694840B (zh) | 2020-04-29 | 2020-04-29 | 数据同步方法、装置、服务器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111694840B (zh) |
WO (1) | WO2021218143A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694840B (zh) * | 2020-04-29 | 2023-05-30 | 平安科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN112818054B (zh) * | 2020-10-15 | 2022-05-06 | 广州南天电脑系统有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN112434062A (zh) * | 2020-11-26 | 2021-03-02 | 平安普惠企业管理有限公司 | 准实时数据处理方法、装置、服务器及存储介质 |
CN112685427B (zh) * | 2021-01-25 | 2024-03-26 | 拉卡拉支付股份有限公司 | 数据接入方法、装置、电子设备及存储介质 |
CN113722401B (zh) * | 2021-11-04 | 2022-02-01 | 树根互联股份有限公司 | 数据缓存方法、装置、计算机设备及可读存储介质 |
CN114531289A (zh) * | 2022-02-21 | 2022-05-24 | 平安普惠企业管理有限公司 | 基于人工智能的系统交互方法及相关设备 |
CN114564413B (zh) * | 2022-04-28 | 2022-07-29 | 景网技术有限公司 | 一种同步设备测试方法及装置 |
CN114647703B (zh) * | 2022-05-23 | 2022-08-30 | 武汉中科通达高新技术股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115033647B (zh) * | 2022-08-11 | 2022-11-08 | 杭州湖畔网络技术有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN115470207A (zh) * | 2022-11-02 | 2022-12-13 | 深圳联友科技有限公司 | 一种基于消息队列和计算框架的数据接入系统及方法 |
CN116186188B (zh) * | 2023-04-21 | 2023-07-07 | 智道网联科技(北京)有限公司 | 地图引擎的日志数据处理方法及相关设备 |
CN116527691B (zh) * | 2023-06-27 | 2023-11-03 | 天津中远海运散运数字科技有限公司 | 一种船岸数据的同步方法、装置、设备和介质 |
CN116881371B (zh) * | 2023-09-07 | 2023-11-14 | 北京逐风科技有限公司 | 数据同步方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052681A (zh) * | 2018-01-12 | 2018-05-18 | 毛彬 | 一种关系型数据库间结构化数据的同步方法及系统 |
US20180253483A1 (en) * | 2017-03-06 | 2018-09-06 | Datastreams Corp. | Apparatus and method for replicating changed-data in source database management system to target database management system in real time |
CN108897804A (zh) * | 2018-06-15 | 2018-11-27 | 东北大学秦皇岛分校 | 一种互联网空间数据的搜索系统及方法 |
WO2019000629A1 (zh) * | 2017-06-25 | 2019-01-03 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、系统、应用服务器及计算机可读存储介质 |
CN110147411A (zh) * | 2019-05-20 | 2019-08-20 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100049749A1 (en) * | 2008-08-22 | 2010-02-25 | Inventec Corporation | System of synchronizing data between storage devices and method thereof |
CN107122497A (zh) * | 2017-05-25 | 2017-09-01 | 北京微影时代科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN111026794A (zh) * | 2019-11-26 | 2020-04-17 | 山东中创软件商用中间件股份有限公司 | 一种基于数据源的数据管理方法、装置、设备及介质 |
CN111694840B (zh) * | 2020-04-29 | 2023-05-30 | 平安科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
-
2020
- 2020-04-29 CN CN202010357422.XA patent/CN111694840B/zh active Active
- 2020-11-26 WO PCT/CN2020/131952 patent/WO2021218143A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180253483A1 (en) * | 2017-03-06 | 2018-09-06 | Datastreams Corp. | Apparatus and method for replicating changed-data in source database management system to target database management system in real time |
WO2019000629A1 (zh) * | 2017-06-25 | 2019-01-03 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、系统、应用服务器及计算机可读存储介质 |
CN108052681A (zh) * | 2018-01-12 | 2018-05-18 | 毛彬 | 一种关系型数据库间结构化数据的同步方法及系统 |
CN108897804A (zh) * | 2018-06-15 | 2018-11-27 | 东北大学秦皇岛分校 | 一种互联网空间数据的搜索系统及方法 |
CN110147411A (zh) * | 2019-05-20 | 2019-08-20 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111694840A (zh) | 2020-09-22 |
WO2021218143A1 (zh) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694840B (zh) | 数据同步方法、装置、服务器及存储介质 | |
WO2022088804A1 (zh) | 消息推送方法、装置、电子设备及存储介质 | |
CN111797351A (zh) | 页面数据管理方法、装置、电子设备及介质 | |
CN111638908A (zh) | 接口文档生成方法、装置、电子设备及介质 | |
WO2021120688A1 (zh) | 医疗误诊检测方法、装置、电子设备及存储介质 | |
CN111796809A (zh) | 接口文档生成方法、装置、电子设备及介质 | |
CN112163412B (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN111881209A (zh) | 异构数据库的数据同步方法、装置、电子设备及介质 | |
CN111814045A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113343824A (zh) | 双录质检方法、装置、设备及介质 | |
CN111221722B (zh) | 行为检测方法、装置、电子设备及存储介质 | |
CN111796936A (zh) | 请求处理方法、装置、电子设备及介质 | |
CN114169303A (zh) | 基于vue.js的表格编辑方法、装置、设备及介质 | |
CN112434062A (zh) | 准实时数据处理方法、装置、服务器及存储介质 | |
CN114301670A (zh) | 基于ipv6地址的终端认证方法、装置、设备及介质 | |
CN112583805A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
CN113141369A (zh) | 基于人工智能的防火墙策略管理方法及相关设备 | |
CN112100239A (zh) | 车辆检测设备画像生成方法、装置、服务器及可读存储介质 | |
CN111651363A (zh) | 测试数据获取方法、装置、电子设备及介质 | |
CN111933241B (zh) | 医疗数据解析方法、装置、电子设备及存储介质 | |
CN115001768A (zh) | 基于区块链的数据交互方法、装置、设备及存储介质 | |
CN114610386A (zh) | H5与应用程序的交互方法、装置、设备及存储介质 | |
WO2021103409A1 (zh) | 一种数据生成方法、装置、电子设备及存储介质 | |
CN112181485B (zh) | 脚本执行方法、装置、电子设备及存储介质 | |
US20220180217A1 (en) | Integrating documentation knowledge with log mining for system diagnosis |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40029434 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |