CN106598494A - 数据统计方法和装置 - Google Patents

数据统计方法和装置 Download PDF

Info

Publication number
CN106598494A
CN106598494A CN201611104981.XA CN201611104981A CN106598494A CN 106598494 A CN106598494 A CN 106598494A CN 201611104981 A CN201611104981 A CN 201611104981A CN 106598494 A CN106598494 A CN 106598494A
Authority
CN
China
Prior art keywords
data
packet
targeted packets
target
counted
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
Application number
CN201611104981.XA
Other languages
English (en)
Other versions
CN106598494B (zh
Inventor
金恒展
李冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201611104981.XA priority Critical patent/CN106598494B/zh
Publication of CN106598494A publication Critical patent/CN106598494A/zh
Application granted granted Critical
Publication of CN106598494B publication Critical patent/CN106598494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种数据统计方法和装置,该数据统计方法包括获取待统计数据集合;对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件;获取至少一次分组的分组次数,并从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据;根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据;以及将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据。通过本发明能够在存储空间有限的情况下,保证数据统计的准确性。

Description

数据统计方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据统计方法和装置。
背景技术
随着互联网技术的发展,网络安全报表的功能主要是统计过去一段时间内某些事件(例如,系统信息、流量、安全、防病毒、攻击、应用和用户等)发生的情况,并把这些数据以某些规则(例如,排序、筛选等),按照一定方式(例如,图标)体现给使用者,供其对网络的安全情况进行判断,进而做出下一步的决策。例如,管理员关注过去一个月内防火墙发现病毒数最多或攻击次数最多的前10个IP地址,从而对这10个IP地址对应的设备进行更进一步的检测,以消除网络隐患。
然而,对于这些需要统计的数据类型、可以追溯的事件期限(即最长可以记录的时间)、数据体现形态、配置方式等,面临的问题是:如何存储源数据。为了对一些数据进行排名,报表需要统计一段时间内某些事件的发生的频度,比如为了统计1个月内被安全设备识别出攻击次数最多的前30个IP地址,安全设备就需要记录一个月内所有发生过攻击行为的IP地址及每个IP地址对应的攻击次数,到达统计期限的时候进行排序,统计出前30个。这样数据存储的规模就取决于IP地址的多少以及攻击的类型多少,当该安全设备部署在拓扑较复杂且流量较大的位置时,需要统计的数据就会很多。
由于以上描述的只是统计一种类型的事件,而实际的产品,根据产品的定位,需要统计几十甚至上百种事件,这就需要非常大的存储空间,对于一些小存储的设备,或是一些由于其他功能已经占用了大量存储空间(例如,系统日志)的设备来说,无法实现报表要求的数据统计功能。
因此,想要准确的统计一些事件就得记录事件每次发生的信息,这样会造成存储空间占用过大,而如果对于事件进行采样,舍弃一些数据,减少存储空间,但会牺牲数据统计的准确性,最好的做法是在统计的准确性和存储空间之间做好折中,在存储空间能接受的范围内,尽量保证数据的准确性。但目前在统计的准确性和存储空间之间做折中的方法并没有统一的标准。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种数据统计方法,能够在存储空间有限的情况下,保证数据统计的准确性。
本发明的另一个目的在于提出一种数据统计装置。
为达到上述目的,本发明第一方面实施例提出的数据统计方法,包括:获取待统计数据集合;对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件;获取所述至少一次分组的分组次数,并从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据;根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据;以及将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据。
在本发明的一个实施例中,所述对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,包括:
将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组;
判断在所述第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数;
在大于所述目标条数时,将所述每个第一目标分组中的数据按照条数平均进行第二次分组,得到与所述每个第一目标分组对应的预设个数的第二目标分组;
当在所述至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对所述目标分组中的数据进行分组;
将当前分组后的多个分组中每个分组作为所述目标分组,得到多个目标分组。
在本发明的一个实施例中,在所述从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据之前,还包括:
根据所述分组次数和所述用户预设的目标统计数计算所述第一预设条数,其中,所述第一预设条数为所述目标统计数的倍数。
在本发明的一个实施例中,所述根据所述分组次数对所述每个目标分组的目标数据进行合并处理,包括:
将所述分组次数作为目标次数;
对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与所述每个上级目标分组对应的上级目标数据;
逐级对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
在本发明的一个实施例中,所述对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与所述每个上级目标分组对应的上级目标数据,包括:
从所述属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与所述每个上级目标分组对应的上级目标数据,其中,所述第一预设条数为所述第二预设条数的倍数。
在本发明的一个实施例中,还包括:
采用Count-min Sketch数据结构从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
在本发明的一个实施例中,所述目标条数为所述待统计数据集合的存储载体所能存储的条数上限值。
本发明第一方面实施例提出的数据统计方法,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,获取所述至少一次分组的分组次数,并从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
为达到上述目的,本发明第二方面实施例提出的数据统计装置,包括:第一获取模块,用于获取待统计数据集合;分组模块,用于对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件;第二获取模块,用于获取所述至少一次分组的分组次数;统计模块,用于从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据;第一处理模块,用于根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据;以及第二处理模块,用于将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据。
在本发明的一个实施例中,所述分组模块包括:
第一分组子模块,用于将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组;
判断子模块,用于判断在所述第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数;
第二分组子模块,用于在大于所述目标条数时,将所述每个第一目标分组中的数据按照条数平均进行第二次分组,得到与所述每个第一目标分组对应的预设个数的第二目标分组;
停止子模块,用于当在所述至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对所述目标分组中的数据进行分组;
第一处理子模块,用于将当前分组后的多个分组中每个分组作为所述目标分组,得到多个目标分组。
在本发明的一个实施例中,还包括:
计算模块,用于根据所述分组次数和所述用户预设的目标统计数计算所述第一预设条数,其中,所述第一预设条数为所述目标统计数的倍数。
在本发明的一个实施例中,所述第一处理模块包括:
第二处理子模块,用于将所述分组次数作为目标次数;
第三处理子模块,用于对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与所述每个上级目标分组对应的上级目标数据;
第四处理子模块,用于逐级对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
在本发明的一个实施例中,所述第三处理子模块具体用于:
从所述属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与所述每个上级目标分组对应的上级目标数据,其中,所述第一预设条数为所述第二预设条数的倍数。
在本发明的一个实施例中,所述统计模块具体用于:
采用Count-min Sketch数据结构从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
在本发明的一个实施例中,所述目标条数为所述待统计数据集合的存储载体所能存储的条数上限值。
本发明第二方面实施例提出的数据统计装置,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,获取所述至少一次分组的分组次数,并从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的数据统计方法的流程示意图;
图2是本发明另一实施例提出的数据统计方法的流程示意图;
图3是本发明实施例中分组树示意图;
图4是本发明另一实施例提出的数据统计方法的流程示意图;
图5是本发明实施例中Count-min Sketch数据结构示意图;
图6是本发明实施例中采用Count-min Sketch数据结构统计Top(K)的算法流程示意图;
图7是本发明一实施例提出的数据统计装置的结构示意图;
图8是本发明另一实施例提出的数据统计装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的数据统计方法的流程示意图。
参见图1,该数据统计方法包括:
S11:获取待统计数据集合。
由于相关技术中,待统计数据集合的存储需要非常大的存储空间,对于一些小存储的设备,或是一些由于其他功能已经占用了大量存储空间(例如,系统日志)的设备来说,无法实现报表要求的数据统计功能。
而本发明的实施例中,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,获取至少一次分组的分组次数,并从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
在本发明的实施例中,待统计数据集合为需要对其进行统计的数据的集合。
可选地,若一个有n条数据的数据流为s1,s2,…,sn,且si∈{o1,o2,…,ol},i∈{1,2,…,n},则待统计数据集合为{o1,o2,…,ol},其中,l为待统计数据集合中的数据的条数。
S12:对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件。
在本发明的实施例中,可以将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组;判断在第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数;在大于目标条数时,将每个第一目标分组中的数据按照条数平均进行第二次分组,得到与每个第一目标分组对应的预设个数的第二目标分组;当在至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对目标分组中的数据进行分组;将当前分组后的多个分组中每个分组作为目标分组,得到多个目标分组。
一些实施例中,参见图2,步骤S12具体包括:
S21:将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组。
在本发明的实施例中,预设个数为预先设置的,例如为m个。
可选地,第一次分组,即将待统计数据集合内的n条数据平均分为m组,得到m组第一目标分组。
S22:判断在第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数。
在本发明的实施例中,目标条数为待统计数据集合的存储载体所能存储的条数上限值,例如,可以将目标条数标记为γ,γ为统计粒度。
可选地,在第一次分组后,待统计数据集合内的n条数据被平均分为m组,每个第一目标分组中的数据的条数为n/m,令f'=n/m。判断在第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数,即判断f'是否小于或者等于γ,在f'≤γ时,表明分组后的每个第一目标分组中的数据的条数在待统计数据集合的存储载体所能存储的条数的范围之内,此时,可以停止对目标分组中的数据进行分组;在f'>γ时,表明分组后的每个第一目标分组中的数据的条数不在待统计数据集合的存储载体所能存储的条数的范围之内,此时,可以对每个第一目标分组中的数据按照条数平均进行第二次分组。
S23:在大于目标条数时,将每个第一目标分组中的数据按照条数平均进行第二次分组,得到与每个第一目标分组对应的预设个数的第二目标分组。
可选地,在每个第一目标分组中的数据的条数大于目标条数时,即在f'>γ时,表明分组后的每个第一目标分组中的数据的条数不在待统计数据集合的存储载体所能存储的条数的范围之内,此时,可以对每个第一目标分组中的数据按照条数平均进行第二次分组,即将每个第一目标分组中的f'条数据平均分为m组,得到与每个第一目标分组对应的m组第二目标分组。
可知,每个第二目标分组中的数据的条数为f'/m,令f''=f'/m。
S24:当在至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对目标分组中的数据进行分组。
可选地,如果步骤S23中得到f''大于目标条数γ时,即f''>γ,还可以对每个第二目标分组中的数据按照条数平均进行第三次分组,直到每个目标分组中的数据的条数小于或者等于目标条数时,停止对目标分组中的数据进行分组。
S25:将当前分组后的多个分组中每个分组作为目标分组,得到多个目标分组。
作为一种示例,参见图3,图3为本发明实施例中分组树示意图,对待统计数据集合内的多条数据进行至少一次分组,形成的树状结构称为分组树,例如,图3中的最终分组数的层数为t层,则进行了t-1次分组,在t-1次分组后,每个目标分组中的数据的条数f(”…')(t-1个)小于或者等于目标条数γ,得到了t-1个目标分组。
本实施例中,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,能够缩小待统计数据集合所需的存储空间。
S13:获取至少一次分组的分组次数。
例如,参见图3,分组次数为t-1次。
S14:从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
在本发明的实施例中,第一预设条数为根据分组次数和用户预设的目标统计数计算得到的,其中,第一预设条数为目标统计数的倍数。
在本发明的实施例中,目标统计数由用户预先设置的,例如标记为K。
在本发明的实施例中,可以采用Count-min Sketch数据结构从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,其具体过程参见S16。
可选地,参见图3,分组树第一层的目标数据为K条,第二层为2K条,第三层为4K条,…,则第t层为2t-1K条,即,第一目标分组中的目标数据为排序在前的2K条数据,第二目标分组中的目标数据为排序在前的4K条数据,…,第t-1目标分组中的目标数据为排序在前的2t-1K条数据。
S15:根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
在本发明的实施例中,可以将分组次数作为目标次数;对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与每个上级目标分组对应的上级目标数据;逐级对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
一些实施例中,参见图4,步骤S15具体包括:
S41:将分组次数作为目标次数。
例如,参见图3,分组次数为t-1次,即目标次数为t-1次。
S42:对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与每个上级目标分组对应的上级目标数据。
在本发明的实施例中,可以从属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与每个上级目标分组对应的上级目标数据,其中,第一预设条数为第二预设条数的倍数。
可选地,由于第一目标分组中的目标数据为排序在前的2K条数据,第二目标分组中的目标数据为排序在前的4K条数据,…,第t-1目标分组中的目标数据为排序在前的2t-1K条数据,则从属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与每个上级目标分组对应的上级目标数据,即从第t-1目标分组中统计出排序在前的2t-2K条数据并作为与第t-2目标分组对应的目标数据,从第t-2目标分组中统计出排序在前的2t-3K条数据并作为与第t-3目标分组对应的目标数据,…,从第2目标分组中统计出排序在前的2K条数据并作为与第1目标分组对应的目标数据,从第1目标分组中统计出排序在前的K条数据并作为与待统计数据集合对应的目标统计数的数据。
S43:逐级对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
具体地,对待统计数据集合内的多条数据进行至少一次分组是自上而下进行的,而合并的过程则是自下而上进行的,参见图3,分组树最后一层的目标数据为统计频率排序在前的2t-1K条数据及其出现频率,其中,叶子节点的频率排名统计可以利用粒度统计算法进行统计,将分组树最后一层的所有兄弟叶子节点记录合并统计出排序在前的2t-2K条数据及其出现频率,并记录到其父节点上,由于K、t,以及m的值都不是很大,可以用最小堆排序完成子节点数据频率排名,同理,合并第t-1层的父亲节点及父亲节点的兄弟节点的记录统计出排名前2t-3K的数据及其频率,并记录在其父亲节点的父亲节点上,逐级对每个目标分组的目标数据进行合并处理,合并子节点的过程直到统计到根节点,即统计到待统计数据集合内的频率排名前K的数据及频率,则结束统计过程。
本实施例中,通过对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与每个上级目标分组对应的上级目标数据,逐级对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,能够缩小待统计数据集合所需的存储空间,且保证数据统计的准确性。
S16:将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据。
可选地,将步骤S43经过合并处理后的数据,即逐级对每个目标分组的目标数据进行合并处理,最后从第1目标分组中统计出排序在前的K条数据并作为与待统计数据集合统计出的条数为用户预设的目标统计数的数据,即统计出排序Top(K)的数据作为与待统计数据集合统计出的条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
可选地,由本发明的实施例可知,空间复杂度为:
O(m+2Km+…+2t-1Km)+sapce(γ)=O((2t-1)Km+space(γ);
其中,space(γ)表示统计γ条数据项的Top(K)问题所需的空间复杂度,例如,可以用插入排序算法统计γ条数据的Top(K)问题空间复杂度为O(γ),所以插入排序算法的space(γ)=O(γ),在大数据流的条件下,利用分组和合并处理解决Top(K)问题,虽然降低了统计的准确性,但是大大降低了空间复杂度,分组树的父节点统计的准确性依赖于子节点统计,在合并处理过程中子节点的统计排名条目数是父节点的2倍,通过足够大的基数保证统计的准确性。
在分组和合并处理过程中,若统计粒度γ太小,则分组树的树节点变多,所需的存储空间也变大,同时合并次数多了,数据统计的准确性也随之降低,因此统计粒度γ在能承受的存储代价范围内应尽可能的大,这样所需消耗的存储空间较小,准确性较高,达到一定存储空间能够获得较大的统计粒度γ的目的。
为了能用一定存储空间获得较大的统计粒度γ的目的,粒度统计算法借助Count-min Sketch数据结构结合堆排序对统计粒度γ进行统计,Count-min Sketch虽然有一定的错误率,但是能极大的降低空间复杂度,而且错误率是可控的。
具体地,定义h1,h2…,hw为相互独立的哈希函数,将任意的字符串x映射为{1,2,…,b},参见图5,图5为本发明实施例中Count-min Sketch数据结构示意图,Count-minSketch数据结构构造一个w×b的矩阵计算器C,支持两个操作:插入和查询,插入操作是将数据q记录到矩阵计算器C中,将矩阵计算器C的i行hi(q)列的计数加1,其中i∈{1,2,…,w},查询操作是获取数据q的出现频率,且出现频率为i行hi(q)列的计数集合中计数最小的。
对于给定的数据流q1,q2…,qn,其中,qi∈{o1,o2,…,ol},i∈{1,2,…,n},采用Count-min Sketch数据结构结合堆排序算法,对给定的数据流,统计其排序在前K条的数据(即Top(K)),参见图6,图6为本发明实施例中采用Count-min Sketch数据结构统计Top(K)的算法流程示意图,CMSA(C,q)表示将数据q插入到矩阵计数器C中,CMSQ(C,q)在矩阵计数器C中查询数据q出现的频率,H为数据频率的最小堆,Top(H)表示获取最小堆H中顶元素(即堆H中最小频率),Pop(H)表示将最小堆H中顶元素出堆,Push(H,C,q)表示将数据q对应的频率CMSQ(C,q)压入最小堆H中,Rebuild(H)表示重建最小堆H,Len(H))表示获取最小堆H的元素个数,Has(H,q)表示如果对象q在最小堆H返回True,否则返回False,Update(H,C,q)表示更新最小堆H中数据q的频率为CMSQ(C,q)。
当b=e/ε,w=ln(1/δ)时,采用Count-min Sketch数据结构统计数据q的频率为数据q的真实频率为f(q),有可知,可以通过空间参数来控制错误率。
本实施例中,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,获取至少一次分组的分组次数,并从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
图7是本发明一实施例提出的数据统计装置的结构示意图。
参见图7,该数据统计装置700包括:第一获取模块710、分组模块720、第二获取模块730、统计模块740、第一处理模块750,以及第二处理模块760。其中,
第一获取模块710,用于获取待统计数据集合;
分组模块720,用于对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件。
第二获取模块730,用于获取至少一次分组的分组次数。
统计模块740,用于从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
第一处理模块750,用于根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
第二处理模块760,用于将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据。
一些实施例中,参见图8,该数据统计装置700包括:
可选地,分组模块720包括:
第一分组子模块721,用于将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组。
判断子模块722,用于判断在第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数。
可选地,目标条数为待统计数据集合的存储载体所能存储的条数上限值。
第二分组子模块723,用于在大于目标条数时,将每个第一目标分组中的数据按照条数平均进行第二次分组,得到与每个第一目标分组对应的预设个数的第二目标分组。
停止子模块724,用于当在至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对目标分组中的数据进行分组。
第一处理子模块725,用于将当前分组后的多个分组中每个分组作为目标分组,得到多个目标分组。
计算模块770,用于根据分组次数和用户预设的目标统计数计算第一预设条数,其中,第一预设条数为目标统计数的倍数。
可选地,第一处理模块750包括:
第二处理子模块751,用于将分组次数作为目标次数。
第三处理子模块752,用于对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与每个上级目标分组对应的上级目标数据。
可选地,第三处理子模块752具体用于:
从属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与每个上级目标分组对应的上级目标数据,其中,第一预设条数为第二预设条数的倍数。
第四处理子模块753,用于逐级对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
可选地,统计模块740具体用于:
采用Count-min Sketch数据结构从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
需要说明的是,前述图1-图6实施例中对数据统计方法实施例的解释说明也适用于该数据统计装置700,其实现原理类似,此处不再赘述。
本实施例中,通过对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,获取至少一次分组的分组次数,并从每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据,根据分组次数对每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据,将合并处理后的目标数据作为从待统计数据集合中统计出的条数为用户预设的目标统计数的数据,能够在存储空间有限的情况下,保证数据统计的准确性。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种数据统计方法,其特征在于,包括以下步骤:
获取待统计数据集合;
对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件;
获取所述至少一次分组的分组次数,并从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据;
根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据;以及
将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据。
2.如权利要求1所述的数据统计方法,其特征在于,所述对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,包括:
将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组;
判断在所述第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数;
在大于所述目标条数时,将所述每个第一目标分组中的数据按照条数平均进行第二次分组,得到与所述每个第一目标分组对应的预设个数的第二目标分组;
当在所述至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对所述目标分组中的数据进行分组;
将当前分组后的多个分组中每个分组作为所述目标分组,得到多个目标分组。
3.如权利要求1所述的数据统计方法,其特征在于,在所述从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据之前,还包括:
根据所述分组次数和所述用户预设的目标统计数计算所述第一预设条数,其中,所述第一预设条数为所述目标统计数的倍数。
4.如权利要求1所述的数据统计方法,其特征在于,所述根据所述分组次数对所述每个目标分组的目标数据进行合并处理,包括:
将所述分组次数作为目标次数;
对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与所述每个上级目标分组对应的上级目标数据;
逐级对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据。
5.如权利要求4所述的数据统计方法,其特征在于,所述对属于同一个上级目标分组的多个目标分组的目标数据进行合并处理,得到与所述每个上级目标分组对应的上级目标数据,包括:
从所述属于同一个上级目标分组的多个目标分组的目标数据统计出排序在前的第二预设条数的数据并作为与所述每个上级目标分组对应的上级目标数据,其中,所述第一预设条数为所述第二预设条数的倍数。
6.如权利要求1-5任一项所述的数据统计方法,其特征在于,还包括:
采用Count-min Sketch数据结构从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据。
7.如权利要求1所述的数据统计方法,其特征在于,所述目标条数为所述待统计数据集合的存储载体所能存储的条数上限值。
8.一种数据统计装置,其特征在于,包括:
第一获取模块,用于获取待统计数据集合;
分组模块,用于对待统计数据集合内的多条数据进行至少一次分组,得到多个目标分组,其中,每个目标分组中的数据的条数满足预设条件;
第二获取模块,用于获取所述至少一次分组的分组次数;
统计模块,用于从所述每个目标分组中统计出排序在前的第一预设条数的数据作为目标数据;
第一处理模块,用于根据所述分组次数对所述每个目标分组的目标数据进行合并处理,得到合并处理后的目标数据;以及
第二处理模块,用于将合并处理后的目标数据作为从所述待统计数据集合中统计出的所述条数为用户预设的目标统计数的数据。
9.如权利要求8所述的数据统计装置,其特征在于,所述分组模块包括:
第一分组子模块,用于将待统计数据集合内的多条数据按照条数平均进行第一次分组,得到预设个数的第一目标分组;
判断子模块,用于判断在所述第一次分组后,每个第一目标分组中的数据的条数是否小于或者等于目标条数;
第二分组子模块,用于在大于所述目标条数时,将所述每个第一目标分组中的数据按照条数平均进行第二次分组,得到与所述每个第一目标分组对应的预设个数的第二目标分组;
停止子模块,用于当在所述至少一次分组后,每个目标分组中的数据的条数小于或者等于目标条数时,停止对所述目标分组中的数据进行分组;
第一处理子模块,用于将当前分组后的多个分组中每个分组作为所述目标分组,得到多个目标分组。
10.如权利要求8所述的数据统计装置,其特征在于,还包括:
计算模块,用于根据所述分组次数和所述用户预设的目标统计数计算所述第一预设条数,其中,所述第一预设条数为所述目标统计数的倍数。
CN201611104981.XA 2016-12-05 2016-12-05 数据统计方法和装置 Active CN106598494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611104981.XA CN106598494B (zh) 2016-12-05 2016-12-05 数据统计方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611104981.XA CN106598494B (zh) 2016-12-05 2016-12-05 数据统计方法和装置

Publications (2)

Publication Number Publication Date
CN106598494A true CN106598494A (zh) 2017-04-26
CN106598494B CN106598494B (zh) 2022-07-29

Family

ID=58594950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611104981.XA Active CN106598494B (zh) 2016-12-05 2016-12-05 数据统计方法和装置

Country Status (1)

Country Link
CN (1) CN106598494B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344119A (zh) * 2018-10-24 2019-02-15 北京奇虎科技有限公司 文件合并处理方法、装置、计算设备及计算机存储介质
CN111198900A (zh) * 2019-12-31 2020-05-26 成都烽创科技有限公司 工业控制网络的数据缓存方法、装置、终端设备及介质
WO2020192291A1 (zh) * 2019-03-26 2020-10-01 阿里巴巴集团控股有限公司 一种生成统计信息的方法、系统以及电子设备
WO2021258512A1 (zh) * 2020-06-22 2021-12-30 中科驭数(北京)科技有限公司 数据的聚合处理装置、方法和存储介质
CN115983935A (zh) * 2022-12-05 2023-04-18 北京白驹易行科技有限公司 一种订单数据的统计方法、装置、计算机设备及存储介质
CN116881338A (zh) * 2023-09-07 2023-10-13 北京傲星科技有限公司 基于大模型的数据流的数据挖掘方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059115A1 (en) * 2006-09-01 2008-03-06 Leland Wilkinson System and method for computing analytics on structured data
CN102479247A (zh) * 2010-11-29 2012-05-30 财团法人工业技术研究院 数据分群方法与装置、数据处理装置及图像处理装置
CN103258049A (zh) * 2013-05-27 2013-08-21 重庆邮电大学 一种基于海量数据的关联规则挖掘方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及系统
CN103812685A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 同时在线统计系统及统计方法
CN104679773A (zh) * 2013-11-29 2015-06-03 中国科学院深圳先进技术研究院 海量交易数据中频繁项目集的挖掘方法及查询方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059115A1 (en) * 2006-09-01 2008-03-06 Leland Wilkinson System and method for computing analytics on structured data
CN102479247A (zh) * 2010-11-29 2012-05-30 财团法人工业技术研究院 数据分群方法与装置、数据处理装置及图像处理装置
CN103812685A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 同时在线统计系统及统计方法
CN103258049A (zh) * 2013-05-27 2013-08-21 重庆邮电大学 一种基于海量数据的关联规则挖掘方法
CN103544259A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 分组聚集排序TopK查询处理方法及系统
CN104679773A (zh) * 2013-11-29 2015-06-03 中国科学院深圳先进技术研究院 海量交易数据中频繁项目集的挖掘方法及查询方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344119A (zh) * 2018-10-24 2019-02-15 北京奇虎科技有限公司 文件合并处理方法、装置、计算设备及计算机存储介质
CN109344119B (zh) * 2018-10-24 2023-04-28 三六零科技集团有限公司 文件合并处理方法、装置、计算设备及计算机存储介质
WO2020192291A1 (zh) * 2019-03-26 2020-10-01 阿里巴巴集团控股有限公司 一种生成统计信息的方法、系统以及电子设备
US11249990B2 (en) 2019-03-26 2022-02-15 Beijing Oceanbase Technology Co., Ltd. Database management method and system, and electronic device
CN111198900A (zh) * 2019-12-31 2020-05-26 成都烽创科技有限公司 工业控制网络的数据缓存方法、装置、终端设备及介质
CN111198900B (zh) * 2019-12-31 2023-06-09 成都烽创科技有限公司 工业控制网络的数据缓存方法、装置、终端设备及介质
WO2021258512A1 (zh) * 2020-06-22 2021-12-30 中科驭数(北京)科技有限公司 数据的聚合处理装置、方法和存储介质
CN115983935A (zh) * 2022-12-05 2023-04-18 北京白驹易行科技有限公司 一种订单数据的统计方法、装置、计算机设备及存储介质
CN115983935B (zh) * 2022-12-05 2023-10-13 北京白驹易行科技有限公司 一种订单数据的统计方法、装置、计算机设备及存储介质
CN116881338A (zh) * 2023-09-07 2023-10-13 北京傲星科技有限公司 基于大模型的数据流的数据挖掘方法及相关设备
CN116881338B (zh) * 2023-09-07 2024-01-26 北京傲星科技有限公司 基于大模型的数据流的数据挖掘方法及相关设备

Also Published As

Publication number Publication date
CN106598494B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN106598494A (zh) 数据统计方法和装置
US11030157B2 (en) Template based data reduction for commercial data mining
US10484413B2 (en) System and a method for detecting anomalous activities in a blockchain network
US9749356B2 (en) Systems and methods for detecting and scoring anomalies
CN104021264B (zh) 一种缺陷预测方法及装置
CN111475804A (zh) 一种告警预测方法及系统
US20190095618A1 (en) Quantitative unified analytic neural networks
CN110297853B (zh) 频繁集挖掘方法和装置
Wang et al. Breaking bad: Detecting malicious domains using word segmentation
US20180227210A1 (en) Methods Providing Performance Management Using A Proxy Baseline And Related Systems And Computer Program Products
CN110149223B (zh) 故障定位方法和设备
CN109271321A (zh) 一种贡献代码数统计方法及装置
CN110209551B (zh) 一种异常设备的识别方法、装置、电子设备及存储介质
CN105138478B (zh) 一种非平衡哈希树的存储器完整性保护方法
CN104731816A (zh) 一种处理异常业务数据的方法和装置
US11250166B2 (en) Fingerprint-based configuration typing and classification
CN107679135A (zh) 面向网络文本大数据的话题检测与跟踪方法、装置
CN106649376A (zh) 导航标签排序的方法及装置
CN108346098A (zh) 一种风控规则挖掘的方法及装置
US20220092177A1 (en) Adaptive computer security
CN105159925B (zh) 一种数据库集群数据分配方法及系统
CN108595685A (zh) 一种数据处理方法及装置
CN115795466B (zh) 一种恶意软件组织识别方法及设备
CN104794128A (zh) 数据处理方法和装置
CN106528575A (zh) 数据对接方法和装置

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