一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种时序处理方法及装置与流程

2021-11-15 18:40:00 来源:中国专利 TAG:

一种时序处理方法及装置
【技术领域】
1.本发明涉及大数据网络应用领域,特别是涉及一种时序处理方法及装置。


背景技术:

2.随着网络的快速发展,要处理的数据量越来越多,大数据链也越来越长,对这些数据的处理基本需要包括采集、清理、转换、加载、存储这些步骤。
3.在网络大数据中,为了准确分析数据,保证数据的一致性,需要采集数据做历史拉链表,记录数据的整个变化状态,而由于网络的波动性或其他不确定性因素会导致数据存储时的时序发生混乱,导致数据更新问题。由于数据量越来越多,采用时序队列会导致吞吐量降低;处理链越来越长,队列时序会导致较大的延时。
4.传统的时序处理方法需要在整个环节都保证时序,各组件依赖性太强,任意一个环节出错都会导致数据不一致,都要保证时序性,仅能采用单队列单线程处理。
5.鉴于此,如何克服现有技术所存在的缺陷,解决目前不同厂家的交换芯片无法实现跨盘链路聚合功能的问题,是本技术领域待解决的问题。


技术实现要素:

6.针对现有技术的以上缺陷或改进需求,本发明通过将各个处理链相互解耦、提高吞吐量、降低时延的方法,使海量数据处理中各个组件可以相互独立、即使网络延迟波动依然能够并发的处理数据,高可靠并准确的存储每条记录。
7.本发明实施例采用如下技术方案:
8.第一方面,本发明提供了一种时序处理方法,包括:
9.在数据库中建立当前表与历史表;
10.根据待处理数据的对象id从当前表或缓存中查询记录,根据是否存在记录、待处理数据的冗余id以及记录的更新时间来确定待处理数据的插入位置;
11.对历史表中记录的数据按对象id分组并根据更新时间排序,通过判断前后记录的冗余id是否一致来进行合并或更新处理。
12.进一步的,还包括统一数据规范,使待处理数据的格式满足以下规则:
13.时间戳,定义该待处理数据的数据时间;
14.数据操作符,定义待处理数据的状态变化含义,所述状态变化含义包括新增、修改、删除以及同步;
15.对象id,定义区别对象的唯一性标识;
16.冗余id,定义内容的哈希值。
17.进一步的,还包括统一数据库字段,使存储数据的格式满足以下规则:
18.开始时间,存储该数据的开始时间;
19.更新时间,存储该数据的更新时间;
20.结束时间,存储该数据的结束时间;
21.对象id,存储该数据的对象id;
22.冗余id,存储内容的哈希值。
23.进一步的,还包括对待处理数据的数据操作符进行判断,根据待处理数据的数据操作符的含义来对待处理数据进行新增、修改、删除或同步处理。
24.进一步的,当待处理数据的数据操作符为新增或修改时,所述根据待处理数据的对象id从当前表或缓存中查询记录,根据是否存在记录、待处理数据的冗余id以及记录的更新时间来确定待处理数据的插入位置具体包括:
25.判断待处理数据的数据操作符为新增或修改;
26.根据待处理数据的对象id在当前表或缓存中查询,若不存在相同id的记录,则将待处理数据新增到当前表进行存储,并将开始时间和更新时间设置为该待处理数据的时间戳,将结束时间默认为最大值;
27.若存在相同id的记录,则判断该记录与待处理数据的冗余id是否一致;
28.若一致,则更新该记录的时间,将开始时间和更新时间都取原有记录和待处理数据时间戳中的最小值;
29.若不一致,则判断该记录的更新时间是否小于待处理数据时间戳;若小于,则将该记录转移到历史表且结束时间设置为待处理数据的时间戳,将待处理数据插入到当前表且保持开始时间不变;若不小于,则将待处理数据插入历史表,且更新时间为待处理数据的时间戳,结束时间为查询记录的更新时间。
30.进一步的,当待处理数据的数据操作符为同步时,所述根据待处理数据的对象id从当前表或缓存中查询记录,根据是否存在记录、待处理数据的冗余id以及记录的更新时间来确定待处理数据的插入位置具体包括:
31.判断待处理数据的数据操作符为同步;
32.对待处理数据按新增、修改数据处理步骤进行处理;
33.记录待处理数据的最小时间戳,并重置过期时间,所述过期时间用于判断旧数据是否过期;
34.通过轮询检测来判断旧数据是否过期,当同步数据更新后的时间超过过期时间时,判断旧数据过期,将当前表更新时间小于最小时间戳的数据做删除流程处理,并将当前表更新时间小于最小时间戳且结束时间等于最大值的记录的结束时间设置为最小时间戳。
35.进一步的,当待处理数据的数据操作符为删除时,所述根据待处理数据的对象id从当前表或缓存中查询记录,根据是否存在记录、待处理数据的冗余id以及记录的更新时间来确定待处理数据的插入位置具体包括:
36.判断待处理数据的数据操作符为删除;
37.根据待处理数据的对象id在当前表查询记录,若存在记录,则更新该记录,且将结束时间设置为待处理数据的时间戳;若不存在记录,则将待处理数据插入当前表,且开始时间、更新时间以及结束时间都设置为待处理数据的时间戳。
38.进一步的,所述对历史表中记录的数据按对象id分组并根据更新时间排序,通过判断前后记录的冗余id是否一致来进行合并或更新处理具体包括:
39.由历史表启动一个时间窗口,对时间窗口内的数据按对象id分组再根据更新时间升序排序,判断前后记录的冗余id是否一致,若一致,则合并一致的记录,且更新时间取最
小值,结束时间取最大值;若不一致,则将前一条记录的结束时间用后一条记录的更新时间进行替换。
40.进一步的,所述数据库中的当前表针对每一个对象有且仅有一条记录,以记录其当前状态;所述数据库中的历史表记录对象的历史变化状态且不包含其当前状态。
41.另一方面,本发明提供了一种时序处理装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的时序处理方法。
42.与现有技术相比,本发明实施例的有益效果在于:基于数据各种各样的来源,利用自定义的数据规范,统一了数据模型,达到了系统相互之间解耦以及统一处理的目的;再利用插入法更新数据并保证数据的先后时序,将数据分为历史表和当前表,历史表存放历史状态,当前表存放最新状态,实时更新当前表降低了延时,历史表插入数据时不需要实时更新,而是采用时间窗口更新,从而大大地提高了性能;在插入处理逻辑上增加了一个哈希值比较,用于数据去重,降低了数据的冗余性;针对全量更新配置的场景(此全量数据作为最新而之前的数据默认删除操作,即同步数据处理),采用了有效过期时间的策略,将本批全量数据入库后对之前的数据做删除操作,保证了数据的完整性和准确性。
【附图说明】
43.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例1提供的一种时序处理方法的流程图;
45.图2为本发明实施例1提供的数据统一规范示意图;
46.图3为本发明实施例1提供的新增修改数据处理具体流程图;
47.图4为本发明实施例1提供的同步数据处理具体流程图;
48.图5为本发明实施例1提供的删除数据处理具体流程图;
49.图6为本发明实施例1提供的历史表轮询纠正处理流程图;
50.图7为本发明实施例2提供的一种时序处理系统模块示意图;
51.图8为本发明实施例3提供的一种时序处理装置结构示意图。
【具体实施方式】
52.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
53.本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
54.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
55.实施例1:
56.如图1所示,本发明实施例提供一种时序处理方法,具体步骤如下。
57.步骤100:在数据库中建立当前表与历史表;
58.步骤200:根据待处理数据的对象id从当前表或缓存中查询记录,根据是否存在记录、待处理数据的冗余id以及记录的更新时间来确定待处理数据的插入位置;
59.步骤300:对历史表中记录的数据按对象id分组并根据更新时间排序,通过判断前后记录的冗余id是否一致来进行合并或更新处理。
60.在上述三个步骤之前,本发明实施例还基于数据各种各样的来源,对数据定义进行统一。
61.具体的,本优选实施例中对待处理数据进行统一数据规范,使待处理数据的格式满足以下规则:
62.时间戳,定义该待处理数据的数据时间;
63.数据操作符,定义待处理数据的状态变化含义,所述状态变化含义包括新增、修改、删除以及同步;
64.对象id,定义区别对象的唯一性标识;
65.冗余id,定义内容的哈希值。
66.本优选实施例还对数据库字段进行统一,使存储数据的格式满足以下规则:
67.开始时间,存储该数据的开始时间;
68.更新时间,存储该数据的更新时间;
69.结束时间,存储该数据的结束时间;
70.对象id,存储该数据的对象id;
71.冗余id,存储内容的哈希值。
72.通过上述定义,本发明实现了利用自制定数据规范来统一数据模型,达到了系统相互之间解耦以及统一处理的目的。
73.在本优选实施例中,数据库内包括当前表与历史表,其中,当前表针对每一个对象有且仅有一条记录,以记录其当前状态;历史表记录对象的历史变化状态且不包含其当前状态,避免与当前表重复。
74.如图2所示,通过统一数据模型后,当前表的数据列包括先前定义的对象id、冗余id、开始时间、更新时间、结束时间以及最后的数据内容;历史表的数据列包括先前定义的对象id、冗余id、更新时间、结束时间以及最后的数据内容;待处理数据的数据结构则包括数据操作符、对象id、冗余id、时间戳以及最后的数据内容。
75.在上述定义的情况下,本实施例通过对待处理数据的数据操作符进行判断,根据待处理数据的数据操作符的含义来对待处理数据进行新增、修改、删除或同步处理。
76.如图3所示,在本优选实施例中,当待处理数据的数据操作符为新增、修改时,所述步骤200相应的为对新增、修改数据的处理步骤,其具体包括以下流程:
77.判断待处理数据是否为新增、修改数据(依据待处理数据的数据操作符是否为新增或修改来进行判断);
78.若是,根据待处理数据的对象id在当前表或缓存中查询记录,判断是否存在记录;
79.若不存在记录,则将待处理数据当做新增插入到当前表进行存储,并将开始时间和更新时间都设置为该待处理数据的时间戳,将结束时间默认为最大值;若存在记录,则判
断记录与待处理数据的冗余id是否一致;
80.若判断冗余id一致,则更新该记录的时间,将开始时间和更新时间都取原有记录和待处理数据时间戳中的最小值;若不一致,则判断记录的更新时间是否小于待处理数据时间戳;
81.若小于,则将当前表查询的记录转移到历史表且结束时间设置为待处理数据的时间戳,将待处理数据插入到当前表,使当前表记录被该待处理数据更新替换且保持开始时间不变;若不小于,则将待处理数据插入历史表,且更新时间为待处理数据的时间戳,结束时间为查询记录的更新时间。
82.通过以上流程步骤,可以保证新增、修改数据插入当前表以及历史表的先后时序,且实时更新当前表以降低延时,另外,在插入处理逻辑上增加了一个哈希值比较(也即冗余id的比较),用于数据去重,降低了数据的冗余性。
83.如图4所示,在本优选实施例中,当待处理数据的数据操作符为同步时,所述步骤200相应的为对同步数据的处理步骤,其具体包括以下流程:
84.判断待处理数据是否为同步数据(依据待处理数据的数据操作符是否为同步来进行判断);
85.若是,对待处理数据按新增、修改数据处理流程进行处理;同时还记录待处理数据的最小时间戳,并设置或重置过期时间,该过期时间用于判断旧数据是否过期;
86.通过轮询检测来判断旧数据是否过期,当同步数据更新后的时间超过过期时间时,判断旧数据过期,将当前表更新时间小于最小时间戳的数据做删除流程处理,并将当前表更新时间小于最小时间戳且结束时间等于最大值的记录的结束时间设置为最小时间戳。
87.通过上述流程,针对全量更新配置的场景(此全量数据作为最新而之前的数据默认删除操作),也即上述同步数据处理场景,采用了有效过期时间的策略,将本批全量数据入库后对之前的数据做删除操作,保证了数据的完整性和准确性。
88.如图5所示,在本优选实施例中,当待处理数据的数据操作符为删除时,所述步骤200相应的为对删除数据的处理步骤,其具体包括以下流程:
89.判断待处理数据是否为删除数据(依据待处理数据的数据操作符是否为删除来进行判断);
90.若是,根据待处理数据的对象id在当前表查询记录;
91.若存在记录,则更新该记录,且将结束时间设置为待处理数据的时间戳;若不存在记录,则将待处理数据当做新增插入当前表,且开始时间、更新时间以及结束时间都设置为待处理数据的时间戳。
92.通过上述流程,对删除数据的处理也保证了时序性,且能有效避免误删数据情况发生。
93.如图6所示,在本优选实施例中,还包括对历史表进行轮询纠正处理的步骤(也即步骤300)。该历史表轮询纠正处理(步骤300)的流程具体如下:
94.由历史表启动一个时间窗口,该时间窗口通过读取配置文件来设置,其可以设置为在新增数据时定时启动,且查询最近十分钟的数据。
95.然后,对时间窗口内的数据按对象id分组再根据更新时间升序排序,判断前后记录的冗余id是否一致;
96.若一致,则合并前一条与后一条的两条记录,且更新时间取最小值,结束时间取最大值;若不一致,则将前一条记录的结束时间用后一条记录的更新时间进行替换。
97.通过上述流程,针对历史状态数据进行了先增后纠正的算法,且历史表插入数据时不需要实时更新,而是采用时间窗口更新,大大地提高了插入法的性能。需要说明的是,上述流程中的时间窗口的定时启动时间点可以自行定义,其查询的数据时间范围也可以自行增多或减少,以需求而定。
98.综上所述,本发明实施例1解决了现有技术在海量数据处理中存在的问题,使各个组件可以相互独立、即使有网络延迟波动依然能够并发的处理数据,高可靠并准确的存储每条记录。而且需要说明的是,对于本发明中的时序存储处理算法,即便是非大数据领域,只要是保证数据按发生时间顺序存储各阶段状态,使用者无需关注其实现原理,也可利用此算法快速存储数据,具有很强的通用性。
99.实施例2:
100.基于实施例1提供的时序处理方法,本实施例2提供与实施例1对应的一种时序处理系统,如图7所示,该系统包括数据统一规范模块、数据操作符判断模块、新增和修改数据处理模块、同步数据处理模块、删除数据处理模块、历史表轮询纠正处理模块。
101.具体的,所述数据统一规范模块基于数据各种各样的来源,对数据定义进行统一。例如对待处理数据进行统一数据规范,使待处理数据的格式满足以下规则:时间戳,定义该待处理数据的数据时间;数据操作符,定义待处理数据的状态变化含义(状态变化含义包括新增、修改、删除以及同步);对象id,定义区别对象的唯一性标识;冗余id,定义内容的哈希值。以及对数据库字段进行统一,使存储数据的格式满足以下规则:开始时间,存储该数据的开始时间;更新时间,存储该数据的更新时间;结束时间,存储该数据的结束时间;对象id,存储该数据的对象id;冗余id,存储内容的哈希值。通过上述定义,实现了利用自制定数据规范来统一数据模型的目的,达到了系统相互之间解耦以及统一处理的有益效果。
102.数据操作符判断模块在上述数据统一规范模块对数据进行统一规范的情况下,对待处理数据的数据操作符进行判断,根据待处理数据的数据操作符的含义将待处理数据发送到对应的新增和修改数据处理模块或同步数据处理模块或删除数据处理模块进行处理。例如待处理数据的数据操作符为新增或修改,则将待处理数据发送到新增和修改数据处理模块进行处理;如待处理数据的数据操作符为同步则将待处理数据发送到同步数据处理模块进行处理;如待处理数据的数据操作符为删除,则将待处理数据发送到删除数据处理模块进行处理。
103.新增和修改数据处理模块对应实施例1中的步骤100,其对待处理数据的处理如下:根据待处理数据的对象id从当前表查询或从缓存中获取基本信息,若没有记录,则按新增流程处理,将待处理数据插入当前表中,开始时间和更新时间都设为待处理数据的时间戳,结束时间设置为最大时间戳;若有记录,则比较冗余id,避免数据重复,若冗余id相同,则更新当前表记录的时间,开始时间取最小值,更新时间、结束时间取最大值;若冗余id不相同,则再比较更新时间,确定插入位置,如待处理数据的时间戳大于查询记录的更新时间,则为正常更新流程处理:将当前表记录转移到历史表并将结束时间修改为待处理数据时间戳,将待处理数据新增到当前表;如待处理数据的时间戳小于查询记录的更新时间,则为晚更新流程处理:直接将待处理数据新增到历史表中,结束时间为查询记录的更新时间。
(具体描述与实施例1对应,在此不再赘述)
104.同步数据处理模块对应实施例1中的步骤200,其对待处理数据的处理如下:若有同步数据,则将其数据发送到新增和修改数据处理模块进行处理,同时还记录同步最小时间戳并设置一个同步过期时间,在同步数据处理结束后,将当前表更新时间小于最小时间戳的数据做删除流程处理操作,并将当前表更新时间小于最小时间戳,结束时间为最大时间戳的记录的结束时间用该最小时间戳替换。(具体描述与实施例1对应,在此不再赘述)
105.删除数据处理模块对应实施例1中的步骤300,其对待处理数据的处理如下:根据待处理数据的对象id在当前表查询记录;若存在记录,则更新该记录,且将结束时间设置为待处理数据的时间戳;若不存在记录,则将待处理数据当做新增插入当前表,且开始时间、更新时间以及结束时间都设置为待处理数据的时间戳。(具体描述与实施例1对应,在此不再赘述)
106.在本优选实施例中,每当新增数据后,历史表轮询纠正处理模块便会工作,该模块通过历史表启动一个时间窗口,将时间窗口的历史表数据按对象id分组并按更新时间排序,当前记录的结束时间用下一条记录的更新时间替换,并对冗余id相同的连续记录合并为一条记录。(具体描述与实施例1对应,在此不再赘述)
107.通过上述实施例2,本发明基于数据各种各样的来源,利用自制定数据规范,统一数据模型,达到系统相互之间解耦以及统一处理的目的;再利用插入法算法更新数据并保证数据的先后时序,将数据分历史表和当前表,历史表存放历史状态,当前表存放最新状态,实时更新当前表降低了延时,历史表插入数据时不需要实时更新,采用时间窗口更新大大地提高了性能;在插入处理逻辑上增加了一个哈希值比较,用于数据去重,降低了数据的冗余性。针对全量更新配置的场景(此全量数据作为最新而之前的数据默认删除操作),采用了有效过期时间的策略,将本批全量数据入库后对之前的数据做删除操作,保证了数据的完整性和准确性。
108.实施例3:
109.在上述实施例1至实施例2提供的时序处理方法与系统的基础上,本发明还提供了一种可用于实现上述方法及系统的时序处理装置,如图8所示,是本发明实施例的装置架构示意图。本实施例的时序处理装置包括一个或多个处理器21以及存储器22。其中,图8中以一个处理器21为例。
110.处理器21和存储器22可以通过总线或者其他方式连接,图8中以通过总线连接为例。
111.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例2中的时序处理方法、系统。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行时序处理装置的各种功能应用以及数据处理,即实现实施例1至实施例2的时序处理方法及系统。
112.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
113.程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例2中的时序处理方法、系统,例如,执行以上描述的图1至图7所示的各个步骤。
114.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(read only memory,简写为:rom)、随机存取存储器(random access memory,简写为:ram)、磁盘或光盘等。
115.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献