数据统计周期确定方法、装置、电子设备及存储介质与流程

文档序号:21361558发布日期:2020-07-04 04:35阅读:432来源:国知局
数据统计周期确定方法、装置、电子设备及存储介质与流程
本发明涉及数据库
技术领域
,尤其涉及一种数据统计周期确定方法、装置、电子设备及存储介质。
背景技术
:业务系统通常需要对外输出运营数据,如定期统计系统的用户数据、接口调用量以及其他业务指标等。这些数据一般从业务系统的数据库中获取,因此需要为业务系统做数据统计。现有技术中的数据统计方法为配置定时任务,在夜间系统访问量最少的时候执行数据统计任务,不影响系统正常运行。如果是临时的统计任务,则会直接执行统计任务,当请求量达到一定量级时,每一次统计的数据量就会很大,操作不当甚至会占用系统cpu,影响系统的正常运转。定时任务,是固定在某个时间执行某个固定的统计任务脚本,无法根据本次统计的数据量的大小来调整统计任务的单次统计周期。如要保证统计任务的效率,可能会占用庞大的系统资源,导致统计任务执行时间过长,影响到系统在白天的正常访问。如果统计数据量过大,遇上系统宕机或者内存溢出等意外情况,将会导致统计任务失败,无法输出统计结果。如果业务系统数据量激增,则要提前调整统计脚本,不断尝试,确定合适的统计周期和数据量,以保证定时任务的成功、高效执行。这样做耗时费力,效率太低。若能对数据统计的统计周期做合理的设置,将有助于提高数据统计的效率。技术实现要素:本发明实施例提供一种数据统计周期确定方法、装置、电子设备及存储介质,用以解决现有技术中不能根据统计的数据量大小确定合适的统计周期与单次统计量,进而导致执行效率低、甚至无法完成的缺陷。本发明第一方面实施例提供了一种数据统计周期确定方法,包括:根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;根据所述第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量;根据统计任务的单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期;根据所述单次统计的统计周期执行所述统计任务;其中,所述平均统计数据量为系统单位时间内所能统计的数据量;所述单位时间待统计数据量为系统单位时间内所产生的待统计数据量。基于本发明任一实施例,还包括:计算多个系统性能指标中的每一个系统性能指标与所述平均统计数据量之间的相关程度。基于本发明任一实施例,所述根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标包括:从多个系统性能指标中确定与平均统计数据量相关程度最高的系统性能指标,将该系统性能指标作为第一系统性能指标。基于本发明任一实施例,所述根据所述单次统计的统计周期执行所述统计任务包括:根据所述单次统计的统计周期,将所述统计任务拆分成多个子统计任务,按照所述单次统计的统计周期执行所述多个子统计任务。基于本发明任一实施例,所述计算多个系统性能指标中的每一个系统性能指标与所述平均统计数据量之间的相关程度包括:获得所述多个系统性能指标与所述平均统计数据量的数值;根据所述多个系统性能指标与所述平均统计数据量的数值,计算所述多个系统性能指标中的每一个系统性能指标与所述平均统计数据量之间的相关系数,所述相关系数反映了相关程度的大小。基于本发明任一实施例,所述平均统计数据量根据一次统计的数据量、一次统计所消耗的时间以及系统在单位时间内有任务执行的总时间确定。基于本发明任一实施例,所述平均统计数据量的计算公式为:c=n*l/t;其中,c表示平均统计数据量;n表示一次统计的数据量;l表示一次统计所消耗的时间;t表示系统在单位时间内有任务执行的总时间。本发明第二方面实施例提供了一种数据统计周期确定装置,包括:第一系统性能指标确定模块,用于根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;单次统计的数据量确定模块,用于根据所述第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量;单次统计的统计周期确定模块,用于根据单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期;统计任务执行模块,用于根据所述单次统计的统计周期执行所述统计任务;其中,所述平均统计数据量为系统单位时间内所能统计的数据量;所述单位时间待统计数据量为系统单位时间内所产生的待统计数据量。本发明第三方面实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述数据统计周期确定方法的步骤。本发明第四方面实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述数据统计周期确定方法的步骤。本发明实施例提供的数据统计周期确定方法、装置、电子设备及存储介质,根据与平均统计数据量相关程度最高的系统性能指标来确定单次统计的数据量,进而得到单次统计的统计周期,实现了对统计周期的合理划分,既能避免单次统计的数据量过大带来的内存溢出、系统崩溃等情况,又能避免单次统计的数据量过小导致的执行效率低的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的数据统计周期确定方法的流程图;图2为本发明另一实施例提供的数据统计周期确定方法的流程图;图3为本发明实施例提供的数据统计周期确定装置的示意图;图4示例了一种电子设备的实体结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在对本发明实施例提供的数据统计周期确定方法做详细说明之前,首先介绍本发明实施例中所涉及到的相关概念。数据量:本发明实施例中所涉及的数据量以数据的条数为计量单位,如数据量为1000万,代表有1000万条数据。统计数据量:一次统计所涉及的数据量。cpu使用率:cpu使用率是衡量系统性能的一项重要指标,它是指用户进程与系统进程消耗的cpu时间百分比。通过对系统运行情况的实时监控可以得到系统的实时cpu使用率。将系统在一段时间内的实时cpu使用率做平均,可以得到这一时间段内的平均cpu使用率。cpu使用率一般会有一个上限值,如果超出上限值,系统会被认为处于不健康状态,需要优化,不适合再新增统计任务。内存利用率:内存利用率是指系统中已被使用的内存量与内存总量之间的百分比。内存利用率的计算公式为:(memtotal-memfree)/memtotal;其中,memtotal表示系统中的内存总量,memfree表示系统中的空余内存量。内存利用率一般会有一个上限值,如果超出上限值,系统可能会出现卡顿、崩溃等异常情况。系统吞吐量:系统吞吐量是指在单位时间内cpu从存储设备读取、处理、存储信息的量。系统吞吐量的计算公式为:f=vu*r/t;其中,f表示系统吞吐量,vu表示任务数,r表示每个任务的统计数据量,t表示响应时间。平均统计数据量:平均统计数据量是指系统单位时间内所能统计的数据量。平均统计数据量的计算公式为:c=n*l/t;其中,c表示平均统计数据量;n表示一次统计的数据量;l表示一次统计所消耗的时间,即响应时间;t表示系统单位时间内总的运行时间(系统在单位时间内有任务在执行的总时间)。本领域技术人员应当了解,平均统计数据量所对应的单位时间的时间单位可以是小时、天、分钟、秒等。但无论采用何种时间单位,一次统计所消耗的时间l、系统单位时间内总的运行时间t所采用的时间单位应与其一致。图1为本发明实施例提供的数据统计周期确定方法的流程图,如图1所示,本发明实施例提供的数据统计周期确定方法包括:步骤101、根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;系统性能指标包括多种类型,在本发明实施例中,系统性能指标包括cpu使用率、内存利用率、系统吞吐量这三类指标。在本发明的其他实施例中,系统性能指标还可包括其他类型的指标,如磁盘读写能力、网络带宽等。相关程度反映了两个对象之间相关关系的密切程度。在本发明实施例中,采用相关系数来描述相关程度,相关系数越大、相关程度越高。在本发明实施例中,选取与平均统计数据量相关程度最高的系统性能指标作为第一系统性能指标。在本发明的其他实施例中,第一系统性能指标也可以有其他选择,如与平均统计数据量相关程度次高的系统性能指标。在本发明实施例中,cpu使用率、内存利用率、系统吞吐量这三类指标中的任意一个均有可能是第一系统性能指标。在本发明的其他实施例中,如磁盘读写能力、网络带宽等其他类型的系统性能指标也有可能成为第一系统性能指标。步骤102、根据第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量。所述阈值是与第一系统性能指标的类型有关的一个参数。如第一系统性能指标为cpu使用率,则所述阈值是cpu使用率的上限值。在本发明实施例中,cpu使用率的上限值设定为90%,在本发明的其他实施例中,cpu使用率的上限值也可以是其他值,但一般应小于90%。如第一系统性能指标为内存利用率,则所述阈值是内存利用率的上限值。在本发明实施例中,内存利用率的上限值设定为90%,在本发明的其他实施例中,内存利用率的上限值也可以是其他值,但一般应小于90%。如第一系统性能指标为系统吞吐量,则所述阈值是系统吞吐量的最大值。系统的吞吐量受到多种因素的影响,如存储设备的存取速度、cpu性能、时钟频率、每条指令所花的时钟周期数(即cpi)、指令条数、系统结构等。在系统配置不变的条件下,当统计数据量达到某一个值时,系统吞吐量会达到最大值,统计数据量高于这个值或低于这个值,系统吞吐量都无法达到最大值。通过对系统历史样本数据的分析可确定系统吞吐量最大值。确定单次统计的数据量是将第一系统性能指标达到阈值时所对应的平均统计数据量作为单次统计的数据量。本发明实施例中所述的单次统计的数据量是指在不影响系统正常运行的前提下,按照这一数据量进行统计,则统计脚本在系统中运行的效率最高。第一系统性能指标达到阈值时所对应的平均统计数据量可通过对系统历史数据的分析计算确定。步骤103、根据统计任务的单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期。所述单次统计任务的统计周期是指需要间隔多久执行一次统计任务。系统的单位时间待统计数据量是指系统在单位时间内所生成的待统计数据量。需要说明的是,统计周期、单位时间待统计数据量、单次统计的数据量这三者的时间单位应该一致,如均以天为单位,或均以小时为单位,或均以分钟为单位,也可以同时采用其他时间单位。在本发明实施例中,时间单位均为天。假设系统的单位时间待统计数据量为daily_data,系统单次统计的适宜数据量为data_count_suit,那么单次统计任务的统计周期为:data_count_suit/daily_data。在一个实施例中,假设某计算机系统中,cpu使用率与平均统计数据量关系最为密切。当cpu使用率达到90%(阈值)时,对应的平均统计数据量为3000万,则单次统计的数据量data_count_suit=3000万。再根据数据统计,当前计算机系统每天新增的数据量(即单位时间待统计数据量)在1000万左右,即系统一天的数据量为daily_data=1000万。由此可知,在该计算机系统一天的数据量在1000万、一次统计3000万数据不影响系统正常运转的情况下,统计任务应该每次统计的时间跨度为3000/1000=3天。步骤104、根据单次统计的统计周期执行统计任务。在之前的步骤中,已经计算出在不影响系统正常运行前提下单次统计的数据量,进而根据统计任务的单位时间待统计数据量计算出单次统计的统计周期。因此在本步骤中,可根据这一统计周期执行统计任务。统计任务的数据统计量有多有少,若一个统计任务无法通过单次统计完成,则可将该统计任务拆分成多个子统计任务,然后按照单次统计的统计周期执行所述的多个子统计任务。例如,一个统计任务为要统计一个月的登录用户数,若通过前述步骤计算出针对该统计任务的一次统计任务的统计周期为3天,那就可以每隔三天做一次统计。本发明实施例提供的数据统计周期确定方法根据与平均统计数据量相关程度最高的系统性能指标来确定单次统计的数据量,进而得到单次统计的统计周期,实现了对统计周期的合理划分,既能避免单次统计的数据量过大带来的内存溢出、系统崩溃等情况,又能避免单次统计的数据量过小导致的执行效率低的问题。基于上述任一实施例,图2为本发明另一实施例提供的数据统计周期确定方法的流程图,如图2所示,本发明另一实施例提供的数据统计周期确定方法包括:步骤201、计算多个系统性能指标中的每一个系统性能指标与所述平均统计数据量之间的相关程度。系统性能指标包括多种类型,在本发明实施例中,多个系统性能指标包括cpu使用率、内存利用率、系统吞吐量这三类指标。在本发明的其他实施例中,系统性能指标还可包括其他类型的指标,如磁盘读写能力、网络带宽等。系统性能指标的数值可从样本数据中获取。所述样本数据是系统正常运行时所收集的相关指标。如统计数据量、任务数、空余内存量、响应时间、cpu使用率等。在下面的表1中示例性地给出了一些样本数据。表1中描述了n次统计任务执行时从系统所收集的指标。其中,统计数据量data_count(n)代表了第n次统计所涉及到的数据量,如前所述,这些数据量以数据的条数为计量单位。系统运行任务数vu(n)描述了第n次统计时系统中所运行的任务的数目。空余内存量memfree(n)描述了第n次统计时系统中所空余的内存的大小。响应时间resp_time(n)描述了第n次统计所消耗的时间。实时cpu使用率反应了第n次统计过程中的cpu使用率。需要说明的是,表1仅仅是为了便于本领域技术人员理解本发明实施例所举的一个范例,实际运行时可根据需要采集其他类型的样本数据,如网络带宽、磁盘读写能力等。表1统计数据量系统运行任务数空余内存量响应时间实时cpu使用率data_count(1)vu(1)memfree(1)resp_time(1)act_cpu(1)data_count(2)vu(2)memfree(2)resp_time(2)act_cpu(2)...............data_count(n)vu(n)memfree(n)resp_time(n)act_cpu(n)一些性能指标可从样本数据中直接获取,如cpu使用率。另一些性能指标可通过对样本数据的计算得到。例如,从样本数据获取空余内存量,结合系统的内存总量,根据前述内存利用率计算公式可计算出内存利用率。又例如,从样本数据获取运行任务数、每个任务的统计数据量、响应时间,根据前述系统吞吐量计算公式可计算出系统吞吐量。平均统计数据量的数值也可通过对样本数据的计算得到。从样本数据中获取一次统计的数据量、一次统计所消耗的时间(即响应时间)后,结合系统一天总的运行时间,根据前述平均统计数据量计算公式可计算出平均统计数据量。在下面的表2中示例性地给出了根据表1的样本数据计算得到的性能指标与平均统计数据量。其中,c(n)表示在做第n次统计时的平均统计数据量;act_mem(n)表示在做第n次统计时的内存利用率;f(n)表示在做第n次统计时的系统吞吐量。需要说明的是,表2仅仅是为了便于本领域技术人员理解本发明实施例所举的一个范例,实际运行时可根据需要计算其他类型的性能指标。表2统计数据量平均统计数据量内存利用率系统吞吐量data_count(1)c(1)act_mem(1)f(1)data_count(2)c(2)act_mem(2)f(2)............data_count(n)c(n)act_mem(n)f(n)相关程度反映了两个对象之间相关关系的密切程度。在本发明实施例中,采用相关系数来描述相关程度。相关系数的计算公式为:在本步骤中,需要计算平均统计数据量与多个系统性能指标之间的相关系数。因此相关系数计算公式中的变量x表示平均统计数据量,y表示某个系统性能指标。var(x)表示变量x的方差,var(y)表示变量y的方差;cov(x,y)表示协方差,是描述随机变量相互关联程度的一个特征数,它是x的偏差[x-e(x)]与y的偏差[y-e(y)]的乘积的数学期望。将平均统计数据量的数值与某个系统性能指标的数值代入前述的相关系数计算公式,可计算出平均统计数据量与该单个系统性能指标之间的相关系数。在本发明实施例中,可分别计算出平均统计数据量与cpu使用率的相关系数corr1、平均统计数据量与内存利用率的相关系数corr2、平均统计数据量与系统吞吐量的相关系数corr3。在本发明的其他实施例中,系统性能指标还包括其他类型的指标,则可计算出平均统计数据量与所述其他类型指标之间的相关系数。步骤202、根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标。在本发明实施例中,选取与平均统计数据量相关程度最高的系统性能指标作为第一系统性能指标。在计算出平均统计数据量与cpu使用率的相关系数corr1、平均统计数据量与内存利用率的相关系数corr2、平均统计数据量与系统吞吐量的相关系数corr3后,比较这些相关系数,可确定第一系统性能指标。例如,当corr1最大时,说明系统的cpu使用率与统计数据量关系最为密切,cpu使用率为第一系统性能指标;当corr2最大时,说明系统的内存利用率与统计数据量关系最为密切,内存利用率为第一系统性能指标;当corr3最大时,说明系统的系统吞吐量与统计数据量关系最为密切,系统吞吐量为第一系统性能指标。步骤203、根据第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量。步骤204、根据单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期。步骤205、根据单次统计的统计周期执行统计任务。本发明实施例提供的数据统计周期确定方法通过对多个系统性能指标与平均统计数据量之间相关程度的计算,确定了与平均统计数据量相关程度最高的系统性能指标,根据该指标来确定单次统计的数据量,进而得到单次统计的统计周期,实现了对统计周期的合理划分,既能避免单次统计的数据量过大带来的内存溢出、系统崩溃等情况,又能避免单次统计的数据量过小导致的执行效率低的问题。基于上述任一实施例,图3为本发明实施例提供的数据统计周期确定装置的示意图,如图3所示,本发明实施例提供的数据统计周期确定装置,包括:第一系统性能指标确定模块301,用于根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;单次统计的数据量确定模块302,用于根据第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量。其中,平均统计数据量为系统单位时间内所能统计的数据量。单次统计的统计周期确定模块303,用于根据单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期。其中,单位时间待统计数据量为系统单位时间内所产生的待统计数据量。统计任务执行模块304,用于根据所述单次统计的统计周期执行所述统计任务。本发明实施例提供的数据统计周期确定装置根据与所述平均统计数据量相关程度最高的系统性能指标来确定单次统计的数据量,进而得到单次统计的统计周期,实现了对统计周期的合理划分,既能避免单次统计的数据量过大带来的内存溢出、系统崩溃等情况,又能避免单次统计的数据量过小导致的执行效率低的问题。图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communicationsinterface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;根据所述第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量;根据统计任务的单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期;根据所述单次统计的统计周期执行所述统计任务。需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为pc机,还可以为其他设备,只要其结构中包括如图4所示的处理器410、通信接口420、存储器430和通信总线440,其中处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信,且处理器410可以调用存储器430中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;根据所述第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量;根据统计任务的单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期;根据所述单次统计的统计周期执行所述统计任务。另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:根据多个系统性能指标中的每一个系统性能指标与平均统计数据量之间的相关程度确定第一系统性能指标;根据所述第一系统性能指标达到阈值时所对应的平均统计数据量,确定单次统计的数据量;根据统计任务的单位时间待统计数据量以及所述单次统计的数据量,确定单次统计的统计周期;根据所述单次统计的统计周期执行所述统计任务。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1