一种数据处理方法及装置与流程

文档序号:22758143发布日期:2020-10-31 09:56阅读:102来源:国知局
一种数据处理方法及装置与流程

本发明涉及数据处理领域,尤其涉及一种数据处理方法及装置。



背景技术:

目前,在涉及数据上传,需要进行计算处理的业务场景,往往会直接进行计算,即每条待处理数据都启动一个线程对其进行处理。例如,在网络质量实时监控的应用场景中,后台服务器实时接收各代理设备或节点服务器上传的网络质量数据后,可为每条网络质量数据分配线程对其进行处理,以实时更新和展示当前的网络质量状况。

然而,当数据上传的频率和密度较高时,后台服务器在高频接收数据的情况下,也需要高频地触发数据处理的机制以对上传数据进行处理。

对于如此高频的计算,往往存在如下问题:

1、内存损耗较大,会有大量性能消耗;

2、如果涉及到数据库的增删改操作,线程需要与数据库建立连接,可能会占用较大的数据库i/o资源。

因此,对于现有技术中的高频率的数据处理的场景,亟需一种缓解内存及i/o资源的数据处理方法。



技术实现要素:

本发明实施例提供一种数据处理方法及装置,用以解决现有技术在高频率处理数据过程中所发生的巨大的内存损耗以及对i/o资源的占用问题。

第一方面,本发明实施例提供一种数据处理方法,该方法包括:获取待处理数据,确定所述待处理数据的操作时间;基于所述操作时间,确定所述待处理数据是否为高频上传数据;若是,则判断高频上传数据的记录值是否满足第一预设条件;若判断结果为是,则将所述待处理数据存入存储器中,并判断所述存储器中的待处理数据量是否满足第二预设条件;若满足,则分配一线程对所述存储器中的所有数据进行处理,同时清空所述存储器。

基于该方案,可根据待处理数据的操作时间来确定数据频率,通过将满足条件的高频上传的待处理数据堆积在存储器中,当堆积到一定程度时,启动一个线程对该些堆积的待处理数据进行统一处理,相比于对每条待处理数据都启动一个数据处理线程的方案,本方案可以极大降低数据处理的线程数,同时减少线程与数据库的连接建立次数,从而可缓解内存以及i/o资源。

在一种可能的实现方法中,若判断所述高频上传数据的记录值不满足第一预设条件,则更新所述高频上传数据的记录值,并分配一线程对所述待处理数据进行处理。

基于该方案,基于记录值是否满足第一预设条件来确定数据高频上传是否为持续现象,若为出现持续高频,则可进入堆积模式,若并非持续高频,则可正常处理,避免因过度堆积而造成数据处理不及时的问题。

在一种可能的实现方法中,若所述待处理数据不是高频上传数据,则将所述高频上传数据的记录值设为零,并分配一线程对所述待处理数据进行处理。

基于该方案,当数据上传频率下降时,可直接对待处理数据进行处理模式,并同时清空相应记录值,避免因过度堆积而造成数据处理不及时的问题。

在一种可能的实现方法中,所述基于所述操作时间,确定所述待处理数据是否为高频上传数据的方法包含:计算所述操作时间与上一条待处理数据的操作时间的差值;若所述差值小于或等于时间阈值,则确定所述待处理数据为高频上传数据;否则,确定所述待处理数据不是高频上传数据。

在一种可能实现的方法中,所述第一预设条件包含:所述高频上传数据的记录值大于或等于高频累计阈值。

基于该方案,通过第一预设条件的设定,可实现对待处理数据堆积的控制,即只有在超过出现一定数量的高频上传以后,才会开始进行堆积操作,从而避免因少量高频现象的出现而发生误判,导致待处理数据无法及时得到处理。

在一种可能实现的方法中,所述第二预设条件包含:所述存储器中的待处理数据量大于或等于数据堆积阈值。

基于该方案,对于存储在存储器中的待处理数据,通过比较该存储器中待处理数据量与数据堆积阈值,并在确定前者不小于后者时,则可以启动一个线程来对该存储器中的全部的待处理数据进行一次处理。也即,通过比较待处理数据量与数据堆积阈值的大小,可以快速确定是否可以对存储在存储器中的待处理数据进行一次处理。

在一种可能实现的方法中,所述获取待处理数据包含:从数据队列中读取所述待处理数据。

基于该方案,通过使用数据队列的方式来记录上传的待处理数据,根据数据队列的先入先出的特性,从而在对待处理数据进行处理时,可以实现一种对数据的有序处理的效果。

在一种可能实现的方法中,所述待处理数据的操作时间包含所述待处理数据存入所述数据队列的时间,或从所述数据队列中读取所述待处理数据的时间。

基于该方案,在数据上传过程中,通过使用数据队列记录上传的数据,并将上传的数据的存入时间作为操作时间或者将对上传的数据的读取时间作为操作时间。

在一种可能实现的方法中,所述待处理数据包含至少一条业务数据。

在一种可能实现的方法中,所述待处理数据的操作时间包含服务器接收到所述待处理数据的时间。

基于该方案,在数据上传过程中,上传的数据逐一地被服务器接收,服务器将所接收到待处理数据的时刻作为该待处理数据的操作时间,服务器通过对上传数据进行业务归类,并将周期内针对相同业务的上传数据合并为一条待处理数据,并存入数据队列中等待处理,基于此,可降低待处理数据的数量,进而减少线程的需求量,更进一步的,由于一条待处理数据中包含的数据均针对同一业务,那么线程在处理过程中所耗费的资源和时间在一定程度上也可减少。

第二方面,本发明实施例提供一种数据处理装置,该装置包括:数据获取单元,用于获取待处理数据,确定所述待处理数据的操作时间;数据处理单元,用于基于所述操作时间,确定所述待处理数据是否为高频上传数据;数据处理单元,还用于在确定所述待处理数据为高频上传数据时,判断高频上传数据的记录值是否满足第一预设条件;数据处理单元,还用于在确定所述高频上传数据的记录值满足第一预设条件时,将所述待处理数据存入存储器中,并判断所述存储器中的待处理数据量是否满足第二预设条件;并在确定所述存储器中的待处理数据量满足第二预设条件时,分配一线程对所述存储器中的所有数据进行处理,同时清空所述存储器。

基于该方案,可根据待处理数据的操作时间来确定数据频率,通过将满足条件的高频上传的待处理数据堆积在存储器中,当堆积到一定程度时,启动一个线程对该些堆积的待处理数据进行统一处理,相比于对每条待处理数据都启动一个数据处理线程的方案,本方案可以极大降低数据处理的线程数,同时减少线程与数据库的连接建立次数,从而可缓解内存以及i/o资源。

在一种可能的实现方法中,所述数据处理单元还用于,在确定所述高频上传数据的记录值不满足第一预设条件时,更新所述高频上传数据的记录值,并分配一线程对所述待处理数据进行处理。

基于该方案,基于记录值是否满足第一预设条件来确定数据高频上传是否为持续现象,若为出现持续高频,则可进入堆积模式,若并非持续高频,则可正常处理,避免因过度堆积而造成数据处理不及时的问题。

在一种可能的实现方法中,所述数据处理单元还用于,若确定所述待处理数据不是高频上传数据,则将所述高频上传数据的记录值设为零,并分配一线程对所述待处理数据进行处理。

基于该方案,当数据上传频率下降时,可直接对待处理数据进行处理模式,并同时清空相应记录值,避免因过度堆积而造成数据处理不及时的问题。

在一种可能的实现方法中,所述数据处理单元具体用于,所述基于所述操作时间,确定所述待处理数据是否为高频上传数据的方法包含:计算所述操作时间与上一条待处理数据的操作时间的差值;若所述差值小于或等于时间阈值,则确定所述待处理数据为高频上传数据;否则,确定所述待处理数据不是高频上传数据。

在一种可能的实现方法中,所述第一预设条件包含:所述高频上传数据的记录值大于或等于高频累计阈值。

基于该方案,通过第一预设条件的设定,可实现对待处理数据堆积的控制,即只有在超过出现一定数量的高频上传以后,才会开始进行堆积操作,从而避免因少量高频现象的出现而发生误判,导致待处理数据无法及时得到处理。

在一种可能的实现方法中,所述第二预设条件包含:所述存储器中的待处理数据量大于或等于数据堆积阈值。

基于该方案,对于存储在存储器中的待处理数据,通过比较该存储器中待处理数据量与数据堆积阈值,并在确定前者不小于后者时,则可以启动一个线程来对该存储器中的全部的待处理数据进行一次处理。也即,通过比较待处理数据量与数据堆积阈值的大小,可以快速确定是否可以对存储在存储器中的待处理数据进行一次处理。

在一种可能的实现方法中,所述数据获取单元具体用于,从数据队列中读取所述待处理数据。

基于该方案,通过使用数据队列的方式来记录上传的待处理数据,根据数据队列的先入先出的特性,从而在对待处理数据进行处理时,可以实现一种对数据的有序处理的效果。

在一种可能的实现方法中,所述待处理数据的操作时间包含所述待处理数据存入所述数据队列的时间,或从所述数据队列中读取所述待处理数据的时间。

基于该方案,在数据上传过程中,通过使用数据队列记录上传的数据,并将上传的数据的存入时间作为操作时间或者将对上传的数据的读取时间作为操作时间。

在一种可能实现的方法中,所述待处理数据包含至少一条业务数据。

在一种可能实现的方法中,所述待处理数据的操作时间包含服务器接收到所述待处理数据的时间。

基于该方案,在数据上传过程中,上传的数据逐一地被服务器接收,服务器将所接收到待处理数据的时刻作为该待处理数据的操作时间,服务器通过对上传数据进行业务归类,并将周期内针对相同业务的上传数据合并为一条待处理数据,并存入数据队列中等待处理,基于此,可降低待处理数据的数量,进而减少线程的需求量,更进一步的,由于一条待处理数据中包含的数据均针对同一业务,那么线程在处理过程中所耗费的资源和时间在一定程度上也可减少。

第三方面,本发明实施例提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一所述的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一所述的方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种可能的系统架构示意图;

图2为本发明实施例提供的一种数据处理方法;

图3为本发明实施例提供的一种数据处理方法流程示意图;

图4为本发明实施例提供的一种数据处理装置。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为了使发明内容可被更清楚地理解,以下将结合图示和网络质量数据上传的应用场景对本发明实施例所提供的方法进行说明。值得注意的是,本发明实施例所提供的方法并不限制于该应用场景中。

图1为可应用的本发明实施例的一种系统架构示意图。如图1所示,该系统可以包括后台服务器110和至少一个节点服务器120,比如图1所示意出的节点服务器1201,节点服务器1202,节点服务器1203和节点服务器1204;其中,后台服务器110可以分别该些节点服务器建立网络连接,比如可以通过有线或无线方式实现连接,具体不做限定。

针对图1所示意的系统架构,接下来描述一种应用场景。比如位于上海地区的用户1给位于厦门地区的用户2发送一则消息,该则消息真实的传输过程可能是自上海发出,中途还依次经过了南京和南昌,最后送达厦门。那么该消息的传输过程可包括,自节点服务器1201发出,依次经过了节点服务器1202和节点服务器1203,最后到达节点服务器1204,那么对于该些节点服务器来说,在传输该消息的过程中可收集到相关的传输数据,例如,收发包时间、端口等,而该些数据可上传至后台服务器110,用于网络传输质量的统计。

节点服务器向后台服务器上传传输数据的方式可以是实时的,也可以是周期性的,因此,在消息传输量巨大的情况下,对应产生的传输数据也是非常庞大的,后台服务器接收和处理该些传输数据的压力也是非常大的,尤其在一些数据上传量突然增长的场景下,例如热点新闻的推出、网络故障恢复后,需要对因网络故障而延迟上传的数据重新进行上传,后台服务器可能会因为处理资源不足而发生异常。

基于此,本发明实施例提供一种数据处理方法,如图2所示,该方法包括以下步骤:

步骤201,获取待处理数据,确定所述待处理数据的操作时间。

该步骤中,待处理数据包括由客户端上传的、需要进行请求处理的数据,例如,上述的传输数据,或其他业务场景中的业务数据。在本实施例中,服务器在接收到客户端上传的待处理数据后,可先将其存入数据队列中,以等待分配线程对其进行处理,相应的,该待处理数据的操作时间可包括存入数据队列的时间,或者从数据队列中读取该待处理数据的时间,本步骤中的获取待处理数据则包含从数据队列中读取出待处理数据。

步骤202,基于所述操作时间,确定所述待处理数据是否为高频上传数据。

在一实施中,可通过计算待处理数据的操作时间与上一条待处理数据的操作时间的差值来确认待处理数据是否为高频上传数据,具体而言,若所得到的差值不大于时间阈值,则确定待处理数据为一高频上传数据,否则,确定待处理数据不是高频上传数据。其中,时间阈值的设定可结合应用场景和服务器性能的情况来进行设定。

若待处理数据是高频上传数据,则进入步骤203;若不是,则可直接分配一线程对该待处理数据进行处理,并同时对高频上传数据的记录值设为零,换言之,若出现非高频上传数据,那么表示当前数据上传的状态可能已转换为正常状态,在这种情况下,只需对待处理数据正常处理,以免因过度堆积而导致数据处理异常的问题。同时,对记录值设为零,则可保证只有当连续出现高频上传的现象时,才会进入数据堆积模式,即存入存储器,同样可避免数据的过度堆积。

在一实施中,为了防止已存入存储器中的待处理数据无法得到及时处理,那么当判定当前待处理数据并非高频上传数据时,则可再分配一线程对存储器中的已有待处理数据进行处理,或者由分配给当前待处理数据的线程对存储器中的待处理数据进行处理。

在另一实施中,可通过对堆积模式的持续时间进行判定,来确定是否需要对存储器中的待处理数据进行处理,也就是说,当存储器中待处理数据量从无到有时,可对时间进行记录,作为堆积模式开始的时间,设置为t1的值,周期性的检查当前时间tnow与t1的差值是否超过预设期限tmax,以确定是否需要对存储器中的待处理数据进行处理,若需要,则可分配一线程对该些待处理数据进行处理。通过该方式,可避免存储器中的待处理数据可及时得到处理。

步骤203,判断高频上传数据的记录值是否满足第一预设条件。

具体而言,第一预设条件包括高频上传数据的记录值不小于高频累计阈值,其中高频上传数据的记录值用于指定当前已接收到的高频上传数据条数,即当判定待处理数据为高频上传数据时,则可对该记录值进行累计;高频累计阈值,用于判定当前连续接收到的高频上传数据是否已达预设阈值,以此来确定是否对数据的处理模式进行调整,其中高频累计阈值的大小可根据实际需求进行设定。本发明实施例通过第一预设条件的设定,可在一定程度上识别出当前数据上传的状态是否为真实的高频状态,而并非偶发事件。

若高频上传数据的记录值满足第一预设条件,则进入步骤204;若不满足,则表示当前连续高频上传的数据量减少,无需进行处理模式的切换,那么服务器可直接分配一个线程对该待处理数据进行处理,同时可对高频上传数据的记录值进行累加,即加一。

步骤204,将所述待处理数据存入存储器中,并判断所述存储器中的待处理数据量是否满足第二预设条件;若满足,则分配一线程对所述存储器中的所有数据进行处理,同时清空所述存储器。

在实施中,当第二预设条件可包括存储器中的待处理数据量不小于数据堆积阈值,其中数据堆积阈值可基于结合存储器性能、服务器处理能力或实际应用需求进行设定。

当待处理数据被确定为高频上传数据,且满足存入存储器的条件时,则可将数据处理模式转换为堆积模式,即将其存入存储器中,以等待处理,同时,对存储器中的待处理数据量进行累加,即在当前记录上加上1,其中,存储器可为容器或其他形式的存储介质。

对于该些堆积在存储器中的待处理数据而言,每当有新的数据被存入存储器,那么就可判断存储器中的待处理数据量是否满足第二预设条件,即存储器中的待处理数据量不小于数据堆积阈值,若满足,则可对该些待处理数据进行统一处理,即分配一个线程统一对该些存储器中的待处理数据进行处理,当线程完成数据处理后可对存储器进行清空。

在实施中,若存储器中的待处理数据量不满足第二预设条件,则暂时不对该待处理数据做任何处理。

在实施中,线程对待处理数据的处理可包含根据预设规则对待处理数据进行筛选、计算、入库等。而当需要进行入库操作时,该线程需要与对应的数据库建立连接,并基于该连接进行数据交互,以完成入库操作。

综上所述,本发明实施例所提供的数据处理方法,可根据数据上传的频率状态来确定对待处理数据的处理方式,在确定高频上传数据持续发生时,则可将待处理数据进行堆积,进而对堆积到一定数量的待处理数据进行统一处理,即分配一个线程对其进行处理,从而节省线程资源,避免高频状态下,可用线程资源紧缺的情况,同时通过时间或数据的判断,启动对存储器中的数据进行处理,以保证该些待处理数据可及时得到处理。本方案可以降低数据处理所需的线程数,尤其是在高频上传状态下;同时减少了线程与数据库连接建立次数,缓解服务器内存以及数据库i/o资源。

值得注意的是,在本发明所提供的实施例中,服务器可将接收到的客户端上传的数据直接存入数据队列中,等待分配线程进行处理。而根据实际应用场景的不同,本发明所提供的其他实施例中,服务器可先对客户端上传的数据进行预处理,再将预处理后的数据存入数据队列,以待进一步处理,其中,预处理可包含根据业务需求对数据进行整合,以生成一条完整的业务数据(数据元),或对数据进行过滤、清洗、计算等与数据库无关的操作,具体可参照图3。

如图3所示,为本发明实施例提供的一种数据处理方法流程示意图。

步骤301,从数据队列中取出一个数据元a,并记录下数据元a的取出时刻ta。

步骤302,将ta与在数据元a之前的一个数据元b的取出时刻tb作差,并判断差值与时间阈值td的大小,包括:如果差值不大于时间阈值td,则执行步骤303;否则,执行步骤308。

步骤303,对计数器k进行累加1;其中,k用于统计符合高频上传数据条件的待处理数据的数据量。

步骤304,判断k与n的大小,包括:如果k不小于n,则执行步骤305;否则,执行步骤308;其中,n用于表示高频累计阈值。

步骤305,将数据元a存入存储器中,判断存储器中的待处理数据量m与数据堆积阈值c的大小,包括:如果m不小于c,则执行步骤306,否则,执行步骤307。

步骤306,分配一个线程对存储器中的全部数据进行处理,并对存储器进行清空。

步骤307,等待处理。

步骤308,分配一个线程对数据元a进行处理。

基于同样的构思,本发明实施例还提供一种数据处理装置。如图4所示,该装置包括:

数据获取单元401,用于获取待处理数据,确定所述待处理数据的操作时间;

数据处理单元402,用于基于所述操作时间,确定所述待处理数据是否为高频上传数据;

数据处理单元402,还用于在确定所述待处理数据为高频上传数据时,判断高频上传数据的记录值是否满足第一预设条件;

数据处理单元402,还用于在确定所述高频上传数据的记录值满足第一预设条件时,将所述待处理数据存入存储器中,并判断所述存储器中的待处理数据量是否满足第二预设条件;并在确定所述存储器中的待处理数据量满足第二预设条件时,分配一线程对所述存储器中的所有数据进行处理,同时清空所述存储器。

进一步地,对于该装置,数据处理单元402还用于,在确定所述高频上传数据的记录值不满足第一预设条件时,更新所述高频上传数据的记录值,并分配一线程对所述待处理数据进行处理。

进一步地,对于该装置,数据处理单元402还用于,若确定所述待处理数据不是高频上传数据,则将所述高频上传数据的记录值设为零,并分配一线程对所述待处理数据进行处理。

进一步的,对于该装置,数据处理单元402具体用于,所述基于所述操作时间,确定所述待处理数据是否为高频上传数据的方法包含:计算所述操作时间与上一条待处理数据的操作时间的差值;若所述差值小于或等于时间阈值,则确定所述待处理数据为高频上传数据;否则,确定所述待处理数据不是高频上传数据。

进一步的,对于该装置,所述第一预设条件包含:所述高频上传数据的记录值大于或等于高频累计阈值。

进一步的,对于该装置,所述第二预设条件包含:所述存储器中的待处理数据量大于或等于数据堆积阈值。

进一步的,对于该装置,数据获取单元401具体用于,从数据队列中读取所述待处理数据。

进一步的,对于该装置,所述待处理数据的操作时间包含所述待处理数据存入所述数据队列的时间,或从所述数据队列中读取所述待处理数据的时间。

进一步的,对于该装置,所述待处理数据包含至少一条业务数据。

进一步的,对于该装置,所述待处理数据的操作时间包含服务器接收到所述待处理数据的时间。

本发明实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)等。该计算设备可以包括中央处理器(centerprocessingunit,cpu)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器,可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储数据处理方法的程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行数据处理方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行数据处理方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1