CN111291061A - 数据统计方法、装置和电子系统 - Google Patents
数据统计方法、装置和电子系统 Download PDFInfo
- Publication number
- CN111291061A CN111291061A CN202010050287.4A CN202010050287A CN111291061A CN 111291061 A CN111291061 A CN 111291061A CN 202010050287 A CN202010050287 A CN 202010050287A CN 111291061 A CN111291061 A CN 111291061A
- Authority
- CN
- China
- Prior art keywords
- time period
- counted
- data
- unit time
- array
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种数据统计方法、装置和电子系统,将时间划分为若干单位时间段,每个单位时间段对应有指定变量;当当前时间属于该单位时间段内时,该指定变量用于统计该单位时间段内收到的待统计数据量的总量;当当前时间不属于该单位时间段时,通过预设数组记录每个单位时间段内统计到的待统计数据量的总量;同时更新与待统计数据量相关联的指定统计量。该方式通过数组的方式存储数据,存储效率较高,同时在每个单位时间段结束后,更新与待统计数据量相关联的指定统计量,当需要获取相关统计量时,直接返回即可,无需再另行计算,从而节约了计算资源。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种数据统计方法、装置和电子系统。
背景技术
在很多场景和行业中,可能需要实时采集数据,并对采集到的数据进行统计,例如,统计单位时间内采集到的数据量,距离当前时间之前一段时间内采集到的数据量,以及数据的总量等等。相关技术中,可以采用多种方式统计并存储采集到的数据,例如,以队列的链表数据结构保存数据,队列中每个元素用于保存一个单位时间内采集到的数据量;这种方式由于使用链表数据结构存储数据,需要逐个节点存储数据,磁盘IO操作频繁,较为低效;另外,这种方式仅单一地保存了单位时间内采集到的数据量,如果需要统计更长时间段内的数据量,则需要进行再次统计计算,较为浪费计算资源。
发明内容
本发明的目的在于提供一种数据统计方法、装置和电子系统,以提高数据存储效率,节约计算资源。
第一方面,本发明实施例提供了一种数据统计方法,该方法包括:接收数据更新消息;数据更新消息包括待统计数据量;判断当前时间是否属于正在统计的单位时间段内;其中,单位时间段预设有指定变量;指定变量用于统计单位时间段内接收到的待统计数据量的第一总量;如果不属于,根据单位时间段对应的指定变量,更新预设数组以及与待统计数据量相关联的指定统计量;其中,预设数组包括多个元素,每个元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
进一步的,上述方法还包括:如果当前时间属于正在统计的单位时间段内,根据待统计数据量,更新正在统计的单位时间段对应的指定变量。
进一步的,判断当前时间是否属于正在统计的单位时间段内的步骤,包括:计算当前时间与正在统计的单位时间段的初始时间的时间差;如果时间差小于单位时间段的时间长度,确定当前时间属于正在统计的单位时间段内。
进一步的,根据单位时间段对应的指定变量,更新预设数组的步骤,包括:将单位时间段对应的指定变量的值,保存至预设数组的指定元素中。
进一步的,将单位时间段对应的指定变量的值,保存至预设数组的指定元素中的步骤,包括:计算当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差;根据第一时间段数量差,按照预设方向移动数组中的目标元素的值,以使数组尾部空余出的元素的数量与第一时间段数量差相匹配;将单位时间段对应的指定变量的值保存至空余出的元素中的指定元素中。
进一步的,按照预设方向移动数组中的目标元素的值的步骤,包括:将数组中,除前P个元素以外的元素确定为目标元素;其中,P等于第一时间段数量差;向数组中前P个元素所在的方向,移动目标元素的值,以覆盖前P个元素的值。
进一步的,将单位时间段对应的指定变量的值保存至空余出的元素中的指定元素中的步骤,包括:将单位时间段对应的指定变量的值保存至空余出的元素中的第一个元素中;如果第一时间段数量差大于一,将空余出的元素中,除第一个元素以外的元素的值置为零。
进一步的,与待统计数据量相关联的指定统计量包括:距离当前时间的预设时间段内的待统计数据量的第二总量、预设初始时间到当前时间之间的待统计数据量的第三总量、正在统计的单位时间段、和指定变量的值中的一种或多种。
进一步的,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤,包括:如果与待统计数据量相关联的指定统计量包括第二总量,判断当前时间与预设初始时间的时间差是否小于预设时间段;如果小于预设时间段,将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,得到第二总量的更新值;如果大于或等于预设时间段,将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,再减去数组中前M个元素的值,得到第二总量的更新值;其中,M等于当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差。
进一步的,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤,包括:如果与待统计数据量相关联的指定统计量包括第三总量,将第三总量的当前值与正在统计的单位时间段对应的指定变量的值相加,得到第三总量的更新值。
进一步的,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤,包括:如果与待统计数据量相关联的指定统计量包括正在统计的单位时间段,将正在统计的单位时间段,更新为当前时间所属的单位时间段;如果与待统计数据量相关联的指定统计量包括指定变量的值,将指定变量的值,更新为待统计数据量。
进一步的,更新预设数组以及与待统计数据量相关联的指定统计量的步骤之后,上述方法还包括:判断当前时间是否满足预设条件;如果满足预设条件,将数组中各个元素的值保存至预设文件中。
进一步的,上述预设条件包括:当前时间与数组中第一个元素的最后更新时间的时间差达到预设时长;或者,当前时间与预设初始时间的时间差,相对于K的取模为零;其中,K等于单位时间段的时间长度与数组中元素个数的乘积。
进一步的,更新预设数组以及与待统计数据量相关联的指定统计量的步骤之后,上述方法还包括:接收数据访问请求;其中,数据访问请求中携带有访问时间段;访问时间段包括开始时间和结束时间;如果结束时间属于正在统计的单位时间段,或者结束时间位于正在统计的单位时间段之后,计算结束时间所属的单位时间段与正在统计的单位时间段相隔的第二时间段数量差;根据第二时间段数量差,更新数组;根据开始时间,从更新后的数组中确定目标数据,返回目标数据。
第二方面,本发明实施例提供了一种数据统计装置,该装置包括:接收模块,用于接收数据更新消息;数据更新消息包括待统计数据量;判断模块,用于判断当前时间是否属于正在统计的单位时间段内;其中,单位时间段预设有指定变量;指定变量用于统计单位时间段内接收到的待统计数据量的第一总量;更新模块,用于如果不属于,根据单位时间段对应的指定变量,更新预设数组以及与待统计数据量相关联的指定统计量;其中,预设数组包括多个元素,每个元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
第三方面,本发明实施例提供了一种电子系统,该电子系统包括:处理设备和存储装置;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行如第一方面任一实施方式的数据统计方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行如第一方面任一实施方式的数据统计方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种数据统计方法、装置和电子系统,该方法中,将时间划分为若干单位时间段,每个单位时间段对应有指定变量;当当前时间属于该单位时间段内时,该指定变量用于统计该单位时间段内收到的待统计数据量的总量;当当前时间不属于该单位时间段时,通过预设数组记录每个单位时间段内统计到的待统计数据量的总量;同时更新与待统计数据量相关联的指定统计量。该方式通过数组的方式存储数据,存储效率较高,同时在每个单位时间段结束后,更新与待统计数据量相关联的指定统计量,当需要获取相关统计量时,直接返回即可,无需再另行计算,从而节约了计算资源。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种电子系统的结构示意图;
图2为本发明实施例提供的一种数据统计方法流程图;
图3为本发明实施例提供的另一种数据统计方法流程图;
图4为本发明实施例提供的一种更新预设数组的方法流程图;
图5为本发明实施例提供的一种数组元素移动的结构示意图;
图6为本发明实施例提供的一种更新指定统计量的方法流程图;
图7为本发明实施例提供的另一种更新指定统计量的方法流程图;
图8为本发明实施例提供的一种数据访问的方法流程图;
图9为本发明实施例提供的一种数据统计装置的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,数据统计常用的方法是,利用队列的链表数据结构保存数据,队列中每个元素用于保存一个单位时间内采集到的数据量,由于使用链表数据结构存储数据,需要逐个节点存储数据,磁盘IO操作频繁,较为低效;且该方式仅单一地保存了单位时间内采集到的数据量,如果需要统计更长时间段内的数据量,则需要进行再次统计计算,较为浪费计算资源。另一种方式中,可以利用循环数组保存数据,数组元素中保存的是总数据量,虽然统计效率较高,如果需要获取一个单位时间内采集的数据量,则需要重新计算,较为繁琐。另外,该方式在统计数据时,虽然是连续存储的方式,但是由于数组是循环使用的,当前时间统计的数据并不是在该数组的尾部,因此数组中元素数据在时间上不是连续的,不能保证数据的连续性,因此无法直接获取当前数据按照时间顺序绘制数据量曲线。
基于此,本发明实施例提供了一种数据统计方法、装置和电子系统,该技术可以应用在任何需要统计数据的场景中,如摄像机的抓拍数、公安机关的报警数、视频的帧数等。该技术可以采用关软件和硬件实现,下面通过实施例进行描述。
实施例一:
首先,参照图1来描述用于实现本发明实施例的数据统计方法、装置和电子系统的示例电子系统100。
如图1所示的一种电子系统的结构示意图,电子系统100包括一个或多个处理设备102、一个或多个存储装置104、输入装置106、输出装置108,另外可以包括一个或多个图像采集设备110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子系统100的组件和结构只是示例性的,而非限制性的,根据需要,电子系统也可以具有其他组件和结构。
处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对电子系统100中的其它组件的数据进行处理,还可以控制电子系统100中的其它组件以执行期望的功能。
存储装置104可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行程序指令,以实现下文的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如应用程序使用和/或产生的各种数据等。
输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或数据),并且可以包括显示器、扬声器等中的一个或多个。
图像采集设备110可以采集预览视频帧或图片数据(如待统计抓拍图片或待统计图片数据),并且将采集到的预览视频帧或图像数据存储在存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的数据统计方法、装置和电子系统的示例电子系统中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将图像采集设备110设置于可以采集到图片的指定位置。当上述电子系统中的各器件集成设置时,该电子系统可以被实现为诸如相机、智能手机、平板电脑、计算机、车载终端、摄像机等智能终端。
实施例二:
本实施例提供了一种数据统计方法,如图2所示,该方法包括如下步骤:
步骤S202,接收数据更新消息;该数据更新消息包括待统计数据量;
上述数据更新消息可以是由产生或者采集数据的设备自动发送的请求,其中可以包括待统计数据量,还可以包括待统计数据量的类型,以及采集到待统计数据量对应的数据的时间点等信息;上述待统计数据量的数据类型可以有多种,比如,人脸数、车辆数、设备数、帧数、信令数以及各种流量数据等。上述待统计数据量可以是指,接收到该数据更新消息后,需要统计的数据量,比如,摄像头每隔一定时间段发送一个数据更新消息,该数据更新消息中包括的待统计数据量为该摄像头在该时间段内的抓拍数量;再如,摄像头还可以每抓拍一次,就自动发送一个数据更新消息,此时,该数据更新消息中包括的待统计数据量为该次抓拍所得到的抓拍数量。
步骤S204,判断当前时间是否属于正在统计的单位时间段内;其中,该单位时间段预设有指定变量;该指定变量用于统计单位时间段内接收到的待统计数据量的第一总量;
上述单位时间段可以根据具体统计的数据特性设定,比如,可以设定为一秒或一分钟等。上述指定变量可以是针对正在统计的单位时间段设置的变量,该指定变量可以表示正在统计的单位时间段内已经收到的待统计数据量的总量,可以根据正在统计的单位时间段内接收到的待统计数据量,实时更新指定变量的值。单位时间段内接收到待统计数据量的次数可以是一次,也可以是多次,比如,在同一秒内接收到了两次数据更新消息,可以依次将两次数据更新消息包括的待统计数据量,累加至指定变量中,更新得到该一秒的单位时间段对应的指定变量的值。
上述第一总量即单位时间段内接收到的一个或多个待统计数据量的总数据量,该总数据量可以利用指定变量进行统计;如果当前时间属于正在统计的单位时间段内,则单位时间段对应的指定变量的值,可以表示从正在统计的单位时间段的开始时间截止到当前时间,该单位时间段内接收到的待统计数据量的总量;如果当前时间不属于正在统计的单位时间段内,说明正在统计的单位时间段已经统计结束,则单位时间段对应的指定变量的值,可以表示单位时间段内接收到的待统计数据量的总量,即上述第一总量。
具体的,上述判断步骤的执行,可以是在接收到数据更新消息时进行的,当接收到数据更新消息时,判断当前时间是否属于正在统计的单位时间段内,并执行与判断结果相应的统计操作。
步骤S206,如果不属于,根据单位时间段对应的指定变量,更新预设数组以及与待统计数据量相关联的指定统计量;其中,预设数组包括多个元素,每个元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
上述预设数组包括的多个元素的数量,可以根据具体需求设定。多个元素可以按照串联的方式设置于数组中,由于每个元素可以存储一个单位时间段内接收到的待统计数据量的第一总量,因此可以按照单位时间的时长设定数组中元素的数量,比如,若单位时间为一秒,可以设置元素个数为3600,表示该数组可以存储一个小时的数据量。上述与待统计数据量相关联的指定统计量可以根据实际的统计需求设置,该指定统计量可以包括多种不同维度下的统计量,例如,与时间相关联的统计量、与上述第一总量相关联的统计量、与统计时间段相关联的统计量等。
具体的,上述更新预设数组可以是,根据正在统计的单位时间段与当前时间段的数量差值,以及正在统计的单位时间段对应的指定变量值,通过移动数组元素的方式,更新预设数组中对应元素的值。上述更新与待统计数据量相关联的指定统计量可以是,首先判断上述指定统计量包括的指定统计量的类型,根据不同的指定统计量,按照不同的方式进行更新。例如,与时间相关联的指定统计量,可以在接收到数据统计请求时,利用当前时间所属的单位时间段,通过直接赋值的方式,更新与时间相关联的指定统计量;与第一总量相关联的指定统计量,可以利用正在统计的单位时间段对应的指定变量值,通过直接赋值的方式,更新与第一总量相关联的指定统计量;与统计时间段相关联的指定统计量,可以根据需要统计的时间段、待统计数据量和数组中所保存的数据量,通过累加的方式,更新与统计时间段相关联的指定统计量。
本发明实施例提供了一种数据统计方法,该方法中,将时间划分为若干单位时间段,每个单位时间段对应有指定变量;当当前时间属于该单位时间段内时,该指定变量用于统计该单位时间段内收到的待统计数据量的总量;当当前时间不属于该单位时间段时,通过预设数组记录每个单位时间段内统计到的待统计数据量的总量;同时更新与待统计数据量相关联的指定统计量。该方式通过数组的方式存储数据,存储效率较高,同时在每个单位时间段结束后,更新与待统计数据量相关联的指定统计量,当需要获取相关统计量时,直接返回即可,无需再另行计算,从而节约了计算资源。
进一步的,上述方法还包括:如果当前时间属于正在统计的单位时间段内,根据待统计数据量,更新正在统计的单位时间段对应的指定变量。
举例说明,当前时间是12:00:11.500,正在统计的单位时间段是12:00:11.000-12:00:11.999一秒的时间,这种情况表示当前时间属于正在统计的单位时间段内;具体的,可以理解为在该单位时间段内,第500ms时接收到了数据更新消息包括的待统计数据量,将该待统计数据量与该单位时间段对应的指定变量的当前值相加,得到更新后的该单位时间段对应的指定变量的值。其中指定变量的当前值可以是零,也可以不是零,不是零的情况下,说明在正在统计的单位时间段内,前500ms的时间里,接收到过待统计数据量,该单位时间段对应的指定变量的值已经进行过更新。
进一步的,上述判断当前时间是否属于正在统计的单位时间段内的步骤,包括:计算当前时间与正在统计的单位时间段的初始时间的时间差;如果时间差小于单位时间段的时间长度,确定当前时间属于正在统计的单位时间段内。
举例说明,当前时间是12:00:11.017,正在统计的单位时间段是12:00:11.000至12:00:11.999,表示单位时间段的时间长度为1000ms,此时,正在统计的单位时间段的初始时间为12:00:11.000;计算当前时间与正在统计的单位时间段的初始时间的时间差,即12:00:11.017-12:00:11.000=17毫秒;单位时间段的时间长度为1000毫秒,时间差为17毫秒,由于17毫秒小于1000毫秒,可以确定当前时间属于正在统计的单位时间段内。
实施例三:
本实施例提供了另一种数据统计方法,该方法在上述实施例的基础上实现。本实施例重点描述如果当前时间不属于正在统计的单位时间段内,将单位时间段对应的指定变量的值,保存至预设数组的指定元素中的步骤的具体实现过程(通过步骤S306实现)。如图3所示,该方法包括如下步骤:
步骤S302,接收数据更新消息;该数据更新消息包括待统计数据量;
步骤S304,判断当前时间是否属于正在统计的单位时间段内;其中,该单位时间段预设有指定变量;指定变量用于统计单位时间段内接收到的待统计数据量的第一总量;
步骤S306,如果不属于,将单位时间段对应的指定变量的值,保存至预设数组的指定元素中。
举例说明,当前时间是12:00:12.017,正在统计的单位时间段是12:00:11.000至12:00:11.999,计算当前时间与正在统计的单位时间段的初始时间的时间差,12:00:12.017-12:00:11.000=1017ms,时间差1017ms大于单位时间段的时间长度1000ms,可以确定当前时间不属于正在统计的单位时间段内。具体的,如果当前时间不属于正在统计的单位时间段内,说明正在统计的单位时间段内的接收到的待统计数据量已经完全更新至该单位时间对应的指定变量中,只需将该指定变量的值,保存至预设数组尾部的指定元素中,该指定元素可以是预设数组尾部的最后一个元素,也可以是预设数组尾部最后多个元素中的第一个元素。
进一步的,参见图4所示的更新预设数组的方法流程图,将单位时间段对应的指定变量的值,保存至预设数组的指定元素中的具体过程,如图4所示,该方法包括如下步骤:
步骤401,计算当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差;
举例说明,当前时间是00:00:12.017,其所属的单位时间段是00:00:12.000至00:00:12.999,正在统计的单位时间段是00:00:11.000至00:00:11.999,计算上述两个单位时间段的差值为一,则第一时间段数量差为一。
另一种示例,当前时间是00:00:12.017,其所属的单位时间段是00:00:12.000至00:00:12.999,正在统计的单位时间段是00:00:09.000至00:00:09.999,计算上述两个单位时间段的差值为三,则第一时间段数量差为三。
步骤S402,根据第一时间段数量差,按照预设方向移动数组中的目标元素的值,以使数组尾部空余出的元素的数量与第一时间段数量差相匹配;
上述预设方向可以按照预设数组中元素串联的方向设定,比如,数组中元素横向串联设置,其预设方向可以是左也可以是右。本实施例以预设方向向左为例进行描述,首先,在初始状态下,可以将数组中元素的值初始化设置为0,也可以初始化设置为空值。假设上述第一时间段数量差为一,当数组中元素的值初始化设置为0时,在保存第一个单位时间段对应的第一总量时,按照预设方向移动数组中的目标元素的值,以使数组尾部空余出一个元素,该空余出的元素用于填入第一个单位时间段对应的第一总量。当数组中元素的值初始化为空值时,在保存第一个单位时间段对应的第一总量时,可以直接将该第一总量填入至数组的最后一个元素中,后续再填入其他单位时间段对应的第一总量时,再根据第一时间段数量差,按照预设方向移动数组中的目标元素的值。
具体的,若单位时间段为一秒且第一时间段数量差为一,说明当前时间正好是正在统计的单位时间段的之后一秒,为了保证数组中每个元素对应的时间段与每个单位时间段相对应,且每个元素对应的时间段在时间上连续,可以将数组中元素的值向左移动一个元素的位置,这时数组尾部就会空余出一个元素,该空余出的元素对应的单位时间段表示上述正在统计的单位时间段;
若单位时间段为一秒且第一时间段数量差为三,说明当前时间正好是正在统计的单位时间的之后三秒,其中正在统计的单位时间段与当前时间所属的单位时间段之间的两个单位时间段内都没有收到数据更新消息,也可以理解为这两个单位时间段内都没有产生待统计数据量,因此为了保证数组中每个元素对应的时间段与每个单位时间段相对应,且每个元素对应的时间段在时间上连续,可以将数组中元素的值向左移动三个元素的位置,这时数组尾部就会空余出三个元素,该三个空余出的元素依次对应当前时间所述的单位时间段之前的三个单位时间段,其中在空余出的三个元素中第一个元素对应正在统计的单位时间段,最后两个元素依次对应正在统计的单位时间段之后的两个单位时间段。
由上述的描述可知,只有当前时间不属于正在统计的单位时间段时,才会将正在统计的单位时间段内待统计数据量的第一总量保存至数组中的元素中,因此,在当前时间向数据保存的第一总量,是当前时间所述的单位时间段之前的单位时间段的第一总量。例如,正在统计的时间段为11-12秒,当前时间为12.5秒,此时需要将11-12秒内待统计数据量的第一总量保存至数组的元素中。
针对上述按照预设方向移动数组中的目标元素的值的步骤,具体包括:将数组中,除前P个元素以外的元素确定为目标元素;其中,P等于第一时间段数量差;向数组中前P个元素所在的方向,移动目标元素的值,以覆盖前P个元素的值。
举例说明,参见图5所示的数组元素移动的结构示意图,图中的方块表示元素,比如,如图5(a)所示,若P为一,将除第一个元素以外的元素确定为目标元素,图中用阴影方块表示目标元素,向第一个元素所在的方向移动目标元素中的值,直到第一个元素的值被目标元素中第一个元素的值覆盖,最后数组尾部会空余出一个元素;如图5(b)所示,若P大于一,比如等于三,将除前三个元素以外的元素确定为目标元素,图中用阴影方块表示目标元素,向前三个元素所在的方向移动目标元素中的值,直到前三个元素中的值被目标元素中前三个元素中的值覆盖,最后数组尾部会空余出三个元素。
步骤S403,将单位时间段对应的指定变量的值保存至空余出的元素中的指定元素中。
上述空余出的元素中的指定元素可以是数组尾部的最后一个元素,也可以是数组尾部多个空余元素的第一个元素。具体地,当空余出的元素为一个时,将单位时间段对应的指定变量的值,保存至数组尾部的最后一个元素中;当空余出的元素为多个时,将单位时间段对应的指定变量的值,保存至数组尾部多个空余出的元素的第一个元素中。
进一步的,将单位时间段对应的指定变量的值保存至空值元素中的指定元素中的步骤,包括:将单位时间段对应的指定变量的值保存至空余出的元素中的第一个元素中;如果第一时间段数量差大于一,将空余出的元素中,除第一个元素以外的元素的值置为零。
举例说明,参见图5所示的数组元素移动的结构示意图,如图5(a)所示,若P为一,可以直接将单位时间段对应的指定变量的值“2”,保存至数组尾部的一个空余的元素中;如图5(b)所示,如果P大于一,比如P为三,将单位时间段对应的指定变量的值保存至数组尾部的第一个空余元素中,将第一个空余元素之后的两个元素的值保存为零,第一个空余元素保存正在统计的单位时间段内指定变量的值“3”。
具体举例说明,图5(b)所示的数组元素移动的结构示意图中数据统计的具体过程,如果图5(b)中第一个数组的最后一个元素保存的是10-11秒内待统计数据量的第一总量“1”,该第一总量是在11-12秒内接收到数据更新消息后保存至数组的,此时正在统计的单位时间段为11-12秒;当在14-15秒时再次接收到数据更新消息,14-15秒与11-12秒相差三个单位时间段(分别为12-13秒、13-14秒和14-15秒),需要将数组中的目标元素的值向左移动三个元素,数组尾部最后空余出三个元素;此时三个空余元素从左至右,依次对应的时间是11-12秒、12-13秒和13-14秒,因此,将11-12秒、12-13秒和13-14秒内待统计数据量的第一总量,对应填入三个空余的元素中;此时正在统计的单位时间段为14-15秒,该单位时间段内接收到的待统计数据量,统计至指定变量中,不予保存至数组。
步骤S308,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量。
上述方法中,通过计算第一时间段数量差,将单位时间段对应的指定变量的值,按照时间顺序保存至预设数组的指定元素中,保证了统计数据在时间上的连续性,以方便后续对于该数据的访问。
实施例四:
本实施例提供了另一种数据统计方法,该方法在上述实施例的基础上实现。上述与待统计数据量相关联的指定统计量包括:距离当前时间的预设时间段内的待统计数据量的第二总量、预设初始时间到当前时间之间的待统计数据量的第三总量、正在统计的单位时间段、和指定变量的值中的一种或多种。
上述预设时间段可以根据预设数组中元素的数量以及单位时间段的时间长度确定;上述第二总量可以是,当前数组中与预设时间段对应的元素所保存的总数据量;上述预设初始时间可以是该数据统计方法开始执行时的当前时间,上述第三总量可以是,从预设初始时间至当前时间,相隔时间段内保存的总数据量,包括当前数组中已经保存的数据量,还可以包括之前数组已经保存完成的数据量;上述正在统计的单位时间段,可以是接收到数据更新消息时的当前时间所属的单位时间段,也可以是当前时间所属的单位时间段之前的一个单位时间段;上述指定变量的值,可以是正在统计的单位时间段内接收到的待统计数据量的总量。
在上述描述的基础上,参见图6所示的一种更新指定统计量的方法流程图,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤的具体实现过程。如图6所示,该方法包括如下步骤:
步骤S601,如果与待统计数据量相关联的指定统计量包括第二总量,判断当前时间与预设初始时间的时间差是否小于预设时间段;
上述预设时间段可以根据预设数组对应的时间长度设置,可以设置预设时间段的时间长度等于预设数组对应的时间长度,也可以短于预设数组对应的时间长度。该预设时间段可以是指距离当前时间之前的一个预设时间段;例如,当前时间为12:01,预设时间段为一小时,则预设时间段具体可以是11:00-12:00的一小时。
步骤S602,如果小于预设时间段,将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,得到第二总量的更新值;
从初始时间到当前时间的时长小于预设时间段,说明统计的总时长还没有达到上述预设时间段,此时,第二总量的当前值,为预设初始时间到当前时间内统计的每个单位时间段的第一总量的和。上述正在统计的单位时间段对应的指定变量的值为当前时间之前的一个单位时间段对应的第一总量,因此可以直接利用第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加的方式,更新第二总量的值,以方便直接获取预设时间段内统计的数据量。
步骤S603,如果大于或等于预设时间段,将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,再减去数组中前M个元素的值,得到第二总量的更新值;其中,M等于当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差。
如果大于或等于预设时间段,说明统计的总时长已经大于上述预设时间段。由于时间在更新,距离当前时间的预设时间段内包含的单位时间段也要更新,此时,在第二总量的当前值基础上,增加正在统计的单位时间段对应的指定变量的值,删除第二总量的当前值对应的单位时间段中,距离当前时间最远的一个或多个单位时间段对应的第一总量。
例如,假设数组包含的多个元素对应的各个单位时间段的总长度,与预设时间段相同,则该数组中保存的是距离当前时间最近的预设时间段内各个单位时间段对应的第一总量,该数组中所有元素中保存的第一总量的和,为第二总量的当前值。当需要保存正在统计的单位时间段对应的指定变量的值至数组之前,可以在第二总量的当前值的基础上,增加正在统计的单位时间段对应的指定变量的值,再减去该数组中前一个或多个(即上述M的取值)元素中保存的第一总量。
上述第二总量的当前值可以是,当前数组中所有元素的和,其中当前数组不包含正在统计的单位时间段对应的指定变量的值。为了保证更新后的第二总量与预设时间段对应的第二总量相对应,可以先将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,由于相加后的数据量对应的时间段超过了预设时间段,其中超过的时间段与第一时间段数量差相对应,因此可以减去数组中前M个元素的值,得到第二总量的更新值。
进一步的,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤,包括:如果与待统计数据量相关联的指定统计量包括第三总量,将第三总量的当前值与正在统计的单位时间段对应的指定变量相加,得到第三总量的更新值。
上述第三总量的当前值可以是,从初始预设时间开始到当前时间之间已经更新统计完成的数组中元素的值以及正在更新统计的数组中元素的值的总和,其中正在更新统计的当前数组不包含正在统计的单位时间段对应的指定变量的值,其属于当前时间之前一个单位时间段对应的总数据量,此时还没有将其进行统计;为了保证更新后的第三总量包含对应时间段的数据量,可以在接收到数据更新消息时,将第三总量的当前值与正在统计的单位时间段对应的指定变量相加,得到第三总量的更新值。
需要说明的是,考虑到第二总量和第三总量的更新均涉及到正在统计的单位时间段,所以需要先更新预设时间段内的待统计数据量的第二总量,以及预设初始时间到所述当前时间之间的待统计数据量的第三总量,最后再更新正在统计的单位时间段和所述指定变量的值。基于此,参见图7所示的另一种更新指定统计量的方法流程图,再更新完成前述的第二总量和第三总量后,根据单位时间段对应的指定变量,更新与待统计数据量相关联的指定统计量的步骤的具体实现过程。如图7所示,该方法包括如下步骤:
步骤S701,如果与待统计数据量相关联的指定统计量包括正在统计的单位时间段,将正在统计的单位时间段,更新为当前时间所属的单位时间段;
接收到待统计数据量时,如果当前时间不属于正在统计的单位时间段内,说明正在统计的单位时间段内的待统计数据量已经统计完成,需要将正在统计的单位时间段更新为当前时间所属的单位时间段,用于统计当前接收到待统计数据量。以单位时间段为一秒为例,设置正在统计的单位时间段为第11秒,当在第12秒接收到数据更新消息时,首先将第11秒内对应指定变量的值统计至数组中,同时将正在统计的单位时间段设置为第12秒;具体的,举例说明,接收到统计请求时,首先获取当前时间为12:00:11:017,当前时间所属的单位时间段为12:00:11:000至12:00:11:999,此时正在统计的单位时间段为12:00:09.000至12:00:09.999,由于这两个单位时间段不同,可以将正在统计的单位时间段更新为12:00:11:000至12:00:11:999,以统计该时间段内的接收到的待统计数据量。
步骤S702,如果与待统计数据量相关联的指定统计量包括指定变量的值,将指定变量的值,更新为待统计数据量。
接收到待统计数据量时,如果当前时间不属于正在统计的单位时间段,此时指定变量的值是正在统计的单位时间段内待统计数据量的第一总量,由于上述步骤S701将正在统计的单位时间段,已经更新为当前时间所属的单位时间段,因此需要将更新后的正在统计的单位时间段对应的指定变量的值,更新为该单位时间段接收到的待统计数据量。
另外,更新预设数组以及与待统计数据量相关联的指定统计量的步骤之后,上述方法还包括:判断当前时间是否满足预设条件;如果满足预设条件,将数组中各个元素的值保存至预设文件中。
上述预设条件可以是根据当前时间以及数组的最新更新时间设定的,以使数组中各个元素的值能够实时的进行持久化保存。上述预设文件可以是用于保存数据的数据库。具体的,当前时间满足预设条件后,可以将当前数组中各个元素的值持久化保存在预设文件中,该预设文件可以用于获取历史数据,该历史数据可以通过相应控件,进行数据统计并实时绘制曲线图,方便实时观察统计的数据量。
上述预设条件包括:当前时间与数组中第一个元素的最后更新时间的时间差达到预设时长;或者,当前时间与预设初始时间的时间差,相对于K的取模为零;其中,K等于单位时间段的时间长度与数组中元素个数的乘积。
上述预设时长可以是数组对应的时间长度,可以设置预设时长为一小时。具体的,上述当前时间与数组中第一个元素的最后更新时间的时间差,表示的是当前数组中所有元素的值对应的总时间长度,当该时间长度达到预设时长即为满足预设条件。需要说明的是,K可以与前述的预设时间段相同,但不限定于预设时间段;当单位时间段的时间长度与数组中元素个数变化时,可能与预设时间段不同。
以单位时间为一秒为例,数组中元素个数为3600,当前时间与预设初始时间的时间差为3600秒时,K=1×3600,上述取模可以表示为3600mod3600,首先计算其整数商为1,其次计算3600mod3600=3600-1×3600=0。当前时间与预设初始时间的时间差为7200秒时,上述取模可以表示为7200mod3600,首先计算其整数商为2,其次计算7200mod3600=7200-2×3600=0。因此上述取模为零可以是指,每隔一小时将数组中的数据量进行持久化保存,以方便获取历史数据进行曲线绘制,实时观察统计的数据量。
进一步的,更新预设数组以及与待统计数据量相关联的指定统计量的步骤之后,本实施例还提供了一种数据访问方法,如图8所示,该方法包括如下步骤:
步骤S802,接收到数据访问请求;其中,该数据访问请求中携带有访问时间段;访问时间段包括开始时间和结束时间;
上述数据访问请求可以包括,访问的开始时间和结束时间,可以用于判断数据访问请求需要访问的数据;该数据可以包括当前数组中的数据,也可以包括已经统计完成的历史数据。在获取到需要访问的数据后,通常可以将获取到的数据传送至控件,该控件可以用于统计数据,进行实时绘制,方便观察实时统计的数据量。另外,为了保证返回的访问数据的实时性,以及数据的完整性,可以先判断结束时间与正在统计的单位时间段的前后关系。
步骤S804,如果结束时间属于正在统计的单位时间段,或者结束时间位于正在统计的单位时间之后,计算结束时间所属的单位时间段与正在统计的单位时间段相隔的第二时间段数量差;根据第二时间段数量差,更新数组;
如果结束时间属于正在统计的单位时间段,或者结束时间位于正在统计的单位时间之后,说明数据访问请求包含的数据还没有统计完成,需要更新数组;具体的,可以根据前述更新数组的方法,首先计算结束时间所属的单位时间段与正在统计的单位时间段相隔的第二时间段数量差,根据第二时间段数量差,将正在统计的单位时间段内待统计数据量的第一总量,保存至当前数组。
步骤S806,根据开始时间,从更新后的数组中确定目标数据,返回该目标数据。
如果结束时间位于正在统计的单位时间段之前,说明数据访问请求中想要统计的时间段的数据已经统计完成;若结束时间不属于当前正在统计的数组对应的时间内,说明数据访问请求中想要统计的时间段的数据已经持久化保存至预设文件中,可以直接通过数据提取的方式,在预设文件中获取访问数据;若结束时间在当前正在统计的数组对应的时间内,则可以根据开始时间,判断数据访问请求想要统计的数据,是否包括预设文件中的数据;当开始时间在当前正在统计的数组对应的时间内,可以直接将当前数组中与访问时间对应的数据返回;当开始时间不属于当前正在统计的数组对应的时间内,说明访问请求想要统计的数据不仅包括预设文件中的数据,还包括当前数组中的数据,需要同时将这两种数据返回。需要说明的是,返回的数据,包括对应时间段内的总数据量,以及对应时间段内每个单位时间段内的数据量。
另外,需要说明的是,为了保证获取数据的实时性,在正常情况下,每秒都会收到数据更新消息,此时数组中的元素按数据更新消息主动移动指定元素值,访问相关数据时,可直接返回数组中元素值即可,其中返回的数据包括近预设时间内每一秒的数据量和预设时间内的总数据量;当超过指定时间段没有接收到数据更新消息时,此时若直接返回数组数据,数组中就没有这段时间的统计数据量,会影响获取数据的实时性,其中,指定时间段可以根据实际的应用场景设置,可以是几秒钟,也可以是一个小时等。因此,当接收到数据访问请求时,首先计算接收到数据访问请求的当前时间所属的单位时间段与正在统计的单位时间段的数量差,可以通过设置待统计数据量为零,强制移动指定元素,以使数组尾部的空值元素的个数与该数量差相等,将数组尾部空余出的元素保存为零,此时返回更新后的数组数据,可以使获取到的数据具有实时性。
上述方式中,通过判断当前时间与预设初始时间的时间差是否小于预设时间段,利用累加或者移动累加的方式,更新第二总量的值;根据接收到的待统计数据量直接与第三总量的当前值相加,更新第三总量的值;根据当前时间和正在统计的单位时间,利用直接赋值的当时更新正在统计的单位时间段、指定变量的值;最后通过持久化的方式,将统计完成的当前数组的数据按照时间顺序存储于预设文件中;使得上层应用需要获取不同时间段的统计数据时,能够不需要额外的计算直接返回对应的数据,从而对获取到的数据进行显示,无需进行其他转换,提高了数据统计的效率和精度,同时节省了计算资源。
进一步的,本实施例提供了一种具体的实施方式,一种关于统计人脸抓拍数量的数据统计方法,例如,统计某个平台连续一小时抓拍的人脸图像数量,其中单位时间设置为一秒,输出近一个小时的按每秒为单位的抓拍个数,将其用于运维管理界面并实时预览统计曲线,同时通过给定某个历史时间获取历史抓拍数量用于统计显示。
首先,设置一个大小N=3600的滑动窗口,该滑动窗口对应上述的预设数组,该滑动窗口中设置有3600个窗格,该窗格对应上述的元素,该窗格中可以保存一秒时间段内抓拍的数据量;上述滑动窗口中的窗格以从左至右的次序依次排列,从左开始第一个窗格为1,按照该次序最后一个窗格最大为3600。设置每个窗格对应的变量名为a,比如,第一个窗格内保存的数据量,表示为a[1],第m个窗格内保存的数据量,表示为a[m]。
然后,在该方法中设置多个变量,包括:变量x,表示一次数据更新消息时,包含的抓拍个数,对应上述待统计数据量,通常该抓拍个数为1,如果为0,表示近几秒没有抓拍到人脸图像;变量c,表示当前一秒的抓拍数,对应上述单位时间段预设的指定变量;变量h,表示近一小时的抓拍个数,对应上述的第二总量;变量t,表示系统启动后总的抓拍个数,对应上述第三总量;变量sb,表示系统初始运行时间对应的秒数,对应上述预设初始时间,可以用于计算当前时间对应的秒数与初始运行时间对应的秒数的时间差,判断滑动窗口是否已经被完全更新一次,然后持久化保存该窗口的数据;变量sl,表示上一次接收到请求时的秒数,对应上述正在统计的单位时间段;变量sc,表示当前时间所属的单位时间段。
本实施例具体的工作流程:
步骤S1:将上述所有变量的初始值设置为零,同时设置滑动窗口的值也为零;
步骤S2:获取系统当前时间对应的秒数并赋值给sb,且令sl=sb;
步骤S3:当接收到抓拍消息通知时,也就是接收到数据统计请求时,首先获取系统当前时间对应的秒数,并将该值赋值给变量sc,比较sc与sl的值是否相等,若相等即为同一秒,此时只需将变量c(即sl单位时间段对应的指定变量)的值加上变量x的值,其中变量x的值表示接收到抓拍消息通知时包括的抓拍个数;
步骤S4:如果sc-sl=1,表示sc恰好是sl的下一秒,则需要更新h和t的值,并且需要窗格向左滑动一格,可以由以下式子表示该更新过程:
h=h-a[1]+c;该式子表示变量h的更新,窗格向左滑动一格即表示当前变量h的值减去滑动窗口移出的第一个窗格的值,同时需要将sl对应的抓拍个数值保存至滑动窗口的尾部,即当前变量加上当前变量c的值;
t=t+c;该式表示变量t的更新,可直接在当前变量h的值上直接加上变量c的值;
上述窗口滑动的方法,也可以理解为数组中所有元素向左移动一个窗格,其中第一个窗格中的值被自动覆盖,在C/C++语言中可以用memmove()函数直接实现,其它开发语言也可以使用类似的方法函数实现;同时将最后一个窗格元素赋值为c,即表示为a[N]=c;同时需要将变量sl的值更新为变当前变量sc的值,即表示为sl=sc。
步骤S5,如果sc-sl>1,表示中间有至少两秒的时间没有抓拍图像,可以设置sc-sl的差值为m,同时需要更新h和t的值,并且需要将窗格向左滑动m格,可以由以下式子表示该更新过程:
h=h-a[1]-a[2]-…-a[m]+c;该式子表示变量h的更新,窗格向左滑动m格,即表示当前变量h的值减去滑动窗口移出的前m个窗格值,同时需要将sl对应的抓拍个数值保存至滑动窗口尾部的m个窗格的第一个窗格中;
t=t+c;该式表示变量t的更新,可直接在当前变量t的值上直接与变量c的值相加;
上述窗口滑动m个格的方法,与上述步骤S4中窗口滑动一个格的方法类似,不同的是滑动后窗口尾部的m个窗格,除第一个窗格外,其他的窗格需要用0填充;同时将第一个窗格赋值为c,即表示为a[N-m-1]=c;同样将变量sl的值设为当前变量sc的值,即表示为sl=sc。
步骤S6:在上述步骤执行的过程中,需要实时的利用求模的方式,判断当前时间的秒数是否达到持久化条件,该持久化条件表示,滑动窗口中的窗格每次被完全更新一次,则将当前窗口内的数据保存到持久化文件中,其持久化条件的计算公式为:(sc-sb)%N=0。
在上述步骤执行过程的同时,该系统平台可以随时接收外部访问请求,当外部访问请求为,获取一小时抓拍数及总抓拍数时,可以由系统直接通过变量值返回。该返回值包括的一小时抓拍数据可以用于绘制统计曲线,并通过运维管理界面实时预览统计曲线。当外部访问请求为,获取历史数据时,可以通过请求的时间段,直接从持久化文件中获取对应的统计数据即可;该数据可以发送至相应控件,用于统计曲线绘制。
另外,需要特别说明的是,在正常情况下,每秒都会有抓拍数,因此每秒都会接收到统计数据请求。这种情况下,窗口按照请求主动滑动对应数量的窗格,当调用者获取数据时,可以直接返回滑动窗口中窗格的数据;但是当连续几秒或连续一小段的时间内,都没有收到请求通知时,此时若直接返回窗口数据,数组中没有包括这段时间的抓拍数,会影响获取数据的实时性,这显然是不合适的。因此可以通过设置消息通知包括的抓拍数为零,即x=0,强制推动窗口滑动,即执行一次步骤S3至S6,以使数组尾部的空值元素的个数与第二时间段数量差相等,将数组尾部的空值元素保存为零,返回更新后的数组数据,以使获取到的数据具有实时性。
实施例五:
对应于上述方法实施例,参见图9所示的一种数据统计装置的结构示意图,该装置包括:
接收模块91,用于接收数据更新消息;数据更新消息包括待统计数据量;
判断模块92,用于判断当前时间是否属于正在统计的单位时间段内;其中,单位时间段预设有指定变量;指定变量用于统计单位时间段内接收到的待统计数据量的第一总量;
更新模块93,用于如果不属于,根据单位时间段对应的指定变量,更新预设数组以及与待统计数据量相关联的指定统计量;其中,预设数组包括多个元素,每个元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
进一步的,上述装置还用于:如果当前时间属于正在统计的单位时间段内,根据待统计数据量,更新正在统计的单位时间段对应的指定变量。
进一步的,上述判断模块用于,计算当前时间与正在统计的单位时间段的初始时间的时间差;如果时间差小于单位时间段的时间长度,确定当前时间属于正在统计的单位时间段内。
进一步的,上述更新模块用于,将单位时间段对应的指定变量的值,保存至预设数组的指定元素中。
进一步的,上述更新模块用于,计算当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差;根据第一时间段数量差,按照预设方向移动数组中的目标元素的值,以使数组尾部空余出的元素的数量与第一时间段数量差相匹配;将单位时间段对应的指定变量的值保存至空余出的元素中的指定元素中。
进一步的,上述更新模块用于,将数组中,除前P个元素以外的元素确定为目标元素;其中,P等于第一时间段数量差;向数组中前P个元素所在的方向,移动目标元素的值,以覆盖前P个元素的值。
进一步的,上述更新模块用于,将单位时间段对应的指定变量的值保存至空余出的元素中的第一个元素中;如果第一时间段数量差大于一,将空余出的元素中,除第一个元素以外的元素的值置为零。
进一步的,上述与待统计数据量相关联的指定统计量包括:距离当前时间的预设时间段内的待统计数据量的第二总量、预设初始时间到当前时间之间的待统计数据量的第三总量、正在统计的单位时间段、和指定变量的值中的一种或多种。
进一步的,上述更新模块用于,如果与待统计数据量相关联的指定统计量包括第二总量,判断当前时间与预设初始时间的时间差是否小于预设时间段;如果小于预设时间段,将第二总量的当前值与待统计数据量相加,得到第二总量的更新值;如果大于或等于预设时间段,将第二总量的当前值与正在统计的单位时间段对应的指定变量的值相加,再减去数组中前M个元素的值,得到第二总量的更新值;其中,M等于当前时间所属的单位时间段与正在统计的单位时间段相隔的第一时间段数量差。
进一步的,上述更新模块用于,如果与待统计数据量相关联的指定统计量包括第三总量,将第三总量的当前值与正在统计的单位时间段对应的指定变量的值相加,得到第三总量的更新值。
进一步的,上述更新模块用于,如果与待统计数据量相关联的指定统计量包括正在统计的单位时间段,将正在统计的单位时间段,更新为当前时间所属的单位时间段;如果与待统计数据量相关联的指定统计量包括指定变量的值,将指定变量的值,更新为待统计数据量。
进一步的,上述装置还用于:判断当前时间是否满足预设条件;如果满足预设条件,将数组中各个元素的值保存至预设文件中。
进一步的,上述预设条件包括:当前时间与数组中第一个元素的最后更新时间的时间差达到预设时长;或者,当前时间与预设初始时间的时间差,相对于K的取模为零;其中,K等于单位时间段的时间长度与数组中元素个数的乘积。
进一步的,上述装置还用于:接收数据访问请求;其中,数据访问请求中携带有访问时间段;访问时间段包括开始时间和结束时间;如果结束时间属于正在统计的单位时间段,或者结束时间位于正在统计的单位时间段之后,计算结束时间所属的单位时间段与正在统计的单位时间段相隔的第二时间段数量差;根据第二时间段数量差,更新数组;根据开始时间,从更新后的数组中确定目标数据,返回目标数据。
本发明实施例提供的一种数据统计装置,该装置中,当接收到的单位时间段的待统计数据量时,首先判断当前时间是否属于正在统计的单位时间段内,如果不属于,按时间顺序依次将单位时间段对应的指定变量存储至预设数组中,预设数组包括多个元素,每个元素用于存储一个单位时间段对应的指定变量的值,同时根据该指定变量更新与待统计数据量相关联的指定统计量。该方式中,随着时间的不断递增,预设数组通过累加的方式统计数据量,能够统计较长时间的数据量,可以直接将统计的数据进行存储,当获取该数据时,可以直接进行返回操作,没有多余的计算过程,保证了时间的连续性,节约了计算资源,进而提高了数据统计的效率和精度。
实施例六:
本发明实施例提供了一种电子系统,该电子系统包括:图像采集设备、处理设备和存储装置;图像采集设备,用于获取预览视频帧或图像数据;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行如上述数据统计方法,或者上述数据统计方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行如上述数据统计方法,或者上数据统计方法的步骤。
本发明实施例所提供的数据统计方法、装置和电子系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (17)
1.一种数据统计方法,其特征在于,所述方法包括:
接收数据更新消息;所述数据更新消息包括待统计数据量;
判断当前时间是否属于正在统计的单位时间段内;其中,所述单位时间段预设有指定变量;所述指定变量用于统计所述单位时间段内接收到的待统计数据量的第一总量;
如果不属于,根据所述单位时间段对应的所述指定变量,更新预设数组以及与所述待统计数据量相关联的指定统计量;其中,所述预设数组包括多个元素,每个所述元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述当前时间属于正在统计的单位时间段内,根据所述待统计数据量,更新所述正在统计的单位时间段对应的指定变量。
3.根据权利要求1所述的方法,其特征在于,判断当前时间是否属于正在统计的单位时间段内的步骤,包括:
计算当前时间与正在统计的单位时间段的初始时间的时间差;
如果所述时间差小于所述单位时间段的时间长度,确定所述当前时间属于正在统计的单位时间段内。
4.根据权利要求1所述的方法,其特征在于,根据所述单位时间段对应的所述指定变量,更新预设数组的步骤,包括:将所述单位时间段对应的所述指定变量的值,保存至预设数组的指定元素中。
5.根据权利要求4所述的方法,其特征在于,将所述单位时间段对应的所述指定变量的值,保存至预设数组的指定元素中的步骤,包括:
计算当前时间所属的单位时间段与所述正在统计的单位时间段相隔的第一时间段数量差;
根据所述第一时间段数量差,按照预设方向移动所述数组中的目标元素的值,以使所述数组尾部空余出的元素的数量与所述第一时间段数量差相匹配;
将所述单位时间段对应的所述指定变量的值保存至所述空余出的元素中的指定元素中。
6.根据权利要求5所述的方法,其特征在于,按照预设方向移动所述数组中的目标元素的值的步骤,包括:
将所述数组中,除前P个元素以外的元素确定为目标元素;其中,P等于所述第一时间段数量差;
向所述数组中所述前P个元素所在的方向,移动所述目标元素的值,以覆盖所述前P个元素的值。
7.根据权利要求5所述的方法,其特征在于,将所述单位时间段对应的所述指定变量的值保存至所述空余出的元素中的指定元素中的步骤,包括:
将所述单位时间段对应的所述指定变量的值保存至所述空余出的元素中的第一个元素中;
如果所述第一时间段数量差大于一,将所述空余出的元素中,除所述第一个元素以外的元素的值置为零。
8.根据权利要求1所述的方法,其特征在于,所述与所述待统计数据量相关联的指定统计量包括:
距离当前时间的预设时间段内的待统计数据量的第二总量、预设初始时间到所述当前时间之间的待统计数据量的第三总量、所述正在统计的单位时间段、和所述指定变量的值中的一种或多种。
9.根据权利要求8所述的方法,其特征在于,根据所述单位时间段对应的所述指定变量,更新与所述待统计数据量相关联的指定统计量的步骤,包括:
如果与所述待统计数据量相关联的指定统计量包括所述第二总量,判断所述当前时间与预设初始时间的时间差是否小于所述预设时间段;
如果小于所述预设时间段,将所述第二总量的当前值与所述正在统计的单位时间段对应的指定变量的值相加,得到所述第二总量的更新值;
如果大于或等于所述预设时间段,将所述第二总量的当前值与所述正在统计的单位时间段对应的指定变量的值相加,再减去所述数组中前M个元素的值,得到所述第二总量的更新值;其中,M等于当前时间所属的单位时间段与所述正在统计的单位时间段相隔的第一时间段数量差。
10.根据权利要求8所述的方法,其特征在于,根据所述单位时间段对应的所述指定变量,更新与所述待统计数据量相关联的指定统计量的步骤,包括:
如果与所述待统计数据量相关联的指定统计量包括所述第三总量,将所述第三总量的当前值与所述正在统计的单位时间段对应的指定变量的值相加,得到所述第三总量的更新值。
11.根据权利要求8所述的方法,其特征在于,根据所述单位时间段对应的所述指定变量,更新与所述待统计数据量相关联的指定统计量的步骤,包括:
如果与所述待统计数据量相关联的指定统计量还包括所述正在统计的单位时间段,将所述正在统计的单位时间段,更新为所述当前时间所属的单位时间段;
如果与所述待统计数据量相关联的指定统计量包括所述指定变量的值,将所述指定变量的值,更新为所述待统计数据量。
12.根据权利要求1所述的方法,其特征在于,更新预设数组以及与所述待统计数据量相关联的指定统计量的步骤之后,所述方法还包括:
判断当前时间是否满足预设条件;
如果满足所述预设条件,将所述数组中各个元素的值保存至预设文件中。
13.根据权利要求12所述的方法,其特征在于,所述预设条件包括:当前时间与所述数组中第一个元素的最后更新时间的时间差达到预设时长;
或者,当前时间与预设初始时间的时间差,相对于K的取模为零;其中,K等于所述单位时间段的时间长度与所述数组中元素个数的乘积。
14.根据权利要求1所述的方法,其特征在于,更新预设数组以及与所述待统计数据量相关联的指定统计量的步骤之后,所述方法还包括:
接收数据访问请求;其中,所述数据访问请求中携带有访问时间段;所述访问时间段包括开始时间和结束时间;
如果所述结束时间属于所述正在统计的单位时间段,或者所述结束时间位于所述正在统计的单位时间段之后,计算所述结束时间所属的单位时间段与所述正在统计的单位时间段相隔的第二时间段数量差;
根据所述第二时间段数量差,更新所述数组;
根据所述开始时间,从更新后的所述数组中确定目标数据,返回所述目标数据。
15.一种数据统计装置,其特征在于,所述装置包括:
接收模块,用于接收数据更新消息;所述数据更新消息包括待统计数据量;
判断模块,用于判断当前时间是否属于正在统计的单位时间段内;其中,所述单位时间段预设有指定变量;所述指定变量用于统计所述单位时间段内接收到的待统计数据量的第一总量;
更新模块,用于如果不属于,根据所述单位时间段对应的所述指定变量,更新预设数组以及与所述待统计数据量相关联的指定统计量;其中,所述预设数组包括多个元素,每个所述元素用于存储一个单位时间段内接收到的待统计数据量的第一总量。
16.一种电子系统,其特征在于,所述电子系统包括:处理设备和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理设备运行时执行如权利要求1至14任一项所述的数据统计方法。
17.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理设备运行时执行如权利要求1至14任一项所述的数据统计方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050287.4A CN111291061B (zh) | 2020-01-16 | 2020-01-16 | 数据统计方法、装置和电子系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050287.4A CN111291061B (zh) | 2020-01-16 | 2020-01-16 | 数据统计方法、装置和电子系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291061A true CN111291061A (zh) | 2020-06-16 |
CN111291061B CN111291061B (zh) | 2023-06-13 |
Family
ID=71021181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010050287.4A Active CN111291061B (zh) | 2020-01-16 | 2020-01-16 | 数据统计方法、装置和电子系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291061B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380479A (zh) * | 2020-11-24 | 2021-02-19 | 上海悦易网络信息技术有限公司 | 一种用于数据统计的方法与设备 |
CN115147954A (zh) * | 2022-06-23 | 2022-10-04 | 重庆长安汽车股份有限公司 | 车辆的数据存储方法、装置、车辆及介质 |
CN115269593A (zh) * | 2022-07-20 | 2022-11-01 | 清云智通(北京)科技有限公司 | 一种工业数据采集存储方法、装置及系统 |
CN115547508A (zh) * | 2022-11-29 | 2022-12-30 | 联仁健康医疗大数据科技股份有限公司 | 数据校正方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016176055A1 (en) * | 2015-04-30 | 2016-11-03 | Alibaba Group Holding Limited | Method and system of monitoring a service object |
US20160323169A1 (en) * | 2015-04-30 | 2016-11-03 | Alibaba Group Holding Limited | Method and system of monitoring a service object |
CN106156480A (zh) * | 2015-07-01 | 2016-11-23 | 安徽华米信息科技有限公司 | 一种数据统计方法及装置 |
WO2017028628A1 (zh) * | 2015-08-19 | 2017-02-23 | 中兴通讯股份有限公司 | 一种终端内设备功耗数据获取的方法及装置 |
CN110019367A (zh) * | 2017-12-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种统计数据特征的方法和装置 |
-
2020
- 2020-01-16 CN CN202010050287.4A patent/CN111291061B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016176055A1 (en) * | 2015-04-30 | 2016-11-03 | Alibaba Group Holding Limited | Method and system of monitoring a service object |
US20160323169A1 (en) * | 2015-04-30 | 2016-11-03 | Alibaba Group Holding Limited | Method and system of monitoring a service object |
CN106156480A (zh) * | 2015-07-01 | 2016-11-23 | 安徽华米信息科技有限公司 | 一种数据统计方法及装置 |
WO2017028628A1 (zh) * | 2015-08-19 | 2017-02-23 | 中兴通讯股份有限公司 | 一种终端内设备功耗数据获取的方法及装置 |
CN110019367A (zh) * | 2017-12-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种统计数据特征的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380479A (zh) * | 2020-11-24 | 2021-02-19 | 上海悦易网络信息技术有限公司 | 一种用于数据统计的方法与设备 |
CN115147954A (zh) * | 2022-06-23 | 2022-10-04 | 重庆长安汽车股份有限公司 | 车辆的数据存储方法、装置、车辆及介质 |
CN115269593A (zh) * | 2022-07-20 | 2022-11-01 | 清云智通(北京)科技有限公司 | 一种工业数据采集存储方法、装置及系统 |
CN115547508A (zh) * | 2022-11-29 | 2022-12-30 | 联仁健康医疗大数据科技股份有限公司 | 数据校正方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111291061B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291061A (zh) | 数据统计方法、装置和电子系统 | |
CN111405222B (zh) | 视频告警方法、视频告警系统及告警图片的获取方法 | |
CN112446395B (zh) | 网络摄像机、视频监控系统及方法 | |
CN111142942B (zh) | 窗口数据的处理方法、装置、服务器及存储介质 | |
CN110610610B (zh) | 一种车辆出入管理方法、装置以及存储介质 | |
CN111382334B (zh) | 一种数据处理方法、装置、计算机以及可读存储介质 | |
CN114241338A (zh) | 基于影像识别的建筑物测量方法、装置、设备及存储介质 | |
CN110543410A (zh) | 一种处理集群指标的方法、查询集群指标的方法和装置 | |
CN113360094A (zh) | 数据预测方法和装置、电子设备及存储介质 | |
CN111078588A (zh) | 垃圾回收方法、装置、设备及存储介质 | |
CN115422203A (zh) | 区块链分布式系统的数据管理方法、装置、设备及介质 | |
CN112291625B (zh) | 信息质量处理方法、装置、电子设备及存储介质 | |
CN109101646B (zh) | 数据处理方法、装置、系统及计算机可读介质 | |
CN110933361B (zh) | 一种轮巡显示方法及装置 | |
CN112363940A (zh) | 一种数据处理方法、装置、存储介质及服务器 | |
CN111369794B (zh) | 交通参与信息的确定方法、装置、设备及存储介质 | |
CN111008611A (zh) | 排队时长的确定方法及装置、存储介质、电子装置 | |
CN112115382A (zh) | 数据处理方法及装置、存储介质、电子装置 | |
CN111654673A (zh) | 视频封面的更新方法、装置及存储介质 | |
CN117998049A (zh) | 释放存储空间的方法、装置、计算机设备及存储介质 | |
CN110753206B (zh) | 客流统计方法及装置、摄像机 | |
CN110442552B (zh) | 完整度的计算方法及系统 | |
CN116320466A (zh) | 视频编码方法、装置、设备、存储介质及自动驾驶车辆 | |
CN116701468A (zh) | 一种问题数据的追踪方法、装置、设备和存储介质 | |
CN117234716A (zh) | 一种基于ai预加载的图形服务处理系统 |
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 |