CN112380225B - 时序数据同步方法、装置、设备及存储介质 - Google Patents

时序数据同步方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112380225B
CN112380225B CN202110051494.6A CN202110051494A CN112380225B CN 112380225 B CN112380225 B CN 112380225B CN 202110051494 A CN202110051494 A CN 202110051494A CN 112380225 B CN112380225 B CN 112380225B
Authority
CN
China
Prior art keywords
data
synchronized
state
time
tree structure
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
Application number
CN202110051494.6A
Other languages
English (en)
Other versions
CN112380225A (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.)
Changsha Rootcloud Technology Co ltd
Rootcloud Technology Co Ltd
Original Assignee
Changsha Rootcloud 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 Changsha Rootcloud Technology Co ltd filed Critical Changsha Rootcloud Technology Co ltd
Priority to CN202110051494.6A priority Critical patent/CN112380225B/zh
Publication of CN112380225A publication Critical patent/CN112380225A/zh
Application granted granted Critical
Publication of CN112380225B publication Critical patent/CN112380225B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种时序数据同步方法、装置、设备及存储介质,属于数据传输技术领域。该方法包括:接收服务器发送的至少一段待同步数据的信息,每段待同步数据的信息包括:待同步数据、开始时间、结束时间;根据待同步数据的饱满情况确定待同步数据的数据状态,数据状态包括:已有数据、无数据、缺失数据;根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志。本申请可以提高数据同步的效果,保证数据的完整性。

Description

时序数据同步方法、装置、设备及存储介质
技术领域
本申请涉及数据传输技术领域,具体而言,涉及一种时序数据同步方法、装置、设备及存储介质。
背景技术
终端设备通常需要从服务器上下载相关的数据同步至本地,进而进行本地相关处理工作。计算机设备在同步数据的过程中,可能会出现因各类因素导致的宕机情况发生。
目前,针对宕机情况发生所采用的主要方法为记录本地宕机问题出现之前同步完成的数据,然后通过设置服务器的参数接口将上次宕机时间至当前时间的所有数据重新进行同步。
然而,由于宕机情况出现时,终端设备可能会因此丢失多段数据,采用设置服务器的参数接口的方法进行同步并不能准确地得到每个丢失数据所对应的时间点,因此,无法保证同步数据的完整性,数据同步的效果较差。
发明内容
本申请的目的在于提供一种时序数据同步方法、装置、设备及存储介质,可以提高数据同步的效果,保证数据的完整性。
本申请的实施例是这样实现的:
本申请实施例的一方面,提供一种时序数据同步方法,包括:
从服务器获取至少一段待同步数据的信息,每段待同步数据的信息包括如下至少一项:待同步数据的饱满情况、待同步数据的开始时间、待同步数据的结束时间;
根据待同步数据的饱满情况确定待同步数据的数据状态,数据状态包括:已有数据、无数据、缺失数据,已有数据用于标识待同步数据中包括实际数据的状态,无数据用于标识待同步数据不包括实际数据的状态,缺失数据用于标识待同步数据在服务器中包括实际数据而获取后不包括实际数据的状态;
根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志;
其中,本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态。
可选地,本地数据的同步状态日志以二叉树结构存储,二叉树结构中的每个节点表示一个时间点,两个相邻节点之间的连线表示两个相邻节点所表示时间所组成的时间段,且二叉树结构中每个节点具有一键值,键值表示节点所表示的时间点的数据状态;
根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志,包括:
根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,生成至少一段待同步数据的二叉树结构;
分别将每段待同步数据的二叉树结构插入至本地数据的二叉树结构中,得到插入后的二叉树结构;
根据待同步数据的二叉树结构在插入后的二叉树结构中的位置,将待同步数据插入本地数据的同步状态日志中。
可选地,根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,生成至少一段待同步数据的二叉树结构,包括:
根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,确定待同步数据对应的信息编组表达格式;
根据待同步数据对应的信息编组表达格式确定待同步数据的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至本地数据的二叉树结构中,得到插入后的二叉树结构之前,该方法还包括:
分别判定待同步数据的开始时间与本地数据的同步状态日志中第一个时间段的开始时间,以及待同步数据的结束时间与本地数据的同步状态日志中最后一个时间段的结束时间的先后关系。
可选地,分别将每段待同步数据的二叉树结构插入至本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间的节点并记录其中时间戳最大节点的数据状态;
判断时间戳最大节点的数据状态与待同步数据的数据状态是否一致;
若一致,则根据待同步数据的开始时间以及待同步数据的数据状态确定插入后的二叉树结构;
若不一致,则根据待同步数据的开始时间以及待同步数据的数据状态、待同步数据的结束时间以及时间戳最大节点的数据状态确定插入后的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有节点,并根据待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态;
根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构。
可选地,根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构,包括:
分别判断时间戳最大节点的数据状态以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致;
若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则确定本地数据的同步状态日志为插入后的二叉树结构;
若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则根据待同步数据的开始时间、时间戳最大节点的数据状态确定插入的二叉树结构;
若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的结束时间、时间戳最小节点的数据状态确定插入后的二叉树结构;
若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的开始时间以及时间戳最大节点的数据状态、待同步数据的结束时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于待同步数据的数据结构中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点并记录其中时间戳最小节点的数据状态;
判定时间戳最小节点的数据状态与待同步数据的数据状态是否一致;
若一致,则根据待同步数据的结束时间以及数据状态确定插入后的二叉树结构;
若不一致,则根据待同步数据的结束时间以及待同步数据的数据状态、待同步数据的开始时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
本申请实施例的另一方面,提供一种时序数据同步装置,包括:接收模块、插入模块;
接收模块,用于从服务器获取至少一段待同步数据的信息,每段待同步数据的信息包括如下至少一项:待同步数据的饱满情况、待同步数据的开始时间、待同步数据的结束时间;
插入模块,用于根据待同步数据的饱满情况确定待同步数据的数据状态,数据状态包括:已有数据、无数据、缺失数据,已有数据用于标识待同步数据中包括实际数据的状态,无数据用于标识待同步数据不包括实际数据的状态,缺失数据用于标识待同步数据在服务器中包括实际数据而获取后不包括实际数据的状态;其中,本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态。
可选地,插入模块,具体用于根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,确定待同步数据对应的信息编组表达格式;根据待同步数据对应的信息编组表达格式确定待同步数据的二叉树结构。
可选地,该装置还包括判定模块;判定模块,用于分别判定待同步数据的开始时间与本地数据的同步状态日志中第一个时间段的开始时间,以及待同步数据的结束时间与本地数据的同步状态日志中最后一个时间段的结束时间的先后关系。
可选地,插入模块,具体用于若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间的节点并记录其中时间戳最大节点的数据状态;判断时间戳最大节点的数据状态与待同步数据的数据状态是否一致;若一致,则根据待同步数据的开始时间以及待同步数据的数据状态确定插入后的二叉树结构;若不一致,则根据待同步数据的开始时间以及待同步数据的数据状态、待同步数据的结束时间以及时间戳最大节点的数据状态确定插入后的二叉树结构。
可选地,插入模块,具体用于若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有节点,并根据待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
可选地,插入模块,具体用于若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态;根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构。
可选地,插入模块,具体用于分别判断时间戳最大节点的数据状态以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致;若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则确定本地数据的同步状态日志为插入后的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则根据待同步数据的开始时间、时间戳最大节点的数据状态确定插入的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的结束时间、时间戳最小节点的数据状态确定插入后的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的开始时间以及时间戳最大节点的数据状态、待同步数据的结束时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,插入模块,具体用于若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于待同步数据的数据结构中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点并记录其中时间戳最小节点的数据状态;判定时间戳最小节点的数据状态与待同步数据的数据状态是否一致;若一致,则根据待同步数据的结束时间以及数据状态确定插入后的二叉树结构;若不一致,则根据待同步数据的结束时间以及待同步数据的数据状态、待同步数据的开始时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
本申请实施例的另一方面,提供一种计算机设备,包括:存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述数据同步方法的步骤。
本申请实施例的另一方面,提供一种存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述数据同步方法的步骤。
本申请实施例的有益效果包括:
本申请实施例提供的时序数据同步方法、装置、设备及存储介质中,接收服务器发送的至少一段待同步数据的信息,根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志,由于本地数据的同步状态日志能够记录当前时间之前数据从服务器同步至终端设备时的同步情况,因此,通过待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志可以更加准确完整地将待同步数据插入至本地数据的同步状态日志中,进而可以提高新的本地数据的同步状态日志的完整性,提高数据同步的效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的时序数据同步方法的流程示意图一;
图2为本申请实施例提供的本地数据的同步状态日志的示例图;
图3为本申请实施例提供的时序数据同步方法的流程示意图二;
图4为本申请实施例提供的时序数据同步方法的流程示意图三;
图5为本申请实施例提供的时序数据同步方法的流程示意图四;
图6为本申请实施例提供的时序数据同步方法的流程示意图五;
图7为本申请实施例提供的时序数据同步方法的流程示意图六;
图8为本申请实施例提供的时序数据同步方法的流程示意图七;
图9为本申请实施例提供的数据结构的示意图;
图10为本申请实施例提供的数据结构对应的二叉树结构的示意图;
图11为本申请实施例提供的插入后的二叉树结构的示意图一;
图12为本申请实施例提供的插入后的二叉树结构的示意图二;
图13为本申请实施例提供的插入后的二叉树结构的示意图三;
图14为本申请实施例提供的时序数据同步装置的结构示意图;
图15为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例中提供的数据同步方法可以应用于终端设备,终端设备可以是客户端的计算机设备、手机、平板电脑等,在此不作限制,终端设备可以与远端服务器通信连接,远端服务器可以向终端设备发送待同步数据的信息,这些待同步数据的信息可以是生产生活中的相关数据信息,例如:工况数据信息。
下面来解释本申请实施例中提供的数据同步方法的具体实施过程。
图1为本申请实施例提供的时序数据同步方法的流程示意图一,请参照图1,数据同步方法包括:
S110:从服务器获取至少一段待同步数据的信息。
其中,每段待同步数据的信息包括:待同步数据的饱满情况、待同步数据的开始时间、待同步数据的结束时间。
S120:根据待同步数据的饱满情况确定待同步数据的数据状态。
其中,数据状态包括:已有数据、无数据、缺失数据。
可选地,待同步数据可以是用于表征一个时间段内的数据饱满情况的虚拟数据段,待同步数据的饱满情况可以用于表示该虚拟数据段中是否具有实际数据,待同步数据的开始时间可以是待同步数据发送至终端设备的时间,待同步数据的结束时间可以是待同步数据发送完毕的时间,
终端设备接收到待同步数据的信息后,可以根据其中的待同步数据的饱满情况来确定待同步数据的数据状态,待同步数据的数据状态可以用于表示该待同步数据中是否具有实际数据以及终端设备获取的待同步数据与服务器所具有的待同步数据中的饱满情况是否一致;具体可以用于状态标识的方式来表示数据状态,例如:已有数据用于标识待同步数据中包括实际数据的状态,无数据用于标识待同步数据不包括实际数据的状态,缺失数据用于标识待同步数据在服务器中包括实际数据而获取后不包括实际数据的状态。也即是说,已有数据和无数据均是终端设备与服务器中的待同步数据饱满情况相同时,根据是否具有实际数据来确定的两种状态,而缺失数据是终端设备与服务器中的待同步数据饱满情况不同时,终端设备中不具有实际数据而服务器中具有实际数据的状态。
S130:根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志。
其中,本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态。
本申请实施例中,本地数据的同步状态日志可以指已经同步至终端设备上的数据,本地数据的同步状态日志可以用来记录当前时间之前数据从服务器同步至终端设备时的同步情况,例如在某个时间段数据成功同步至终端设备,或者在某个时间段数据没有被成功同步至终端设备。
可选地,每个时间段的开始时间的数据状态可以是在该开始时间时本地数据的同步状态日志的状态,相应地,每个时间段的结束时间的数据状态可以是在该结束时间时本地数据的同步状态日志的状态,本地数据的同步状态日志的数据状态具体可以包括:已有数据、无数据、缺失数据,与前述待同步数据的数据状态相类似,在此不加赘述。
需要说明的是,对于连续的本地数据来说,第二个时间段的开始时间即为第一个时间段的结束时间,相应地,第二个时间段的开始时间对应的数据状态也即是第一个时间段的结束时间对应的数据状态。
图2为本申请实施例提供的本地数据的同步状态日志的示例图,如图2所示,本地数据的同步状态日志中包括连续的多个时间段,例如,由时间点t1和时间点t2组成的时间段,由时间点t2和时间点t3组成的时间段等,直到tn为止。以时间点t1和时间点t2组成的时间段为例,时间点t1的数据状态为有数据,时间点t2的数据状态为缺失数据,则表明t1-t2这一时间段的数据被成功同步到终端设备,而t2时间之后的一个时间段数据没有被成功到终端设备。
本申请实施例提供的时序数据同步方法中,接收服务器发送的至少一段待同步数据的信息,根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志,由于本地数据的同步状态日志能够记录当前时间之前数据从服务器同步至终端设备时的同步情况,因此,通过待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志可以更加准确完整地将待同步数据插入至本地数据的同步状态日志中,进而可以提高新的本地数据的同步状态日志的完整性,提高数据同步的效果。
下面来解释本申请实施例中提供的数据同步方法的另一具体实施过程。
图3为本申请实施例提供的时序数据同步方法的流程示意图二,请参照图3,本地数据的同步状态日志以二叉树结构存储,二叉树结构中的每个节点表示一个时间点,两个相邻节点之间的连线表示两个相邻节点所表示时间所组成的时间段,且二叉树结构中每个节点具有一键值,键值表示节点所表示的时间点的数据状态;根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志,包括:
S210:根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,生成至少一段待同步数据的二叉树结构。
可选地,可以将一段待同步数据的开始时间作为第一个节点、结束时间作为第二个节点、待同步数据的数据状态作为第一个节点的键值、零值作为第二个节点的键值,以此生成该段待同步数据的二叉树结构。相应地,若包括多个待同步数据,则可以将每个待同步数据按照上述方式转换为二叉树结构进行存储。
S220:分别将每段待同步数据的二叉树结构插入至本地数据的同步状态日志的二叉树结构中,得到插入后的二叉树结构。
可选地,可以按照二叉树结构的运算规则,将上述每段待同步数据对应的二叉树结构插入至本地数据的同步状态日志的二叉树结构中,然后得到插入后的二叉树结构。
S230:根据待同步数据的二叉树结构在插入后的二叉树结构中的位置,将待同步数据插入本地数据的同步状态日志中。
可选地,可以根据待同步数据的二叉树结构在插入后的二叉树结构中的位置确定待同步数据的插入位置,进而在对应的插入位置将待同步数据插入至本地数据的同步状态日志中。
下面来解释本申请实施例中提供的数据同步方法的又一具体实施过程。
图4为本申请实施例提供的时序数据同步方法的流程示意图三,请参照图4,根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,生成至少一段待同步数据的二叉树结构,包括:
S310:根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,确定待同步数据对应的信息编组表达格式。
例如,信息编组表达格式(MAP格式)可以进行如下形式表达:
{
时间点1:已有数据,
时间点2:null
}
其中,“时间点1”即为待同步数据的开始时间、“已有数据”即为待同步数据的数据状态;“时间点2”即为待同步数据的结束时间、“null”即为零值(该点之后的数据不存在数据状态)。
S320:根据待同步数据对应的信息编组表达格式确定待同步数据的二叉树结构。
可以根据上述信息编组表达格式进行二叉树结构的构建,进而确定待同步数据的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构之前,该方法还包括:
分别判定待同步数据的开始时间与本地数据的同步状态日志中第一个时间段的开始时间,以及待同步数据的结束时间与本地数据的同步状态日志中最后一个时间段的结束时间的先后关系。
可选地,开始时间、结束时间都可以通过时间戳的方式来表示,例如,可以用具体的年、月、日、时、分、秒进行表示。根据时间的先后顺序,确定上述先后关系。
下面来具体解释本申请实施例中提供的数据同步方法的具体实施过程。
图5为本申请实施例提供的时序数据同步方法的流程示意图四,请参照图5,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
S410:若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间的节点并记录其中时间戳最大节点的数据状态。
可选地,当待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间时,也即是说,待同步数据开始时间和结束时间都比本地数据早,可以将本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间的节点删除,然后记录其中时间戳最大节点的数据状态。
S420:判断时间戳最大节点的数据状态与待同步数据的数据状态是否一致。
可选地,可以比较时间戳最大节点的数据状态与待同步数据的数据状态是否一致,例如,若时间戳最大节点的数据状态与待同步数据的数据状态均为已有数据,则一致;若其中任意一个为已有数据,另一个为无数据或者缺失数据,则不一致。
S430:若一致,则根据待同步数据的开始时间以及待同步数据的数据状态确定插入后的二叉树结构。
可选地,若一致,则可以将待同步数据的开始时间作为新的节点,待同步数据的数据状态作为新的节点的键值,构建插入后的二叉树结构。
S440:若不一致,则根据待同步数据的开始时间以及待同步数据的数据状态、待同步数据的结束时间以及时间戳最大节点的数据状态确定插入后的二叉树结构。
可选地,若不一致,则可以将待同步数据的开始时间作为一个新的节点,待同步数据的数据状态作为该新的节点的键值;将待同步数据的结束时间作为另一个新的节点,时间戳最大节点的数据状态作为另一个新的节点的键值,构建插入后的二叉树结构。
可选地,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有节点,并根据待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
可选地,当待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于本地数据的同步状态日志中最后一个时间段的结束时间时,也即是说,待同步数据开始时间比本地数据早、结束时间比本地数据晚,可以将本地数据的同步状态日志中所有节点删除,然后可以根据待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
具体为,将待同步数据的开始时间作为新的节点,将待同步数据的数据状态作为新的节点的键值;将待同步数据的结束时间作为另一新的节点,将零值作为另一新的节点的键值。
下面来具体解释本申请实施例中提供的数据同步方法的具体实施过程。
图6为本申请实施例提供的时序数据同步方法的流程示意图五,请参照图6,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
S510:若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态。
可选地,当待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间时,也即是说,待同步数据开始时间比本地数据晚、结束时间比本地数据早,可以将本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点删除并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态。
S520:根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构。
可选地,可以分别根据时间戳最大节点的数据状态与待同步数据的数据状态是否一致以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致以进行判定得到插入后的二叉树结构,具体方式如下:
图7为本申请实施例提供的时序数据同步方法的流程示意图六,请参照图7,根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构,包括:
S610:分别判断时间戳最大节点的数据状态以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致。
可选地,可以分别判断时间戳最大节点的数据状态以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致,具体判定方式与前述S410类似,在此不加赘述。
S620:若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则确定本地数据的同步状态日志为插入后的二叉树结构。
可选地,若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,可以将上述删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点后的本地数据的同步状态日志作为插入后的二叉树结构。
S630:若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则根据待同步数据的开始时间、时间戳最大节点的数据状态确定插入的二叉树结构。
可选地,若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,可以将待同步数据的开始时间作为新的节点,将时间戳最大节点的数据状态作为该新的节点的键值,进而确定插入的二叉树结构。
S640:若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的结束时间、时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,可以将待同步数据的结束时间作为新的节点,将时间戳最小节点的数据状态作为该新的节点的键值,进而确定插入后的二叉树结构。
S650:若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的开始时间以及时间戳最大节点的数据状态、待同步数据的结束时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,可以将待同步数据的开始时间作为新的节点,将时间戳最大节点的数据状态作为该新的节点的键值;将待同步数据的结束时间作为另一新的节点,将时间戳最小节点的数据状态作为另一新的节点的键值,进而确定插入后的二叉树结构。
下面来具体解释本申请实施例中提供的数据同步方法的具体实施过程。
图8为本申请实施例提供的时序数据同步方法的流程示意图七,请参照图8,分别将每段待同步数据的二叉树结构插入至待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
S710:若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于待同步数据的数据结构中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点并记录其中时间戳最小节点的数据状态。
可选地,当待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于待同步数据的数据结构中最后一个时间段的结束时间时,也即是说,待同步数据开始时间和结束时间均比本地数据晚,可以将本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点删除,并记录其中时间戳最小节点的数据状态。
S720:判定时间戳最小节点的数据状态与待同步数据的数据状态是否一致。
可选地,可以判定时间戳最小节点的数据状态与待同步数据的数据状态是否一致,具体判定方式与前述S410类似,在此不加赘述。
S730:若一致,则根据待同步数据的结束时间以及数据状态确定插入后的二叉树结构。
可选地,若一致,可以将待同步数据的结束时间作为新的节点,将待同步数据的数据状态作为该新的节点的键值,进而确定插入后的二叉树结构。
S740:若不一致,则根据待同步数据的结束时间以及待同步数据的数据状态、待同步数据的开始时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,若不一致,可以将待同步数据的结束时间作为新的节点,将同步数据的数据状态作为该新的节点的键值;将待同步数据的开始时间作为另一新的节点,将时间戳最小节点的数据状态作为该另一新的节点的键值,进而确定插入后的二叉树结构。
可选地,除了上述四种的待同步数据的开始时间与本地数据的同步状态日志中第一个时间段的开始时间,以及待同步数据的结束时间与本地数据的同步状态日志中最后一个时间段的结束时间的先后关系之外,还可能出现以下两种情况:
(1)待同步数据的结束时间比本地数据的同步状态日志中第一个时间段的开始时间早。
可选地,在该情况下,可以将待同步数据的开始时间作为新的节点,将待同步数据的数据状态作为该新的节点的键值;将待同步数据的结束时间作为另一新的节点,将键值设置为“缺失数据”,进而构造二叉树结构。
(2)待同步数据的开始时间比本地数据的同步状态日志中最后一个时间段的结束时间晚这两种情况,在这两种情况下,可以将待同步数据的开始时间作为新的节点,将待同步数据的数据状态作为该新的节点的键值;将待同步数据的结束时间作为另一新的节点,将键值设置为零值,然后可以将本地数据的同步状态日志的最后一个时间段的结束时间对应的节点的键值改为“缺失数据”,进而构造二叉树结构。
下面通过具体的实施例来解释本申请实施例中提供的一数据结构的具体示例。
图9为本申请实施例提供的数据结构的示意图,请参照图9,图9中所示的第一数据段810为本地数据的同步状态日志,第二数据段820为待同步数据的数据结构;其中,该本地数据的同步状态日志包括:第一时间点、第二时间点、第三时间点、第四时间点、第五时间点、第六时间点、第七时间点;第一时间点到第二时间点之间的数据状态为已有数据、第二时间点到第三时间点的数据状态为缺失数据、第三时间点到第四时间点的数据状态为已有数据、第四时间点到第五时间点的数据状态为缺失数据、第五时间点到第六时间点的数据状态为无数据,第六时间点到第七时间点的数据状态为已有数据,该待同步数据的数据结构包括:第八时间点和第九时间点,第八时间点到第九时间点之间的数据状态为已有数据。
下面通过具体的实施例来解释上述图9中所示的第一数据段810和第二数据段820对应的二叉树结构:
图10为本申请实施例提供的数据结构对应的二叉树结构的示意图,请参照图10,其中,第一二叉树结构910对应图9中的第一数据段810;第二二叉树结构920对应图9中的第二数据段820。
可选地,第一二叉树结构910包括第一节点至第七节点,每个节点对应第一数据段810中的一个时间点(例如:第一节点对应第一时间点,其余同理),第一节点的键值为已有数据、第二节点的键值为缺失数据、第三节点的键值为已有数据、第四节点的键值为缺失数据、第五节点的键值为无数据、第六节点的键值为已有数据、第七节点的键值为零值;相应地。第二二叉树结构920包括第八节点和第九节点,分别对应第二数据段820中的第八时间点和第九时间点,第八节点的键值为已有数据、第九节点的键值为零值。
下面通过多个具体的实施例来分别解释本申请实施例中提供的插入后的二叉树结构。
图11为本申请实施例提供的插入后的二叉树结构的示意图一,请参照图11,图11中对应的本地数据和待同步数据的二叉树结构为图10中的二叉树结构,当第八节点的时间小于第一节点的时间且第九节点的时间小于第七节点的时间时,可以得到图11中对应的插入后的二叉树结构。需要说明的是,该实施例中的第八节点的时间在第一节点之前,第九节点的时间在第四节点和第五节点之间。
其中,图11左侧的二叉树结构即为插入后的二叉树结构;右侧的二叉树结构为左侧的二叉树结构进行深度处理后分支旋转得到的等效二叉树结构,所表达的含义相同。
图12为本申请实施例提供的插入后的二叉树结构的示意图二,请参照图12,图12中对应的本地数据和待同步数据的二叉树结构为图10中的二叉树结构,当第八节点的时间小于第一节点的时间且第九节点的时间大于第七节点的时间时,可以得到图12中对应的插入后的二叉树结构。
图13为本申请实施例提供的插入后的二叉树结构的示意图三,请参照图13,图13中对应的本地数据和待同步数据的二叉树结构为图10中的二叉树结构,当第八节点的时间大于第一节点的时间且第九节点的时间小于第七节点的时间时,可以得到图13中对应的插入后的二叉树结构。需要说明的是,该实施例中的第八节点的时间在第二节点和第三节点之间,第九节点的时间在第五节点和第六节点之间。
需要说明的是,上述实施例仅为插入时的其中一种或者多种可能的情况,具体的插入结果可以根据前述方法进行判定,在此不加赘述。
下述对用以执行的本申请所提供的数据同步方法对应的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图14为本申请实施例提供的时序数据同步装置的结构示意图,请参照图14,数据同步装置,包括:接收模块100、插入模块200;
接收模块100,用于接收服务器发送的至少一段待同步数据的信息,每段待同步数据的信息包括:待同步数据、开始时间、结束时间以及数据状态,数据状态包括:已有数据、无数据、缺失数据;
插入模块200,用于根据待同步数据的开始时间、待同步数据的结束时间、待同步数据的数据状态以及本地数据的同步状态日志,将待同步数据插入至本地数据的同步状态日志中,得到新的本地数据的同步状态日志;其中,本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态。
可选地,插入模块200,具体用于根据至少一段待同步数据的开始时间、待同步数据的结束时间以及待同步数据的数据状态,确定待同步数据对应的信息编组表达格式;根据待同步数据对应的信息编组表达格式确定待同步数据的二叉树结构。
可选地,该装置还包括判定模块300;判定模块300,用于分别判定待同步数据的开始时间与本地数据的同步状态日志中第一个时间段的开始时间,以及待同步数据的结束时间与本地数据的同步状态日志中最后一个时间段的结束时间的先后关系。
可选地,插入模块200,具体用于若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间的节点并记录其中时间戳最大节点的数据状态;判断时间戳最大节点的数据状态与待同步数据的数据状态是否一致;若一致,则根据待同步数据的开始时间以及待同步数据的数据状态确定插入后的二叉树结构;若不一致,则根据待同步数据的开始时间以及待同步数据的数据状态、待同步数据的结束时间以及时间戳最大节点的数据状态确定插入后的二叉树结构。
可选地,插入模块200,具体用于若待同步数据的开始时间小于或者等于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有节点,并根据待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
可选地,插入模块200,具体用于若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间小于本地数据的同步状态日志中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态;根据时间戳最大节点的数据状态、时间戳最小节点的数据状态以及待同步数据的数据状态,得到插入后的二叉树结构。
可选地,插入模块200,具体用于分别判断时间戳最大节点的数据状态以及时间戳最小节点的数据状态与待同步数据的数据状态是否一致;若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则确定本地数据的同步状态日志为插入后的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则根据待同步数据的开始时间、时间戳最大节点的数据状态确定插入的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的结束时间、时间戳最小节点的数据状态确定插入后的二叉树结构;若时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据待同步数据的开始时间以及时间戳最大节点的数据状态、待同步数据的结束时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
可选地,插入模块200,具体用于若待同步数据的开始时间大于本地数据的同步状态日志中第一个时间段的开始时间且待同步数据的结束时间大于或者等于待同步数据的数据结构中最后一个时间段的结束时间,则删除本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点并记录其中时间戳最小节点的数据状态;判定时间戳最小节点的数据状态与待同步数据的数据状态是否一致;若一致,则根据待同步数据的结束时间以及数据状态确定插入后的二叉树结构;若不一致,则根据待同步数据的结束时间以及待同步数据的数据状态、待同步数据的开始时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图15为本申请实施例提供的计算机设备的结构示意图,请参照图15,计算机设备,包括:存储器400、处理器500,存储器400中存储有可在处理器500上运行的计算机程序,处理器500执行计算机程序时,实现上述数据同步方法的步骤。
本申请实施例的另一方面,还提供一种存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述数据同步方法的步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种时序数据同步方法,其特征在于,包括:
从服务器获取至少一段待同步数据的信息,每段所述待同步数据的信息包括如下至少一项:待同步数据的饱满情况、所述待同步数据的开始时间、所述待同步数据的结束时间;
根据所述待同步数据的饱满情况确定所述待同步数据的数据状态,所述数据状态包括:已有数据、无数据、缺失数据,所述已有数据用于标识所述待同步数据中包括实际数据的状态,所述无数据用于标识所述待同步数据不包括实际数据的状态,所述缺失数据用于标识所述待同步数据在所述服务器中包括实际数据而获取后不包括实际数据的状态;
根据所述待同步数据的开始时间、所述待同步数据的结束时间、所述待同步数据的数据状态以及本地数据的同步状态日志,将所述待同步数据插入至所述本地数据的同步状态日志中,得到新的本地数据的同步状态日志;
其中,所述本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态;
所述本地数据的同步状态日志以二叉树结构存储,所述二叉树结构中的每个节点表示一个时间点,两个相邻节点之间的连线表示所述两个相邻节点所表示时间所组成的时间段,且所述二叉树结构中每个节点具有一键值,所述键值表示所述节点所表示的时间点的数据状态;
所述根据所述待同步数据的开始时间、所述待同步数据的结束时间、所述待同步数据的数据状态以及所述本地数据的同步状态日志,将所述待同步数据插入至所述本地数据的同步状态日志中,得到新的本地数据的同步状态日志,包括:
根据所述至少一段待同步数据的开始时间、所述待同步数据的结束时间以及所述待同步数据的数据状态,生成所述至少一段待同步数据的二叉树结构;
分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构;
根据所述待同步数据的二叉树结构在所述插入后的二叉树结构中的位置,将所述待同步数据插入所述本地数据的同步状态日志中。
2.如权利要求1所述的方法,其特征在于,所述根据所述至少一段待同步数据的开始时间、所述待同步数据的结束时间以及所述待同步数据的数据状态,生成所述至少一段待同步数据的二叉树结构,包括:
根据所述至少一段待同步数据的开始时间、所述待同步数据的结束时间以及所述待同步数据的数据状态,确定所述待同步数据对应的信息编组表达格式;
根据所述待同步数据对应的信息编组表达格式确定所述待同步数据的二叉树结构。
3.如权利要求1或2所述的方法,其特征在于,所述分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构之前,所述方法还包括:
分别判定所述待同步数据的开始时间与所述本地数据的同步状态日志中第一个时间段的开始时间,以及所述待同步数据的结束时间与所述本地数据的同步状态日志中最后一个时间段的结束时间的先后关系。
4.如权利要求3所述的方法,其特征在于,所述分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若所述待同步数据的开始时间小于或者等于所述本地数据的同步状态日志中第一个时间段的开始时间且所述待同步数据的结束时间小于所述本地数据的同步状态日志中最后一个时间段的结束时间,则删除所述本地数据的同步状态日志中所有时间戳小于或者等于所述待同步数据的结束时间的节点并记录其中时间戳最大节点的数据状态;
判断所述时间戳最大节点的数据状态与所述待同步数据的数据状态是否一致;
若一致,则根据所述待同步数据的开始时间以及所述待同步数据的数据状态确定插入后的二叉树结构;
若不一致,则根据所述待同步数据的开始时间以及所述待同步数据的数据状态、所述待同步数据的结束时间以及时间戳最大节点的数据状态确定插入后的二叉树结构。
5.如权利要求3所述的方法,其特征在于,所述分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若所述待同步数据的开始时间小于或者等于所述本地数据的同步状态日志中第一个时间段的开始时间且所述待同步数据的结束时间大于或者等于所述本地数据的同步状态日志中最后一个时间段的结束时间,则删除所述本地数据的同步状态日志中所有节点,并根据所述待同步数据的开始时间、结束时间、数据状态确定插入后的二叉树结构。
6.如权利要求3所述的方法,其特征在于,所述分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构,包括:
若所述待同步数据的开始时间大于所述本地数据的同步状态日志中第一个时间段的开始时间且所述待同步数据的结束时间小于所述本地数据的同步状态日志中最后一个时间段的结束时间,则删除所述本地数据的同步状态日志中所有时间戳小于或者等于待同步数据的结束时间且大于或者等于待同步数据的开始时间的节点并记录其中时间戳最大节点的数据状态以及时间戳最小节点的数据状态;
根据所述时间戳最大节点的数据状态、时间戳最小节点的数据状态以及所述待同步数据的数据状态,得到插入后的二叉树结构。
7.如权利要求6所述的方法,其特征在于,所述根据所述时间戳最大节点的数据状态、时间戳最小节点的数据状态以及所述待同步数据的数据状态,得到插入后的二叉树结构,包括:
分别判断所述时间戳最大节点的数据状态以及时间戳最小节点的数据状态与所述待同步数据的数据状态是否一致;
若所述时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则确定所述本地数据的同步状态日志为插入后的二叉树结构;
若所述时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态一致,则根据所述待同步数据的开始时间、所述时间戳最大节点的数据状态确定插入的二叉树结构;
若所述时间戳最大节点的数据状态与待同步数据的数据状态一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据所述待同步数据的结束时间、所述时间戳最小节点的数据状态确定插入后的二叉树结构;
若所述时间戳最大节点的数据状态与待同步数据的数据状态不一致,且时间戳最小节点的数据状态与待同步数据的数据状态不一致,则根据所述待同步数据的开始时间以及所述时间戳最大节点的数据状态、所述待同步数据的结束时间以及所述时间戳最小节点的数据状态确定插入后的二叉树结构。
8.如权利要求3所述的方法,其特征在于,所述分别将所述待同步数据的二叉树结构插入至所述待同步数据的二叉树结构中,得到插入后的二叉树结构,包括:
若所述待同步数据的开始时间大于所述本地数据的同步状态日志中第一个时间段的开始时间且所述待同步数据的结束时间大于或者等于所述待同步数据的数据结构中最后一个时间段的结束时间,则删除所述本地数据的同步状态日志中所有时间戳大于或者等于待同步数据的开始时间的节点并记录其中时间戳最小节点的数据状态;
判定所述时间戳最小节点的数据状态与所述待同步数据的数据状态是否一致;
若一致,则根据所述待同步数据的结束时间以及数据状态确定插入后的二叉树结构;
若不一致,则根据所述待同步数据的结束时间以及所述待同步数据的数据状态、所述待同步数据的开始时间以及时间戳最小节点的数据状态确定插入后的二叉树结构。
9.一种数据同步装置,其特征在于,包括:接收模块、插入模块;
所述接收模块,用于从服务器获取至少一段待同步数据的信息,每段所述待同步数据的信息包括如下至少一项:待同步数据的饱满情况、所述待同步数据的开始时间、所述待同步数据的结束时间;
所述接收模块,还用于根据所述待同步数据的饱满情况确定所述待同步数据的数据状态,所述数据状态包括:已有数据、无数据、缺失数据,所述已有数据用于标识所述待同步数据中包括实际数据的状态,所述无数据用于标识所述待同步数据不包括实际数据的状态,所述缺失数据用于标识所述待同步数据在所述服务器中包括实际数据而获取后不包括实际数据的状态;
所述插入模块,用于根据所述待同步数据的开始时间、所述待同步数据的结束时间、所述待同步数据的数据状态以及本地数据的同步状态日志,将所述待同步数据插入至所述本地数据的同步状态日志中,得到新的本地数据的同步状态日志;
其中,所述本地数据的同步状态日志中包括多个时间段,每个时间段包括开始时间、结束时间、开始时间的数据状态以及结束时间的数据状态;
所述本地数据的同步状态日志以二叉树结构存储,所述二叉树结构中的每个节点表示一个时间点,两个相邻节点之间的连线表示所述两个相邻节点所表示时间所组成的时间段,且所述二叉树结构中每个节点具有一键值,所述键值表示所述节点所表示的时间点的数据状态;
所述插入模块,具体用于根据所述至少一段待同步数据的开始时间、所述待同步数据的结束时间以及所述待同步数据的数据状态,生成所述至少一段待同步数据的二叉树结构;分别将每段待同步数据的二叉树结构插入至所述本地数据的二叉树结构中,得到插入后的二叉树结构;根据所述待同步数据的二叉树结构在所述插入后的二叉树结构中的位置,将所述待同步数据插入所述本地数据的同步状态日志中。
10.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至8任一项所述的方法的步骤。
11.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至8中任一项所述方法的步骤。
CN202110051494.6A 2021-01-15 2021-01-15 时序数据同步方法、装置、设备及存储介质 Active CN112380225B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110051494.6A CN112380225B (zh) 2021-01-15 2021-01-15 时序数据同步方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110051494.6A CN112380225B (zh) 2021-01-15 2021-01-15 时序数据同步方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112380225A CN112380225A (zh) 2021-02-19
CN112380225B true CN112380225B (zh) 2021-03-30

Family

ID=74581825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110051494.6A Active CN112380225B (zh) 2021-01-15 2021-01-15 时序数据同步方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112380225B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641756A (zh) * 2021-07-26 2021-11-12 浪潮卓数大数据产业发展有限公司 一种分布式高并发的数据存储方法
CN114281895B (zh) * 2021-12-24 2023-12-08 成都索贝数码科技股份有限公司 支持远程拉取的多数据中心同步方法
US11526491B1 (en) * 2022-02-21 2022-12-13 Clari Inc. Method and system for collecting data from data sources with commit lag to maintain data consistency in a data store

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111553806A (zh) * 2020-05-08 2020-08-18 中国科学院合肥物质科学研究院 基于低功耗传感器和Boost模型的自适应作物管理系统及方法
CN111737348A (zh) * 2020-06-15 2020-10-02 中国工商银行股份有限公司 基于数据库表的时效同步方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
CN102497403A (zh) * 2011-12-04 2012-06-13 江苏省电力公司南京供电公司 电力营销与配电业务数据同步方法
US9547695B2 (en) * 2013-03-13 2017-01-17 Abb Research Ltd. Industrial asset event chronology
CN105045879B (zh) * 2015-07-21 2019-08-02 上海融甸信息科技有限公司 一种数据并行处理方法
CN105553739B (zh) * 2015-12-25 2019-04-26 瑞斯康达科技发展股份有限公司 一种实现mac地址追踪的方法及装置
US10372559B2 (en) * 2016-06-07 2019-08-06 International Business Machines Corporation Managing a redundant computerized database using a replicated database cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111553806A (zh) * 2020-05-08 2020-08-18 中国科学院合肥物质科学研究院 基于低功耗传感器和Boost模型的自适应作物管理系统及方法
CN111737348A (zh) * 2020-06-15 2020-10-02 中国工商银行股份有限公司 基于数据库表的时效同步方法及装置

Also Published As

Publication number Publication date
CN112380225A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN112380225B (zh) 时序数据同步方法、装置、设备及存储介质
CN110321387B (zh) 数据同步方法、设备及终端设备
CN107515874B (zh) 一种分布式非关系型数据库中同步增量数据的方法与设备
CN107220142B (zh) 执行数据恢复操作的方法及装置
CN111770350B (zh) 直播间消息拉取的方法、装置、计算机设备和存储介质
CN111008246B (zh) 数据库日志同步方法、装置、计算机设备及可读存储介质
CN110018996B (zh) 一种分布式存储系统的快照回滚方法及相关装置
CN111355802B (zh) 信息推送方法和装置
CN111831748B (zh) 数据同步方法、装置及存储介质
CN109451078B (zh) 一种分布式架构下的事务处理方法和装置
CN104092740B (zh) 应用数据同步方法和装置
CN104750738B (zh) 一种更新数据信息的方法、数据节点、管理节点及系统
CN114048217A (zh) 增量数据的同步方法和装置、电子设备和存储介质
CN114647698A (zh) 数据同步方法、装置及计算机存储介质
CN112597249A (zh) 一种业务数据的同步分发存储方法及系统
CN109284331B (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN113779153A (zh) 一种数据同步方法、装置、电子设备及存储介质
CN110585724B (zh) 游戏客户端中的表格数据更新方法、装置
CN115104295A (zh) 数据处理方法、装置、电子装置及存储介质
CN113467718B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN112910595A (zh) 一种实时通信方法及装置
CN115086355A (zh) 基于区块链的用户信息处理方法及装置
CN110113395B (zh) 共享文件系统维护方法及装置
CN114981797A (zh) 检测同步数据的方法、装置、服务器以及数据同步系统
CN113849477A (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
TR01 Transfer of patent right

Effective date of registration: 20210507

Address after: No.1, 3rd floor, R & D building, Sany industrial city, No.1, Sany Road, Changsha Economic and Technological Development Zone, Changsha, Hunan 410000

Patentee after: CHANGSHA ROOTCLOUD TECHNOLOGY Co.,Ltd.

Patentee after: Shugen Internet Co.,Ltd.

Address before: No.1, 3rd floor, R & D building, Sany industrial city, No.1, Sany Road, Changsha Economic and Technological Development Zone, Changsha, Hunan 410000

Patentee before: CHANGSHA ROOTCLOUD TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right