CN112328701A - 数据同步方法、终端设备及计算机可读存储介质 - Google Patents

数据同步方法、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112328701A
CN112328701A CN202011367182.8A CN202011367182A CN112328701A CN 112328701 A CN112328701 A CN 112328701A CN 202011367182 A CN202011367182 A CN 202011367182A CN 112328701 A CN112328701 A CN 112328701A
Authority
CN
China
Prior art keywords
data
interval
client
instruction
verification
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
CN202011367182.8A
Other languages
English (en)
Other versions
CN112328701B (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.)
Guangdong Ruizhu Intelligent Technology Co ltd
Original Assignee
Guangdong Ruizhu Intelligent Technology Co 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 Guangdong Ruizhu Intelligent Technology Co ltd filed Critical Guangdong Ruizhu Intelligent Technology Co ltd
Priority to CN202011367182.8A priority Critical patent/CN112328701B/zh
Publication of CN112328701A publication Critical patent/CN112328701A/zh
Application granted granted Critical
Publication of CN112328701B publication Critical patent/CN112328701B/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)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种数据同步方法、终端设备及计算机可读存储介质,该方法的步骤包括:获取数据库中的客户端数据,将客户端数据进行分组,得到客户端数据对应的预设个数的数据区间;将各个数据区间中的数据信息依次发送至服务器端进行数据校验,并接收服务器端基于数据信息返回的数据指令;若确定数据指令为数据更新指令,则确定数据指令中对应的数据序列号和待更新数据,并基于待更新数据更新数据序列号对应的客户端数据。由此可知,本发明是主动发起数据校验,而不需要人工进行数据同步操作,同时,将客户端数据进行分组,对各个数据区间中的客户端数据进行分组校验,降低每次分组处理的资源占用,从而提高了数据同步效率。

Description

数据同步方法、终端设备及计算机可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据同步方法、终端设备及计算机可读存储介质。
背景技术
在数据同步的过程中,由于数据在发送接口交互异常,导致数据下发异常,导致数据同步异常。或者,对数据进行增加、删除、改动等操作时,由于接收服务器下发指令的顺序问题(服务器发送为先删后增,而设备端接收为先增后删);系统数据库损坏后,数据在设备端本地还原导致部分数据丢失;以及设备端接收数据后未及时回写至flash就异常断电的等,导致了数据同步一场。
在数据同步异常,需要用户通过手动触发指令对数据进行同步,进一步地,在数据同步的过程中,需一次性将数据进行校验更新,从而导致数据同步效率低。
发明内容
本发明的主要目的在于提供一种数据同步方法、终端设备及计算机可读存储介质,旨在提升数据同步效率。
为实现上述目的,本发明实施例提供一种数据同步方法,所述数据同步方法包括:
获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间;
将各个所述数据区间中的数据信息依次发送至服务器端进行数据校验,并接收所述服务器端基于所述数据信息返回的数据指令;
若确定所述数据指令为数据更新指令,则确定所述数据指令中对应的数据序列号和待更新数据,并基于所述待更新数据更新所述数据序列号对应的客户端数据。
可选地,所述获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间的步骤之前,还包括:
获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库。
可选地,所述获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库的步骤之前,还包括:
客户端重启后,若确定在重启时间段内存在服务器端的未下发数据,则触发数据同步;或者
响应用户的触发指令,若确定所述触发指令为用户离家指令,则触发数据同步;或者
确定所述客户端对应的位置信息,若确定所述位置信息在预设用户位置的范围之外,则触发数据同步。
为实现上述目的,本发明实施例提供还一种数据同步方法,所述数据同步方法应用于服务器端,所述数据同步方法包括:
响应客户端的数据校验请求,依次接收所述客户端发送的数据区间对应的数据信息,其中,所述数据区间至少标记有区间首标识和区间尾标识;
获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果,其中,所述检验区间的检验区间首标识和所述区间首标识匹配;
根据所述校验结果生成对应的数据指令,并将所述数据指令发送至所述客户端。
可选地,所述基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤包括:
确定所述数据区间中各个数据序列号对应的修改时间,以及确定各个所述数据序列号在所述校验区间中对应的更新时间;
若确定所述更新时间与所述修改时间不相同,则获取所述更新时间对应的第一数据包,并获取所述修改时间对应的第二数据包;
基于所述第一数据包和第二数据包确定所述检验结果。
可选地,所述基于所述第一数据包和第二数据包确定所述检验结果的步骤包括:
检测所述第一数据包中的第一数据内容和所述第二数据包中的第二数据内容是否相同;
若检测到所述第一数据内容与所述第二数据内容不相同,则基于所述第一数据内容和所述第二数据内容确定对应的待更新数据。
可选地,所述获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤之后,还包括:
若确定所述检验结果中不存在待更新数据,并确定所述数据区间未被标记为第一个区间,则确定所述数据区间是否被标记为最后一个区间;
若确定所述数据区间被标记为最后一个区间,则检测在所述数据区间之后是否存在其他第一序列数据;
若检测到在所述数据区间之后不存在所述其他第一序列数据,则发送数据检验完成的提示指令至所述客户端。
可选地,所述获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤之后,还包括
若确定所述检验结果中不存在待更新数据,并确定所述数据区间被标记为第一个区间,则检测在所述数据区间之前是否存在其他第二序列数据;
若检测到在所述数据区间之前不存在所述其他第二序列数据,则发送检验所述数据区间的下一个数据区间的提示指令至所述客户端。
本发明实施例还提供一种终端设备,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的数据同步程序,所述数据同步程序被所述处理器执行时实现如上所述的数据同步方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据同步程序,所述数据同步程序被处理器执行时实现如上所述的数据同步方法的步骤。
本发明实施例提供的数据同步方法、终端设备及计算机可读存储介质,通过获取数据库中的客户端数据,将客户端数据进行分组,得到客户端数据对应的预设个数的数据区间;将各个数据区间中的数据信息依次发送至服务器端进行数据校验,并接收服务器端基于数据信息返回的数据指令;若确定数据指令为数据更新指令,则确定数据指令中对应的数据序列号和待更新数据,并基于待更新数据更新数据序列号对应的客户端数据。由此可知,本发明在数据更新的过程中,客户端是主动向服务器端发起数据校验的,而不需要人工进行数据同步操作,同时,将客户端数据进行分组,得到客户端数据的各个数据区间,然后对各个数据区间中的客户端数据进行分组校验,降低每次分组处理的资源占用,从而提高了数据同步效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2是本发明数据同步方法第一实施例的流程示意图;
图3是本发明数据同步方法第二实施例的流程示意图;
图4是本发明数据同步方法第三实施例的流程示意图;
图5是本发明数据同步方法第四实施例的流程示意图
图6是本发明数据同步装置的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取数据库中的客户端数据,将客户端数据进行分组,得到客户端数据对应的预设个数的数据区间;将各个数据区间中的数据信息依次发送至服务器端进行数据校验,并接收服务器端基于数据信息返回的数据指令;若确定数据指令为数据更新指令,则确定数据指令中对应的数据序列号和待更新数据,并基于待更新数据更新数据序列号对应的客户端数据。由此,本发明提高了数据同步效率。
具体地,参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。
本发明实施例的终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),用户接口1003可选的还可以包括标准的有线接口(如USB(UniversalSerial Bus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可以包括标准的有线接口、无线接口(如WI-FI((Wireless-Fidelity))接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,终端设备还可以包括RF(RadioFrequency,射频)电路,传感器、WiFi模块等。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作设备、网络通信模块、用户接口模块以及数据同步程序。其中,操作设备是管理和控制终端设备硬件和软件资源的程序,支持数据同步程序以及其它软件或程序的运行。
在图1所示的终端设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;其中,处理器1001可以用于调用存储器1005中存储的数据同步程序,并执行如下操作:
获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间;
将各个所述数据区间中的数据信息依次发送至服务器端进行数据校验,并接收所述服务器端基于所述数据信息返回的数据指令;
若确定所述数据指令为数据更新指令,则确定所述数据指令中对应的数据序列号和待更新数据,并基于所述待更新数据更新所述数据序列号对应的客户端数据。
所述数据库是构建于客户端本地的,可以是设于客户端内部也可以是设于客户端外部但与客户端数据连接。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
客户端重启后,若确定在重启时间段内存在服务器端的未下发数据,则触发数据同步;或者
响应用户的触发指令,若确定所述触发指令为用户离家指令,则触发数据同步;或者
确定所述客户端对应的位置信息,若确定所述位置信息在预设用户位置的范围之外,则触发数据同步。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
响应客户端的数据校验请求,依次接收所述客户端发送的数据区间对应的数据信息,其中,所述数据区间至少标记有区间首标识和区间尾标识;
获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果,其中,所述检验区间的检验区间首标识和所述区间首标识匹配;
根据所述校验结果生成对应的数据指令,并将所述数据指令发送至所述客户端。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
确定所述数据区间中各个数据序列号对应的修改时间,以及确定各个所述数据序列号在所述校验区间中对应的更新时间;
若确定所述更新时间与所述修改时间不相同,则获取所述更新时间对应的第一数据包,并获取所述修改时间对应的第二数据包;
基于所述第一数据包和第二数据包确定所述检验结果。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
检测所述第一数据包中的第一数据内容和所述第二数据包中的第二数据内容是否相同;
若检测到所述第一数据内容与所述第二数据内容不相同,则基于所述第一数据内容和所述第二数据内容确定对应的待更新数据。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
若确定所述检验结果中不存在待更新数据,并确定所述数据区间未被标记为第一个区间,则确定所述数据区间是否被标记为最后一个区间;
若确定所述数据区间被标记为最后一个区间,则检测在所述数据区间之后是否存在其他第一序列数据;
若检测到在所述数据区间之后不存在所述其他第一序列数据,则发送数据检验完成的提示指令至所述客户端。
进一步地,处理器1001可以调用存储器1005中存储的数据同步程序,还执行以下操作:
若确定所述检验结果中不存在待更新数据,并确定所述数据区间被标记为第一个区间,则检测在所述数据区间之前是否存在其他第二序列数据;
若检测到在所述数据区间之前不存在所述其他第二序列数据,则发送检验所述数据区间的下一个数据区间的提示指令至所述客户端。
本发明实施例通过获取数据库中的客户端数据,将客户端数据进行分组,得到客户端数据对应的预设个数的数据区间;将各个数据区间中的数据信息依次发送至服务器端进行数据校验,并接收服务器端基于数据信息返回的数据指令;若确定数据指令为数据更新指令,则确定数据指令中对应的数据序列号和待更新数据,并基于待更新数据更新数据序列号对应的客户端数据。由此可知,本发明在数据更新的过程中,客户端是主动向服务器端发起数据校验的,而不需要人工进行数据同步操作,同时,将客户端数据进行分组,得到客户端数据的各个数据区间,然后对各个数据区间中的客户端数据进行分组校验,降低每次分组处理的资源占用,从而提高了数据同步效率。
每一个分组校验的内容,是一个数据校验的列表。列表中包含数条校验内容。其每一条待校验数据的数据格式为数据序列唯一码+数据内容唯一码。需要说明的是,本实施例的数据序列唯一码,是一个唯一ID。本实施例的数据内容唯一码,包括但是不仅限于修改时间戳,也可以是修改次数,也可以是修改后的数据校验码(如CRC校验,MD5校验等),只要能够确保数据内容唯一性的标识均可以。
分组数据校验的内容,并不需要附带完整的数据实体,仅需要附带确保数据序列唯一性,以及数据内容唯一性即可。这样大大减少了校验列表的数据大小,减小数据流量。同事也提高数据校验效率。
基于上述的终端设备架构但不限于上述架构,本发明实施例提供了数据同步方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
参照图2,图2为本发明数据同步方法第一实施例的流程示意图。所述数据同步方法应用于客户端,所述数据同步方法包括:
步骤S50,获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间。
本发明本实施例终端设备可以是一种数据同步装置,也可以是一种客户端或服务器,本实施例以嵌入式客户端作为执行主体进行举例。
需要说明的是,嵌入式客户端获取数据库中的客户端数据,客户端数据包括但不限制于场景数据、音频数据(语音留言)和语音算法库更新,客户端数据的数据格式为数据序列号+数据包+修改时间,数据序列号是唯一的,即每个客户端数据有且仅有唯一的数据序列号,数据包中包含有数据内容。如
表1所示。
数据序列号 数据包 修改时间
65730 Data1 2020-05-30 11:12:20
65731 Data2 2020-05-30 11:12:32
... ... ...
表1
嵌入式客户端需要对客户端数据进行数据同步时,首先获取数据库中已经完成预设顺序排序的客户端数据,其中,预设顺序可为从大到小,也可为从小到大,然后根据嵌入式客户端的运行能力,即嵌入式客户端一次能运算的数据量,将客户端数据进行分组,即将客户端数据分成预设个数的数据区间,其中,预设个数与数据量和客户端数据的数据个数相对应。
需要说明的是,每个数据区间都标记有对应的区间首标识Seq-start和区间尾标识Seq-end,区间首标识和区间尾标识即各个客户端数据分组后对应的数据序列号。在所有的数据区间中都存在有第一个数据区间First-interval和最后一个数据区间Last-interval,每一个数据区间可表示为[Seq-start,Seq-end]
在本实施例中,比如,客户端数据的个数为100,数据序列号为0至99,数据量为10,嵌入式客户端则将客户端数据分为10个数据区间,10个数据区间分别为Q1、Q2至Q10,First-interval:Q1:[0,9]、Q2:[10,19]、Q3:[20,29]至Last-interval:Q1:[90,99]。
步骤S60,将各个所述数据区间中的数据信息依次发送至服务器端进行数据校验,并接收所述服务器端基于所述数据信息返回的数据指令。
嵌入式客户端将客户端数据分成预设个数的数据区间后,依次将各个数据区间中各个数据信息发送至服务器端,其中,数据信息包括数据的数据序列号和数据的修改时间,服务器端接收到各个各个数据区间中各个数据信息后,获取服务器端中该数据区间对应的校验区间,并通过校验区间中的校验信息校验数据信息,其中,校验信息包括数据的数据序列号和数据的更新时间,再根据校验结果生成对应的数据指令,然后将数据指令返回至嵌入式客户端。
在本实施例中,比如,数据序列号为65730客户端数据的数据信息为datalist1,datalist1:{"seq":65730,"change-time":"2020-05-30 11:12:20"},数据序列号为65731客户端数据的数据信息为datalist2,datalist2:{"seq":65731,"change-time":"2020-05-30 11:12:20"}。
需要说明的是,这里的数据校验分组队列,只需要包含数据序列唯一码("seq":65730)+数据内容唯一码("change-time":"2020-05-30 11:12:20"),校验队列并不需要包含数据实体,减小了每一个数据校验包的大小。提升校验效率。
步骤S70,若确定所述数据指令为数据更新指令,则确定所述数据指令中对应的数据序列号和待更新数据,并基于所述待更新数据更新所述数据序列号对应的客户端数据。
嵌入式客户端接收到服务器端发送的数据指令后,对数据指令进行分析,确定该数据指令是否为数据更新指令,若嵌入式客户端确定该数据指令是数据更新指令,嵌入式客户端则对数据指令进行解析,得到数据指令中的待更新数据和数据序列号,然后确定该数据序列号对应的客户端数据,并确定数据指令中的更新类型,其中,更新类型包括但不限制于删除、增加和修改,若嵌入式客户端确定更新类型为删除,嵌入式客户端则将待更新数据从该客户端数据中删除,并相应更新修改时间。若嵌入式客户端确定更新类型为增加,嵌入式客户端则将待更新数据增加至该客户端数据中,并相应更新修改时间。若嵌入式客户端确定该数据指令是时间更新指令,嵌入式客户端则检测该数据指令中是否存在下一个数据区间的校验提示,若嵌入式客户端检测到该数据指令中不存在下一个数据区间的校验提示,嵌入式客户端则确定数据校验和数据同步完成,并将修改时间进行对应的更新。若嵌入式客户端检测到该数据指令中存在下一个数据区间的校验提示,嵌入式客户端则按照上述步骤对下一个数据区间进行数据校验。
进一步地,在上述步骤S60,获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间之前还包括:
步骤S40,获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库。
具体地,在嵌入式客户端对客户端数据进行分组之前,嵌入式客户端获取数据库中的客户端数据,然后按照客户端数据对应的数据序列号从小到大的进行排序,并将排序后的客户端数据更新数据库。
进一步地,嵌入式客户端可按照客户端数据对应的数据序列号从大到小的进行排序。
进一步地,在上述步骤S40,获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库之前还包括:
步骤S10,客户端重启后,若确定在重启时间段内存在服务器端的未下发数据,则触发数据同步;或者
步骤S20,响应用户的触发指令,若确定所述触发指令为用户离家指令,则触发数据同步;或者
步骤S30,确定所述客户端对应的位置信息,若确定所述位置信息在预设用户位置的范围之外,则触发数据同步。
具体实现时,嵌入式客户端是主动发起的数据校验请求的,嵌入式客户端检测到预设用户位置断网或者嵌入式客户端处于上电状态时,无法收到服务器端下发的数据,其中,用户位置包括但不限制于用户居住区域位置和用户办公区域位置,侦测到嵌入式客户端重新上电启动或者网络回复正常后,主动向服务器端发送请求,询问在嵌入式客户端离线期间(断电或断网)是否存在服务器端的未下发数据,若嵌入式客户端接收到服务器端返回存在服务器端的未下发数据的指令,则触发数据同步,对数据进行同步。
进一步地,用户通过app(应用程序)启动对应的触发指令,嵌入式客户端侦测用户启动的触发指令,并响应触发指令,若嵌入式客户端确定该触发指令为离家指令,嵌入式客户端则触发数据同步,并确定用户的离开时长,在该离开时长内对数据进行同步。
进一步地,嵌入式客户端通过位置定位方式,位置定位方式包括但不限制于包括GPS(Global Positioning System,全球定位系统)和蓝牙确定嵌入式客户端对应的位置信息,并检测该位置信息是否在预设用户位置的范围之内,若嵌入式客户端确定位置信息在预设用户位置的范围之内,嵌入式客户端则不触发数据同步,若嵌入式客户端确定位置信息在预设用户位置的范围之外,嵌入式客户端则触发数据同步。
进一步地,用户可在嵌入式客户端中设定默认时间进行数据同步,比如,用户的休息时间,深夜2点至4点时段等,本实施例不作限制。
本实施例实现通过获取数据库中的客户端数据,将客户端数据进行分组,得到客户端数据对应的预设个数的数据区间;将各个数据区间中的数据信息依次发送至服务器端进行数据校验,并接收服务器端基于数据信息返回的数据指令;若确定数据指令为数据更新指令,则确定数据指令中对应的数据序列号和待更新数据,并基于待更新数据更新数据序列号对应的客户端数据。由此可知,本发明在数据更新的过程中,客户端是主动向服务器端发起数据校验的,而不需要人工进行数据同步操作,同时,将客户端数据进行分组,得到客户端数据的各个数据区间,然后对各个数据区间中的客户端数据进行分组校验,降低每次分组处理的资源占用,从而提高了数据同步效率。
参照图3,图3为本发明数据同步方法第二实施例的流程示意图。基于上述第一实施例,在本实施例中,所述数据同步方法应用于服务器端,所述数据同步方法包括:
步骤S80,响应客户端的数据校验请求,依次接收所述客户端发送的数据区间对应的数据信息,其中,所述数据区间至少标记有区间首标识和区间尾标识。
本发明本实施例终端设备可以是一种数据同步装置,也可以是一种客户端或服务器,本实施例以服务器端作为执行主体进行举例。
嵌入式客户端是主动发起的数据校验请求,服务器端侦测到嵌入式客户端发送的数据校验请求后,响应该数据校验请求,依次接收嵌入式客户端发送的数据区间,以及数据区间中对应的数据信息,并确定数据区间对应的区间首标识和区间尾标识。
步骤S90,获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果,其中,所述检验区间的检验区间首标识和所述区间首标识匹配。
服务器端在数据库中获取与该区间首标识和区间尾标识匹配的检验区间首标识和的检验区间尾标识,根据检验区间首标识和的检验区间尾标识确定对应的校验区间,并确定校验区间中的校验信息,校验信息包括与数据区间中各个数据序列号对应的校验数据序列号与各个校验数据序列号对应的更新时间,然后通过校验信息对数据信息进行数据校验,确定是否需要进行数据更新,得到对应的数据校验的校验结果。
步骤S100,根据所述校验结果生成对应的数据指令,并将所述数据指令发送至所述客户端。
服务器端检测在校验结果中是否存在待更新数据,若服务器端检测到在校验结果中存在待更新数据,服务器端则确定该待更新数据对应的数据序列号,以及确定该待更新数据对应的更新类型,并将该待更新数据、更新类型和该数据序列号进行打包,生成数据更新指令,然后将数据更新指令发送至嵌入式客户端,嵌入式客户端接收到数据更新指令后,根据该待更新数据、更新类型和该数据序列号对客户端数据进行更新。若服务器端检测到在校验结果中不存在待更新数据,服务器端则将携带有校验数据对应的更新时间的时间更新指令发送至嵌入式客户端,嵌入式客户端接收到时间更新指令后,根据时间更新指令更新各个客户端数据的修改时间。
进一步地,所述步骤S90包括:
步骤S901,确定所述数据区间中各个数据序列号对应的修改时间,以及确定各个所述数据序列号在所述校验区间中对应的更新时间;
步骤S902,若确定所述更新时间与所述修改时间不相同,则获取所述更新时间对应的第一数据包,并获取所述修改时间对应的第二数据包,
步骤S903,基于所述第一数据包和第二数据包确定所述检验结果。
具体实现时,服务器端确定数据区间中各个数据序列号对应的修改时间,以及确定各个数据序列号在校验区间中对应的更新时间,然后将修改时间和更新时间进行时间对比,确定修改时间和更新时间是否相同,若服务器端确定确定修改时间和更新时间不相同,服务器端则确定对应的数据区间中有数据更新,数据更新包括但不限制于删除、增加和修改,然后确定更新时间对应的第一数据包和修改时间对应的第二数据包,并将第一数据包和第二数据包进行内容对比,根据第一数据包中的第一内容和第二数据包中的第二内容确定数据信息的校验结果。
进一步地,所述步骤S903包括:
步骤S9031,检测所述第一数据包中的第一数据内容和所述第二数据包中的第二数据内容是否相同;
步骤S9032,若检测到所述第一数据内容与所述第二数据内容不相同,则基于所述第一数据内容和所述第二数据内容确定对应的待更新数据。
具体实现时,服务器端检测第一数据包中的第一数据内容和第二数据包中的第二数据内容是否相同,若服务器端检测到第一数据内容与第二数据内容不相同,则对第一数据内容和第二数据内容进行分析,确定第一数据内容和第二数据内容的相差数据内容,并将该相差数据内容确定对应的待更新数据。
在本实施例中,检验信息为checking_datalist1:{"seq":65730,"update-time":"2020-05-30 11:12:20"},第一数据包为checking_Data1{data1-data2-data3},数据信息为datalist1:{"seq":65730,"change-time":"2020-05-30 11:00:18"},第二数据包为Data1{data1-data2},服务器端分析并确定数据序列号seq为65730的数据信息和校验信息不相同,并确定第一数据包和第二数据包的相差数据内容为data3,服务器端则将相差数据内容data3增加至第二数据包Data1中,并更新修改时间,得到更新后的客户端数据为{"seq":65730,"change-time":"2020-05-30 11:12:20","Data1":data1-data2-data3}。
本实施例通过响应客户端的数据校验请求,依次接收客户端发送的数据区间对应的数据信息,其中,数据区间至少标记有区间首标识和区间尾标识;获取服务器端中检验区间对应的校验信息,基于校验信息对数据区间中的数据信息进行检验,确定对应的检验结果,其中,检验区间的检验区间首标识和区间首标识匹配,检验区间的检验区间尾标识和区间尾标识匹配;根据校验结果生成对应的数据指令,并将数据指令发送至客户端。由此可知,本实施例在进行数据校验的过程中,通过将数据序列号、修改时间和更新时间进行比对校验,根据校验结果进行对应待更新数据的数据同步更新,而不是全量同步,从而降低服务器端带宽的占用,提高了数据同步效率。
参照图4,图4为本发明数据同步方法第三实施例的流程示意图。基于上述图3所示的实施例,在本实施例中,在上述步骤S90,获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果之后还包括:
步骤S110,若确定所述检验结果中不存在待更新数据,并确定所述数据区间未被标记为第一个区间,则确定所述数据区间是否被标记为最后一个区间;
步骤S120,若确定所述数据区间被标记为最后一个区间,则检测在所述数据区间之后是否存在其他第一序列数据;
步骤S130,若检测到在所述数据区间之后不存在所述其他第一序列数据,则发送数据检验完成的提示指令至所述客户端。
具体地,若服务器端确定检验结果中不存在待更新数据,并确定当前校验的数据区间未被标记为第一个区间,服务器端则确定当前校验的数据区间是否被标记为最后一个区间,若服务器端确定当前校验的数据区间被标记为最后一个区间,服务器端则检测在当前校验的数据区间之后是否存在其他序列数据,若服务器端检测到在当前校验的数据区间之后不存在其他序列数据,服务器端则发送对应的数据指令至嵌入式客户端,通过该数据指令提示数据校验全部完成。
若服务器端检测到在当前校验的数据区间之后存在其他序列数据,服务器端基于上述步骤对其他序列数据进行数据校验,完成数据更新。若服务器端确定当前校验的数据区间没有被标记为最后一个区间,服务器端则发送对应的数据指令至嵌入式客户端,通过该数据指令通知嵌入式客户端进行下一个数据区间的数据校验。
本实施例若确定检验结果中不存在待更新数据,并确定数据区间未被标记为第一个区间,则确定数据区间是否被标记为最后一个区间;若确定数据区间被标记为最后一个区间,则检测在数据区间之后是否存在其他第一序列数据;若检测到在数据区间之后不存在其他第一序列数据,则发送数据检验完成的提示指令至客户端。由此可知,本实施例在数据校验的过程中,需要确定当前校验的数据区间是否为最后一个区间,从而保证了客户端数据对应的所有数据区间都进行了数据校验,从而提升了数据校验的准确性。
参照图5,图5为本发明数据同步方法第四实施例的流程示意图。基于上述图3所示的实施例,在本实施例中,在上述步骤S90,获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果之后还包括:
步骤S140,若确定所述检验结果中不存在待更新数据,并确定所述数据区间被标记为第一个区间,则检测在所述数据区间之前是否存在其他第二序列数据;
步骤S150,若检测到在所述数据区间之前不存在所述其他第二序列数据,则发送检验所述数据区间的下一个数据区间的提示指令至所述客户端。
具体地,若服务器端确定检验结果中不存在所述待更新数据,并确定当前校验的数据区间被标记为第一个区间,则服务器端检测在当前校验的数据区间之前是否存在其他序列数据,若服务器端检测到在当前校验的数据区间之前不存在其他序列数据,服务器端则发送检验当前校验的数据区间的下一个数据区间的提示指令至嵌入式客户端。若服务器端检测到在当前校验的数据区间之前存在其他序列数据,服务器端则基于上述步骤对其他序列数据进行数据校验,完成数据更新。
本实施例若确定检验结果中不存在待更新数据,并确定数据区间被标记为第一个区间,则检测在数据区间之前是否存在其他第二序列数据;若检测到在数据区间之前不存在其他第二序列数据,则发送检验数据区间的下一个数据区间的提示指令至客户端。由此可知,本实施例在数据校验之前,需要确定当前校验的数据区间是否为第一个区间,并确定在第一个区间之前没有其他序列数据校验后,再进行当前数据区间的数据校验,从而保证了客户端数据在校验的过程中,不一次性占用过多的带宽资源,提高了数据同步效率。
本发明还提供一种数据同步装置。
参照图6,图6是本发明数据同步装置的功能模块示意图。所述数据同步装置包括:
分组模块10,用于获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间;
校验模块20,用于将各个所述数据区间中的数据信息依次发送至服务器端进行数据校验,并接收所述服务器端基于所述数据信息返回的数据指令;
更新模块30,用于若确定所述数据指令为数据更新指令,则确定所述数据指令中对应的数据序列号和待更新数据,并基于所述待更新数据更新所述数据序列号对应的客户端数据;
接收模块40,用于响应客户端的数据校验请求,依次接收所述客户端发送的数据区间对应的数据信息,其中,所述数据区间至少标记有区间首标识和区间尾标识;
所述校验模块20还用于获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果,其中,所述检验区间的检验区间首标识和所述区间首标识匹配;
发送模块50,用于根据所述校验结果生成对应的数据指令,并将所述数据指令发送至所述客户端。
其中,上述数据同步装置中各个模块的功能实现与上述数据同步方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有数据同步程序,所述数据同步程序被处理器执行时实现如以上任一项实施例所述的数据同步方法的步骤。
本发明计算机可读存储介质的具体实施例与上述数据同步方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的数据下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多数据下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件货物的形式体现出来,该计算机软件货物存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备完成本发明各个实施例所述的方法。

Claims (10)

1.一种数据同步方法,其特征在于,所述数据同步方法应用于客户端,所述数据同步方法包括:
获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间;
将各个所述数据区间中的数据信息依次发送至服务器端进行数据校验,并接收所述服务器端基于所述数据信息返回的数据指令;
若确定所述数据指令为数据更新指令,则确定所述数据指令中对应的数据序列号和待更新数据,并基于所述待更新数据更新所述数据序列号对应的客户端数据。
2.如权利要求1所述的数据同步方法,其特征在于,所述获取数据库中的客户端数据,将所述客户端数据进行分组,得到所述客户端数据对应的预设个数的数据区间的步骤之前,还包括:
获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库。
3.如权利要求2所述的数据同步方法,其特征在于,所述获取客户端数据,根据客户端数据中数据序列号从小到大的顺序进行排序,并将排序后的客户端数据存储于所述数据库的步骤之前,还包括:
客户端重启后,若确定在重启时间段内存在服务器端的未下发数据,则触发数据同步;或者
响应用户的触发指令,若确定所述触发指令为用户离家指令,则触发数据同步;或者
确定所述客户端的位置信息,若所述位置信息在预设用户位置的范围之外,则触发数据同步。
4.一种数据同步方法,其特征在于,所述数据同步方法应用于服务器端,所述数据同步方法包括:
响应客户端的数据校验请求,依次接收所述客户端发送的数据区间对应的数据信息,其中,所述数据区间至少标记有区间首标识和区间尾标识;
获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果,其中,所述检验区间的检验区间首标识和所述区间首标识匹配;
根据所述校验结果生成对应的数据指令,并将所述数据指令发送至所述客户端。
5.如权利要求4所述的数据同步方法,其特征在于,所述基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤包括:
确定所述数据区间中各个数据序列号对应的修改时间,以及确定各个所述数据序列号在所述校验区间中对应的更新时间;
若确定所述更新时间与所述修改时间不相同,则获取所述更新时间对应的第一数据包,并获取所述修改时间对应的第二数据包;
基于所述第一数据包和第二数据包确定所述检验结果。
6.如权利要求5所述的数据同步方法,其特征在于,所述基于所述第一数据包和第二数据包确定所述检验结果的步骤包括:
检测所述第一数据包中的第一数据内容和所述第二数据包中的第二数据内容是否相同;
若检测到所述第一数据内容与所述第二数据内容不相同,则基于所述第一数据内容和所述第二数据内容确定对应的待更新数据。
7.如权利要求4至6所述的数据同步方法,其特征在于,所述获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤之后,还包括:
若确定所述检验结果中不存在待更新数据,并确定所述数据区间未被标记为第一个区间,则确定所述数据区间是否被标记为最后一个区间;
若确定所述数据区间被标记为最后一个区间,则检测在所述数据区间之后是否存在其他第一序列数据;
若检测到在所述数据区间之后不存在所述其他第一序列数据,则发送数据检验完成的提示指令至所述客户端。
8.如权利要求4至6任一项所述的数据同步方法,其特征在于,所述获取所述服务器端中检验区间对应的校验信息,基于所述校验信息对所述数据区间中的数据信息进行检验,确定对应的检验结果的步骤之后,还包括:
若确定所述检验结果中不存在待更新数据,并确定所述数据区间被标记为第一个区间,则检测在所述数据区间之前是否存在其他第二序列数据;
若检测到在所述数据区间之前不存在所述其他第二序列数据,则发送检验所述数据区间的下一个数据区间的提示指令至所述客户端。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的数据同步程序,所述数据同步程序被所述处理器执行时实现如权利要求1至3或4至8中任一项所述的数据同步方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据同步程序,所述数据同步程序被处理器执行时实现如权利要求1至3或4至8中任一项所述的数据同步方法的步骤。
CN202011367182.8A 2020-11-27 2020-11-27 数据同步方法、终端设备及计算机可读存储介质 Active CN112328701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011367182.8A CN112328701B (zh) 2020-11-27 2020-11-27 数据同步方法、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011367182.8A CN112328701B (zh) 2020-11-27 2020-11-27 数据同步方法、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112328701A true CN112328701A (zh) 2021-02-05
CN112328701B CN112328701B (zh) 2023-11-10

Family

ID=74308271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011367182.8A Active CN112328701B (zh) 2020-11-27 2020-11-27 数据同步方法、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112328701B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296509A (zh) * 2021-12-29 2022-04-08 完美世界(北京)软件科技发展有限公司 信息交互系统及信息交互方法
CN115794853A (zh) * 2023-02-03 2023-03-14 天翼云科技有限公司 政务数据资源目录的更新方法、装置、电子设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2498648A1 (en) * 2001-09-17 2003-03-27 Soma Networks, Inc. Software update method, apparatus and system
EP1417605A1 (en) * 2001-08-14 2004-05-12 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
CN101473628A (zh) * 2006-04-12 2009-07-01 思杰系统有限公司 用于加速计算环境到远程用户的传送的系统和方法
CN102404390A (zh) * 2011-11-07 2012-04-04 广东电网公司电力科学研究院 高速实时数据库的智能化动态负载均衡方法
CN105187551A (zh) * 2015-09-29 2015-12-23 成都四象联创科技有限公司 基于云平台的分布式计算方法
US20170116188A1 (en) * 2012-01-02 2017-04-27 International Business Machines Corporation Method and system for backup and recovery
CN107633014A (zh) * 2017-08-17 2018-01-26 深圳市诚壹科技有限公司 一种数据存储方法及服务器
US20180341551A1 (en) * 2017-05-25 2018-11-29 Scality S.A. Layered error correction encoding for large scale distributed object storage system
CN109407977A (zh) * 2018-09-25 2019-03-01 佛山科学技术学院 一种大数据分布式存储管理方法及系统
CN110046855A (zh) * 2019-04-17 2019-07-23 爱客科技(深圳)有限公司 一种物流追踪查询方法
CN110365629A (zh) * 2018-04-11 2019-10-22 福建师范大学 一种实时监控视频数据安全存储的方法及系统
CN111556123A (zh) * 2020-04-23 2020-08-18 长沙科谦电子科技有限公司 一种基于边缘计算的自适应网络快速配置及负载均衡系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1417605A1 (en) * 2001-08-14 2004-05-12 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
CA2498648A1 (en) * 2001-09-17 2003-03-27 Soma Networks, Inc. Software update method, apparatus and system
CN101473628A (zh) * 2006-04-12 2009-07-01 思杰系统有限公司 用于加速计算环境到远程用户的传送的系统和方法
CN102404390A (zh) * 2011-11-07 2012-04-04 广东电网公司电力科学研究院 高速实时数据库的智能化动态负载均衡方法
US20170116188A1 (en) * 2012-01-02 2017-04-27 International Business Machines Corporation Method and system for backup and recovery
CN105187551A (zh) * 2015-09-29 2015-12-23 成都四象联创科技有限公司 基于云平台的分布式计算方法
US20180341551A1 (en) * 2017-05-25 2018-11-29 Scality S.A. Layered error correction encoding for large scale distributed object storage system
CN107633014A (zh) * 2017-08-17 2018-01-26 深圳市诚壹科技有限公司 一种数据存储方法及服务器
CN110365629A (zh) * 2018-04-11 2019-10-22 福建师范大学 一种实时监控视频数据安全存储的方法及系统
CN109407977A (zh) * 2018-09-25 2019-03-01 佛山科学技术学院 一种大数据分布式存储管理方法及系统
CN110046855A (zh) * 2019-04-17 2019-07-23 爱客科技(深圳)有限公司 一种物流追踪查询方法
CN111556123A (zh) * 2020-04-23 2020-08-18 长沙科谦电子科技有限公司 一种基于边缘计算的自适应网络快速配置及负载均衡系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
T. SUEL 等: "Improved file synchronization techniques for maintaining large replicated collections over slow networks", 《20TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》, pages 153 - 164 *
张宏赞: "面向云环境的异构数据同步系统的研究与实现", 《中国优秀硕 士学位论文全文数据库信息科技辑》, no. 2020, pages 138 - 1005 *
徐小龙 等: "面向移动计算环境的混合式数据同步 机制", 《通信学报》, vol. 37, no. 8, pages 1 - 12 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296509A (zh) * 2021-12-29 2022-04-08 完美世界(北京)软件科技发展有限公司 信息交互系统及信息交互方法
CN115794853A (zh) * 2023-02-03 2023-03-14 天翼云科技有限公司 政务数据资源目录的更新方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN112328701B (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
CN110737658B (zh) 数据分片存储方法、装置、终端及可读存储介质
CN108449405B (zh) 事件提醒方法、装置、计算机设备和存储介质
CN110719318B (zh) 消息处理方法和系统
CN109413186B (zh) 应用程序更新方法、终端、服务器及系统
US9792623B2 (en) Advertisement processing method and apparatus
CN110990339B (zh) 分布式存储的文件读写方法、装置、平台及可读存储介质
CN112328701B (zh) 数据同步方法、终端设备及计算机可读存储介质
CN111159233B (zh) 分布式缓存方法、系统、计算机设备以及存储介质
CN105095489A (zh) 一种分布式文件删除方法、装置和系统
CN113115331A (zh) 控制方法及通信装置
CN111796853A (zh) 固件升级方法、系统、设备及计算机存储介质
CN111669717A (zh) 云手机数据发送方法、计算机装置和存储介质
CN111274325B (zh) 平台自动化测试方法及系统
JP5989190B1 (ja) ゲートウェイおよびこれを用いた車載ソフトウェア更新システム
CN111367869A (zh) 镜像文件处理方法、装置、存储介质及电子设备
CN107357864B (zh) 一种文件处理方法及终端
CN106293814B (zh) 升级方法及装置
CN107425994B (zh) 一种实现参数远程管理的方法、终端和服务器
CN112000850A (zh) 进行数据处理的方法、装置、系统及设备
CN114422576B (zh) 一种会话清理方法、装置、计算机设备和可读存储介质
CN111711639B (zh) 终端、数据传输方法、系统、和计算机可读存储介质
CN111078425B (zh) 消息处理方法、装置、存储介质及电子设备
CN111080250B (zh) 流程回退补偿方法、装置、存储介质及电子设备
CN106156235B (zh) 一种基于Android平台的图片下载方法及系统
CN113760581A (zh) 基于mqtt对智能终端的属性信息进行同步的方法和系统

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