一种数据统计处理方法及装置
技术领域
本说明书属于计算机技术领域,尤其涉及一种数据统计处理方法及装置。
背景技术
随着计算机技术互联网技术的发展,越来越多的业务需要利用计算机技术进行数据统计,数据统计的结果可以用于业务规划、系统配置等。
在进行数据统计尤其是流式数据的统计处理时,通常会将一部分数据聚合后保存在内存中一定时间,在一定时间之后的获取到的数据会被丢弃。流式数据可以表示由数千个数据源持续生成的数据,通常也同时以数据记录的形式发送。但是,由于无法获得每个业务时间的数据什么时候来完,若在指定时间内该业务时间的数据没有统计完,会被丢弃,导致数据统计结果不准确,影响为后续的业务处理的准确性。
发明内容
本说明书实施例的目的在于提供一种数据统计处理方法及装置,提高了数据统计处理的准确性。
一方面本说明书实施例提供了一种数据统计处理方法,包括:
监测数据统计时的实时数据流量;
根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值;
根据所述波动差值,确定数据统计处理时数据过期的时间参数的值;
基于所述时间参数的值进行数据统计处理。
另一方面,本说明书提供了一种数据统计处理装置,包括:
数据流量检测模块,用于监测数据统计时的实时数据流量;
波动差值计算模块,用于根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值;
时间参数设置模块,用于根据所述波动差值,确定数据统计处理时数据过期的时间参数的值;
数据统计模块,用于基于所述时间参数的值进行数据统计处理。
还一方面,本说明书提供了一种数据统计处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述数据统计处理方法。
又一方面,本说明书实施例提供了数据统计处理系统,包括:数据流量监测模块、统计时间参数调整模块、数据统计模块,其中:
所述数据流量监测模块用于:
监测数据统计时接收到上游系统发送的数据的实时数据流量;
根据所述实时数据流量,计算预设时间内的数据量和预先确定的历史数据量之间的波动差值;
根据所述波动差值与波动等级之间的映射关系,确定当前数据统计时的波动等级;
所述统计时间参数调整模块用于:
根据确定出的波动等级,确定当前数据统计时数据过期的时间参数的值;
所述数据统计模块用于根据下述规则进行数据统计处理:
若统计到的数据在所述时间参数的值对应的时间范围内,则保存统计到的数据;
若统计到的数据不在所述时间参数的值对应的时间范围内,则将统计到的数据丢弃。
本说明书提供的数据统计处理方法、装置、处理设备、系统,通过实时监测数据统计时的实时数据流量,基于实时数据流量和历史数据流量,确定当前数据统计时的数据波动情况,实时调整数据统计时数据过期的时间参数的取值。避免在数据流量比较大时,导致数据统计不完全,导致数据统计结果不准确,还可以在数据流量较小,系统处理能力较强时,提升数据统计的效率。实现了数据的灵活统计,适用于不同数据量的数据统计场景,提高了数据统计的准确性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例中数据统计处理方法的流程示意图;
图2是本说明书又一实施例中数据统计处理的流程示意图;
图3是本说明书提供的数据统计处理装置一个实施例的模块结构示意图;
图4是本说明书一个实施例中提供的数据统计处理系统的结构示意图;
图5是本说明书一个实施例中数据统计处理服务器的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
随着计算机和互联网技术的不断发展,数据量和数据的种类也在不断的增加,越来越多的业务需要对不同的数据进行数据统计处理。如:统计指定时间范围内某网站的用户访问量,统计指定时间范围内某商品的购买量等。
例如:本说明书一些场景示例中,可以利用microbatch(微批计算)流引擎进行实时数据统计时,通常情况下将实时流数据处理成一个个的batch(批次),再在batch的基础上根据业务时间戳聚合。但流式数据存在一个问题,不知道每个业务时间的数据什么时候来完。因此一般会将聚合后的数据放在内存中保留一定时间(根据业务逻辑确定),在这段时间中如果来了相同业务时间的数据,会做update(更新),如果在一定时间之后来的数据都会被丢弃。例如系统设置的过期时间是5分钟,而2018/10/10 00:00的数据在2018/10/1000:06分来,那这笔00:00的数据将会被丢弃,不进入数据统计。
本说明书一个场景实例中,可以统计每天指定时间内某网站的用户访问量,如:统计每一天每分钟的用户访问量,用户可以通过不同的客户端访问该网站,每当有用户访问该网站时,客户端可以将用户的访问数据发送到用于数据统计处理的装置如:数据统计服务器。数据统计服务器接收各个客户端发送的用户访问数据,基于用户访问数据中各个用户访问网站的时间,将在同一分钟访问网站的数据聚合,统计出每分钟网站的访问量。但是,业务系统不可避免会经历蓄洪、促销等外部活动或动作造成的数据波动,如:用户在2018/10/10 00:00访问网站的访问数据可能因为数据量较大,到在2018/10/10 00:06分才发送到数据统计服务器。在进行数据统计时,通常以数据对应的业务时间为基础,将对应于相同业务时间的数据进行聚合并保存一定时间。在这段时间内接收到相同业务时间的数据,会将接收到的数据保存更新保存的聚合数据,超过这段时间的数据则直接丢弃,不会保存统计。
本说明书一个场景实例中,在进行数据统计处理时,可以实时监测数据流的实时数据流量,根据监测到的实施数据流量和记录的历史数据量,确定当前数据统计与历史数据统计的波动差值。如:可以实时监测每分钟统计到的数据量,确定当前时间之前最近的15分钟内的数量,计算最近15分钟的数据量和历史7天同样的15分钟内的数据量的波动差值。根据计算出的波动差值,可以确定当前数据流量是否平稳,若相较历史数据流量,当前统计时数据波动较大,则调整数据统计处理时数据过期的时间参数。如:正常数据统计时,数据过期的时间参数为3分钟,即3分钟内统计到的数据会被保存,超过3分钟统计到的数据将会被丢弃。若根据数据流量的实时监测,若当前数据统计时,数据流量波动较大,则可以将时间参数延长,如将时间参数设置为5分钟。此时:若统计2018/10/10 00:00的数据,只要在2018/10/10 00:05分之前统计到的数据均会被保存,若在2018/10/10 00:05分之后到来的数据会被丢弃。
本说明书实施例中提供了一种数据统计处理方法,通过实时监测数据统计时的实时数据流量,基于实时数据流量和历史数据流量,确定当前数据统计时的数据波动情况,实时调整数据统计时数据过期的时间参数。避免在数据流量比较大时,导致数据统计不完全,导致数据统计结果不准确。实现了数据的灵活统计,提高了数据统计的准确性。
本说明书中数据统计处理方法可以应用在客户端或服务器中,客户端可以是智能手机、平板电脑、智能可穿戴设备(智能手表、虚拟现实眼镜、虚拟现实头盔等)、智能车载设备等电子设备。
本说明书实施例可以应用在流式数据的统计场景如:利用microbatch(微批计算)流引擎进行实时数据统计场景中,具体的,图1是本说明书一个实施例中数据统计处理方法的流程示意图,如图1所示,本说明书一个实施例中提供的数据统计处理方法可以包括:
步骤102、监测数据统计时的实时数据流量。
本说明书一些实施例中可以实时监测数据统计时的实时数据流量,数据流量可以表示单位时间内统计到的数据量,如:监测1分钟内统计到的数据量或10分钟内统计到的数据量,计算每分钟内的数据流量。
在具体的实施过程中,本说明书实施例进行数据统计时,数据中可以包括数据对应的业务时间,如:统计2018年10月10日00:00某网站的用户访问量数据,每个用户访问该网站时的访问时间均会被记录。在2018年10月10日00:00这一分钟内用户访问该网站时,该用户的访问数据会被发送到用于数据统计处理的装置中。用于数据统计处理的装置根据接收到的访问数据对应的业务时间,将该访问数据保存到对应的业务时间对应的数据集合中。
当然,统计到的数据还可以包括其他信息如:数据类型、数据来源等,本说明书实施例不作具体限定。
本说明书一些实施例中,可以采用下述方法监测数据统计时的实时数据流量:
预先将统计周期划分成多个指定周期,并设置各个指定周期对应的统计标识;
在各个指定周期内每统计一笔数据,将所述指定周期对应统计标识对应的标识值增加1,确定出所述指定周期内统计到的数据量;
根据各个指定周期内统计到的数据量,确定出所述实时数据流量。
在具体的实施过程中,统计周期可以表示进行数据统计处理的时间周期,如:可以以一天作为一个统计周期,或者将一周或一个月或一年作为一个统计周期,具体可以根据实际需要进行设置,本说明实施例不作具体限定。可以将统计周期内的时间划分成多个指定周期,如:可以将统计周期的时间进行均匀划分划分成时间范围相同的多个指定周期,并设置每个指定周期对应的统计标识。例如:可以将每天的24小时中的每一分钟作为一个指定周期,这样一天可以包括24×60个指定周期,每个指定周期对应有一个统计标识。统计标识可以表示用于区分每个指定周期的字符串,如:可以将时间作为一天中每分钟的统计标识,如:00:00、00:01、00:02以此类推作为一天中每一分钟的统计标识。在指定周期内,每统计到一笔数据,则将该指定周期对应的统计标识的标识值增加1,直到该指定周期结束,获得该指定周期内统计到的数据量。根据各个指定周期内统计到的数据量,确定出实时数据流量。如:若将10分钟作为一个指定周期,监测到10分钟统计到10000个数据,则可以计算出平均每分钟统计到1000数据,可以将每分钟1000作为实时数据流量。若1分钟作为一个指定周期,监测到1分钟统计到1000个数据,则可以直接将每分钟1000作为实时数据流量。
通过将统计周期进行划分,并将划分后的指定周期设置统计标识,利用统计标识进行数据流量的监测,可以实现数据流量的准确快速监测,为后续数据统计处理提供了准确的数据基础。
步骤104、根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值。
在具体的实施过程中,本说明书一些实施例中可以根据历史统计数据,获得历史预设时间内的历史数据量,再根据监测到的实时数据流量,确定出预设时间内的实时数据量,计算预设时间内的实时数据量和历史预设时间内的历史数据量之间的波动差值。其中,预设时间和历史预设时间可以表示不同统计周期内对应的时间范围相同的时间参数,预设时间通常表示实时统计时的指定时间范围,历史预设时间则表示当前时间之前与预设时间对应于相同的指定时间范围的时间。预设时间可以是当前时间之前的指定时间范围,也可以是当前时间之后的指定时间范围,历史预设时间可以是当前时间之前的统计周期内与预设时间对应的指定时间范围。例如:若当前时间为2019年5月20日00:15分,预设时间为当前时刻之前最近15分钟内,即2019年5月20日00:00分到00:15分,历史预设时间则可以表示2019年5月19日00:00分到00:15分,或2019年5月20日之前某一天的00:00分到00:15分。
例如:若当前时间为2019年5月20日00:15分,预设时间为当前时刻最近15分钟内,历史预设时间为2019年5月19日00:00分到00:15分。根据监测到的实时数据流量,可以确定出预设时间即2019年5月20日00:00分到00:15分的数据量为1.9W。根据历史数据统计情况,获得2019年5月19日00:00分到00:15分为1.7W,则可以计算出2019年5月20日00:00分到00:15分与2019年5月19日00:00分到00:15分的数据量的波动差值为0.2W。
需要说明的是,当预设时间为当前时间之后的指定时间范围时,可以根据监测到的实时数据流量预测未来指定时间范围内的实时数据量,当预设时间为当前时间之前的指定时间范围时,可以根据监测的实时数据流量直接计算出预设时间对应的实时数据量。
步骤106、根据所述波动差值,确定数据统计处理时数据过期的时间参数的值。
在具体的实施过程中,确定出实时数据量和历史数据量之间的波动差值后,可以根据波动差值的大小确定出当前数据量与历史数据量相比是否处于正常范围内。根据数据的波动情况,可以实时调整数据统计处理时数据过期的时间参数的取值。如:可以根据历史数据统计处理经验或通过实验获得不同的波动差值对应的时间参数的取值,能够使得数据统计结果比较准确,确定出波动差值与时间参数之间的函数关系,再根据确定出的函数关系和实时计算出的波动差值,确定出当前数据统计处理时的时间参数的取值。
本说明书一些实施例中,还可以结合系统资源使用率调整时间参数,其中系统资源使用率可以理解为表征系统的数据处理能力的参数,如:可以为内存或CPU(CentralProcessing Unit/Processor,中央处理器)的使用率。时间参数可以用于表示数据统计处理时决定数据丢弃的时刻,即什么时间到来的数据被丢弃。例如:若时间参数的值为1分钟,统计2019年5月19日00:00某网站的用户访问量,则在2019年5月19日00:01分之前到来的2019年5月19日00:00的用户访问数据均会被保存,2019年5月19日00:01分之后到来的2019年5月19日00:00的用户访问数据会被丢弃。
例如:若确定出实时数据量和历史数据量之间的波动差值为0.2W,根据数据统计的经验,0.2W的波动差值属于比较小的波动范围,在正常波动范围内,并且,当前系统资源使用率处于正常范围,即可以认为系统可以正常进行数据的统计处理。则可以将数据统计处理的时间参数设置为正常数据统计的时间参数。如:正常数据统计处理时,时间参数的值为3分钟,则此时可以设置数据统计处理时数据过期的时间参数的值为3分钟不变。若根据数据统计的经验,0.2W的波动差值属于比较大的波动范围,即当前的数据量比较大,数据可能会出现延迟的现象。此时,可以增大数据过期的时间参数的取值,如:正常数据统计处理时,时间参数的值为3分钟,则此时可以将数据统计处理时数据过期的时间参数的值调整为4分钟,即延迟1分钟丢弃到来的数据也可以被统计到。
步骤108、基于所述时间参数的值进行数据统计处理。
在具体的实施过程中,实时调整数据统计时的数据过期的时间参数的取值后,基于时间参数的取值进行数据统计处理,即根据时间参数的取值范围决定统计哪些数据、丢弃哪些数据。
在本说明书一些实施例中,所述基于所述时间参数进行数据统计处理,可以包括:
若统计到的数据在所述时间参数的值对应的时间范围内,则保存统计到的数据;
若统计到的数据不在所述时间参数的值对应的时间范围内,则将统计到的数据丢弃。
例如:本说明书一个示例中,需要统计2019年5月19日00:00某网站的用户访问量,通过数据量的实时监测,设置的时间参数的值为3分钟。则在2019年5月19日00:03分之前统计到的在2019年5月19日00:00访问该网站的用户访问数据均保存,在2019年5月19日00:03分之前每接收到一个在2019年5月19日00:00访问该网站的用户访问数据,则更新已经保存的2019年5月19日00:00该网站的用户访问量的统计数据。在2019年5月19日00:03分之后统计到的在2019年5月19日00:00访问该网站的用户访问数据均丢弃。
当然,当时间参数的取值无限大时,可以理解为无论何时接收到的数据均会被保存统计,不会将数据丢弃。
本说明书实施例提供的数据统计处理方法,通过实时监测数据统计时的实时数据流量,基于实时数据流量和历史数据流量,确定当前数据统计时的数据波动情况,实时调整数据统计时数据过期的时间参数的取值。避免在数据流量比较大时,导致数据统计不完全,导致数据统计结果不准确,还可以在数据流量较小,系统处理能力较强时,提升数据统计的效率。实现了数据的灵活统计,适用于不同数据量的数据统计场景,提高了数据统计的准确性。
在上述实施例的基础上,本说明书一些实施例中,所述根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值,包括:
预先根据所述历史数据量,计算出指定历史统计周期内所述历史预设时间的历史数据量均值;
根据所述实时数据流量确定出所述预设时间内的实时数据量;
将所述实时数据量和所述历史数据量均值之间的差值作为所述波动差值。
在具体的实施过程中,可以根据历史数据量,计算历史预设时间内的历史数据量均值,其中历史预设时间的含义可以参考上述实施例的记载,此处不再赘述。如:可以计算指定历史周期内的历史预设时间对应的历史数据量均值,指定历史统计周期可以理解为指定的历史的数据统计时间范围,具体可以根据实际需要进行设置。例如:统计每天每分钟网站的用户访问量,统计周期可以设置为天,指定历史统计周期可以理解为指定的历史某天或历史某几天,如:当前时间之前的7天作为指定历史统计周期。若统计每个月某商品的销售数据,统计周期可以理解为月,指定历史统计周期可以理解为当前时间之前的某个月或某几个月,如:当前时间之前6个月作为历史统计周期。
例如:若当前时间为2019年5月20日00:15分,预设时间为当前时刻之前最近15分钟内,即2019年5月20日00:00分到00:15分。指定历史统计周期设置为当前时间之前7天,则可以计算2019年5月13日到2019年5月19日连续7天每天00:00分到00:15分的数据量的均值作为历史预设时间内的历史数据量均值。
计算出历史预设时间的历史数据量均值后,可以将历史数据量均值进行保存,监测到实时数据流量后,可以根据实时数据流量计算出预设时间内的实时数据量,计算实时数据量和历史数据量均值之间的差值作为当前数据统计处理的波动差值。当然,根据实际使用需要,可以根据数据统计处理的时间推移,不断更新历史数据量均值。
本说明书实施例通过将实时监测到的数据量和历史数据量均值进行比较,确定出当前数据统计处理的数据量与历史数据量之间的波动差值。该波动差值可以反映当前数据统计处理时数据的波动情况,基于波动差值进行数据统计处理时数据过期的时间参数调整,实现数据的灵活统计,使得数据统计适应于不同数据量的情况,提高数据统计的准确性。
在上述实施例的基础上,本说明书一些实施例中,所述根据所述波动差值,确定数据统计处理时数据过期的时间参数的值,包括:
预先设置不同的波动差值与波动等级之间的映射关系;
根据所述波动差值和所述映射关系,确定当前数据统计时的波动等级;
基于所述波动等级,确定所述时间参数的值。
在具体的实施过程中,可以预先设置波动差值与波动等级之间的映射关系,该映射关系可以表示波动差值在不同的范围内时对应的波动等级。如:波动差值在0-20%时,波动等级为0,波动差值在20%-50%时,波动等级为1,波动差值在50%-100%时,波动等级为2,波动差值大于100%时,波动等级为3。计算出实时数据量和历史数据量之间的波动差值后,可以根据设置的波动差值与波动等级之间的映射关系,确定出波动差值对应的波动等级,根据波动等级对时间参数的取值进行调整。如:波动等级为0时,可以表示数据量在正常波动范围,可以按照正常的时间参数的取值范围进行数据统计,若波动等级为1时,可以表示数据量波动较大,可以增大时间参数的取值,延迟数据统计时数据丢弃的时间,以此类推,调整时间参数的取值。
当然,若波动差值为负数,即当前数据统计处理的数据量较历史时间比较小,还可以设置波动等级为负,即当前数据量较小,数据传输的速度相对较快,可以减小时间参数的取值,缩短数据统计时数据丢弃的时间范围,提高数据统计的处理速度。
本说明书实施例,预设设置波动差值和波动等级之间的映射关系,基于实时数据量和历史数据量之间的波动差值,确定当前数据量的波动等级,可以直观的体现出当前数据量的波动情况,进一步快速的调整数据统计时的时间参数的取值。
在上述实施例的基础上,本说明书一些实施例中,所述基于所述波动等级,确定所述时间参数的取值包括:
采用下述方法基于所述波动等级和系统资源使用率,确定所述时间参数的值:
将最低的波动等级对应的时间参数的值作为基准时间参数值;
在所述系统资源使用率小于预设使用率时,将指定波动等级与波动参数相加后与所述基准时间参数值的乘积作为所述指定波动等级对应的时间参数的值,所述指定波动等级为除了所述最低的波动等级之外的波动等级。
在具体的实施过程中,可以结合系统资源使用率(如:系统的内存或CPU的使用率)和数据量的波动等级,设置数据统计时数据过期的时间参数的取值。具体可以将最低的波动等级对应的时间参数的值作为基准时间参数值,当系统资源使用率小于预设使用率时,若波动等级为最低的波动等级则直接采用所述基准时间参数值作为数据统计处理时数据过期的时间参数的值,若波动等级不是最低的波动等级,则将波动等级与波动参数相加,再与基准时间参数值相乘,获得的结果作为该波动等级对应的时间参数的值。其中,波动参数可以表示用于调整时间参数的一个常数,具体取值可以根据实际需要进行设置。
例如:若本说明书一个示例中,最低的波动等级为0级,设置0级对应的时间参数的值为3分钟,3分钟可以作为基准时间参数值,预设的波动参数为1,并且,当前的系统资源使用率小于预设使用率,即当前系统的性能正常。根据实时监测的数据量和历史数据量计算出当前数据统计处理的波动差值,进一步确定当前数据量的波动等级。若波动等级为0级,则时间参数为3分钟。若确定的波动等级为1,则此时的时间参数的取值为(1+1)×3=6,可以将时间参数的值调整为6分钟。同样的,若确定的波动等级为2,则此时的时间参数的取值为(2+1)×3=9,可以将时间参数的值调整为9分钟。
根据实际使用需要,可以根据不同的场景或不同的系统处理性能调整波动参数的取值,使得计算出的时间参数更加使用数据量的波动。或者,也可以设置不同的系统资源使用率使用不同的波动参数计算时间参数的取值,或,通过实验确定出波动等级与时间参数的取值之间的映射关系,基于映射关系直接确定出各波动等级对应的时间参数的值,本说明书实施例不作具体限定。
本说明书实施例,将最低的波动等级对应的时间参数作为基准时间参数,利用基准时间参数和预设的波动参数,计算各个波动等级对应的时间参数的取值。当确定出当前数据统计处理时数据的波动等级后,可以快速准确的计算出对应的时间参数的取值,根据计算出的时间参数,实时调整数据统计处理时数据过期的时间参数的取值,使得数据统计处理使用不同的数据量场景,提高数据处理的准确性。
本说明书一些实施例中,当系统资源使用率超过所述预设使用率时,则进行报警提示,如:显示系统资源使用率超标警示语或进行警鸣提醒,提醒相关的工作人员如系统管理员对上游数据进行限速或扩充系统资源。
本说明书实施例,通过关注数据实时波动动态调整数据过期的时间参数,在数据准确性和机器性能之间做了一个平衡,以确保利用microbatch系统统计实时数据的准确性在任务情况下都可以保持一致,提高了数据统计的准确性。
图2是本说明书又一实施例中数据统计处理的流程示意图,下面结合图2具体介绍本说明书实施例中数据统计处理过程中,数据过期的时间参数的取值的调整过程:
可以在microbatch流处理应用中增加两个模块:速率监测器和累积转换器。
1、速率监测器:速率监测器可以用于实时监测数据统计处理时的数据流量,可以根据监测到的数据流量,记录数据统计处理的历史规律,预测当前数据流量的趋势,确定当前数据波动等级,具体过程可以参考如下:
a)、历史规律记录
假设源数据格式如下:2018/10/10 00:00:00,业务时间,数据1,数据2,数据3….(2018/10/1000:00:00表示系统时间,即数据到达上游的时间)。
在内存中对每分钟保留一个key即上述时候示例的统计标识,如00:00、00:01,24*60,一共有1440个key,每来一笔数据,就给对应key的value(即上述实施例的标识值)+1。记录了每天每分钟的数据量级,该量级可以定时更新到磁盘或者其它外部存储设备。
b)、当前趋势预测
利用一个算法(不限定具体计算方式)判断当时数据流速是否正常。例如:历史记录情况如下:00:00分的量级均值是1200,00:01分的量级均值是1300,00:02分的量级均值是1250。当前数据如下:
系统在00:01时,统计到00:00的数据有1200;
系统在00:02时,统计到00:00的数据有1600,00:01的数据有1200;
系统在00:03时,统计到00:00的数据有2500,00:01的数据有1800。
从系统时间维度看,每分钟的数据都在上涨,且连续超过2分钟的绝对量级远远超过历史均值,那么可以认为当前数据处于暴增状态。并且可以根据与历史均值的差异率来设置波动等级,波动等级级数不受限制,例如:
最近15分钟的数据量级与历史7天相同的15分钟内的数据量的均值差异率在20%左右,则波动等级=0;
最近15分钟的数据量级与历史7天相同的15分钟内的数据量的均值差异率在50%左右,则波动等级=1;
最近15分钟的数据量级与历史7天相同的15分钟内的数据量的均值差异率在100%左右,则波动等级=2。
2、累计转换器:累积转换器可以根据确定的波动等级,确定出当前数据流量对应的模式,进一步调整数据统计时数据过期的时间参数,并根据调整的时间参数进行数据统计处理,具体过程可以参考如下:
a)、正常模式
正常模式主要考虑机器性能以及资源的优化,目的在于降级CPU和内存的使用率。所以根据业务属性,通常会给业务数据设置3分钟的过期时间。例如来源数据如下:
1、2018/10/10、00:00:00(系统时间),2018/10/9、23:59:00业务时间,数据1,数据2,数据3…;
2、2018/10/10、00:00:00(系统时间),2018/10/9、23:52:00业务时间,数据1,数据2,数据3…。
第二条数据的业务时间和系统时间超过8分钟,将会被丢弃,不纳入数据统计中。
b)、暴增模式
暴增模式主要考虑适当牺牲机器性能的情况下保证数据的准确性,所以需要灵活更新数据过期的时间参数,主要可以考虑两点:数据波动等级、集群资源情况即上述实施例中的系统资源使用率。
切换逻辑如下:
当数据波动等级为0时,则维持正常模式,保持3分钟丢弃的时间设置;
当数据波动等级为1且内存使用率不超过90%,则延长数据过期期限(系统时间与业务时间差异)为3×(1+1)分钟丢弃;
当数据波动等级为2且内存使用率不超过90%,则延长数据过期期限(系统时间与业务时间差异)为3×(1+2)分钟丢弃;
以此类推。
当内存使用率超过90%,立即发送报警通知到系统管理员,进行上游数据限速和机器资源扩充。
本说明书实施例,通过关注数据实时波动动态调整数据过期的时间参数,在数据准确性和机器性能之间做了一个平衡,以确保利用microbatch系统统计实时数据的准确性在任务情况下都可以保持一致,提高了数据统计的准确性。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参考方法实施例的部分说明即可。
基于上述所述的数据统计处理方法,本说明书一个或多个实施例还提供一种数据统计处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参考前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图3是本说明书提供的数据统计处理装置一个实施例的模块结构示意图,如图3所示,本说明书中提供的资源数据更新装置可以包括:数据流量检测模块31、波动差值计算模块32、时间参数设置模块33、数据统计模块34,其中:
数据流量检测模块31,可以用于监测数据统计时的实时数据流量;
波动差值计算模块32,可以用于根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值;
时间参数设置模块33,可以用于根据所述波动差值,确定数据统计处理时数据过期的时间参数的值;
数据统计模块34,可以用于基于所述时间参数的值进行数据统计处理。
本说明书实施例提供的数据统计处理方法,通过实时监测数据统计时的实时数据流量,基于实时数据流量和历史数据流量,确定当前数据统计时的数据波动情况,结合当前系统资源使用率,实时调整数据统计时数据过期的时间参数。避免在数据流量比较大时,导致数据统计不完全,导致数据统计结果不准确,还可以在数据流量较小,系统处理能力较强时,提升数据统计的效率。实现了数据的灵活统计,提高了数据统计的准确性。
在上述实施例的基础上,本说明书一些实施例中,所述数据流量检测模块具体用于:
预先将统计周期划分成多个指定周期,并设置各个指定周期对应的统计标识;
在各个指定周期内每统计一笔数据,将所述指定周期对应统计标识对应的标识值增加1,确定出所述指定周期内统计到的数据量;
根据各个指定周期内统计到的数据量,确定出所述实时数据流量。
本说明书实施例,通过将统计周期进行划分,并将划分后的指定周期设置统计标识,利用统计标识进行数据流量的监测,可以实现数据流量的准确快速监测,为后续数据统计处理提供了准确的数据基础。
在上述实施例的基础上,本说明书一些实施例中,所述波动差值计算模块具体用于:
预先根据所述历史数据量,计算出指定历史统计周期内所述历史预设时间的历史数据量均值;
根据所述实时数据流量确定出所述预设时间内的实时数据量;
将所述实时数据量和所述历史数据量均值之间的差值作为所述波动差值。
本说明书实施例,通过将实时监测到的数据量和历史数据量均值进行比较,确定出当前数据统计处理的数据量与历史数据量之间的波动差值。该波动差值可以反映当前数据统计处理时数据的波动情况,基于波动差值进行数据统计处理时数据过期的时间参数调整,实现数据的灵活统计,使得数据统计适应于不同数据量的情况,提高数据统计的准确性。
在上述实施例的基础上,本说明书一些实施例中,所述时间参数设置模块具体用于:
预先设置不同的波动差值与波动等级之间的映射关系;
根据所述波动差值和所述映射关系,确定当前数据统计时的波动等级;
基于所述波动等级,确定所述时间参数的值。
本说明书实施例,预设设置波动差值和波动等级之间的映射关系,基于实时数据量和历史数据量之间的波动差值,确定当前数据量的波动等级,可以直观的体现出当前数据量的波动情况,进一步快速的调整数据统计时的时间参数。
在上述实施例的基础上,本说明书一些实施例中,所述时间参数设置模块具体用于:
采用下述方法基于所述波动等级和系统资源使用率,设置所述时间参数:
将最低的波动等级对应的时间参数的值作为基准时间参数值;
在所述系统资源使用率小于预设使用率时,将指定波动等级与波动参数相加后与所述基准时间参数值的乘积作为所述指定波动等级对应的时间参数的值,所述指定波动等级为除了所述最低的波动等级之外的波动等级。
本说明书实施例,将最低的波动等级对应的时间参数作为基准时间参数,利用基准时间参数和预设的波动参数,计算各个波动等级对应的时间参数。当确定出当前数据统计处理时数据的波动等级后,可以快速准确的计算出对应的时间参数,根据计算出的时间参数,实时调整数据统计处理时数据过期的时间参数,使得数据统计处理使用不同的数据量场景,提高数据处理的准确性。
在上述实施例的基础上,本说明书一些实施例中,所述装置还包括报警模块用于:
在所述系统资源使用率超过所述预设使用率时,进行报警提示。
本说明书实施例,在系统资源使用率过高时,通过报警提示系统管理员及时处理,确保了系统稳定性。
在上述实施例的基础上,本说明书一些实施例中,所述数据统计模块具体用于:
在数据统计处理时,若统计到的数据在所述时间参数的值对应的时间范围内,则保存统计到的数据;
若统计到的数据不在所述时间参数的值对应的时间范围内,则将统计到的数据丢弃。
本说明书实施例,根据监测到的数据实时波动状态,调整数据统计时数据过期的时间参数,并基于调整后的时间参数对统计到的数据进行保存或丢弃处理,提高了数据统计的准确性。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述对应的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供一种数据统计处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述实施例中数据统计处理方法,如:
监测数据统计时的实时数据流量;
根据所述实时数据流量,计算预设时间内的实时数据量和预先确定的历史预设时间内历史数据量之间的波动差值;
根据所述波动差值,确定数据统计处理时数据过期的时间参数的值;
基于所述时间参数进行数据统计处理。
图4是本说明书一个实施例中提供的数据统计处理系统的结构示意图,如图4所示,本说明书实施例中的数据统计处理系统可以包括数据流量监测模块、统计时间参数调整模块、数据统计模块,其中:
所述数据流量监测模块用于:
监测数据统计时接收到上游系统发送的数据的实时数据流量;
根据所述实时数据流量,计算预设时间内的数据量和预先确定的历史数据量之间的波动差值;
根据所述波动差值与波动等级之间的映射关系,确定当前数据统计时的波动等级;
所述统计时间参数调整模块用于:
根据确定出的波动等级,确定当前数据统计时数据过期的时间参数的值;
所述数据统计模块用于根据下述规则进行数据统计处理:
若统计到的数据在所述时间参数的值对应的时间范围内,则保存统计到的数据;
若统计到的数据不在所述时间参数的值对应的时间范围内,则将统计到的数据丢弃。
需要说明的,上述所述的处理设备和系统,根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述对应的方法实施例的描述,在此不作一一赘述。
本说明书提供的数据统计处理装置或处理设备或系统,也可以应用在多种数据分析处理系统中。所述系统或装置或处理设备可以包括上述实施例中任意一个数据统计处理装置。所述的系统或装置或处理设备可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述核对差异数据的检测系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图5是本说明书一个实施例中数据统计处理服务器的硬件结构框图,该服务器可以是上述实施例中的数据统计处理装置、数据统计处理设备或系统。如图5所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本邻域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图5中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图5所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的数据统计处理方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及资源数据更新。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书实施例提供的上述数据统计处理方法或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、计算机存储介质、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机资源数据更新和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式资源数据更新环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程资源数据更新设备的处理器以产生一个机器,使得通过计算机或其他可编程资源数据更新设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程资源数据更新设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程资源数据更新设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。