CN109165241B - 一种获取数据流频繁项的方法 - Google Patents

一种获取数据流频繁项的方法 Download PDF

Info

Publication number
CN109165241B
CN109165241B CN201810857265.1A CN201810857265A CN109165241B CN 109165241 B CN109165241 B CN 109165241B CN 201810857265 A CN201810857265 A CN 201810857265A CN 109165241 B CN109165241 B CN 109165241B
Authority
CN
China
Prior art keywords
data
data structure
items
item
frequency
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.)
Active
Application number
CN201810857265.1A
Other languages
English (en)
Other versions
CN109165241A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201810857265.1A priority Critical patent/CN109165241B/zh
Publication of CN109165241A publication Critical patent/CN109165241A/zh
Application granted granted Critical
Publication of CN109165241B publication Critical patent/CN109165241B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种获取数据流频繁项的方法,包括:从数据流中获取数据项;在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集;其中,所述数据结构中包括与数据项相关联的统计信息。本申请避免了对每个计数器的误差维护,因而计数频率可以构成真实频率的上界。同时,伴随新的低频数据项的不断到来,不会出现高频数据项统计值的递减而增加统计误差的现象。

Description

一种获取数据流频繁项的方法
技术领域
本申请涉及数据挖掘领域,具体涉及获取数据流频繁项的方法。
背景技术
数据挖掘技术主要应用于数据密集型场景中。随着信息技术的广泛应用,二十世纪末在数据挖掘的应用中出现了一种新的数据处理模型——数据流(Data Stream)。该模型用以处理按时间顺序到达的连续序列,具备以下六个特点:(1)规模大,(2)有序,(3)不确定,(4)快速,(5)无界,(6)流式。
数据流挖掘,就是在数据流上提取隐含的和潜在有用的信息和知识的过程。特别是,数据流算法要求在流式环境下执行。所述算法的处理前提是不保存观测数据全集,并在单次扫描的前提下完成。该类问题的求解着重考虑两方面:(1)数据实时到达,需要做快速的处理和响应;(2)由于通常在内存中处理数据,因此需要重点对空间利用率进行优化。
如何在有限的运算空间中处理无限的数据是该类算法的难度所在。
发明内容
本申请提供一种获取数据流频繁项的方法;以解决在有限的运算空间中处理无限的数据的问题。
为了解决上述技术问题,本申请实施例提供了如下的技术方案:
一种获取数据流频繁项的方法,其特征在于,包括:
从数据流中获取数据项;
在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集;
其中,所述数据结构中包括与数据项相关联的统计信息。
在上述的方法,所述数据结构,至少包括以下数据:数据项,数据项的统计频度和累计误差。
在上述的方法,根据所述数据项生成频繁项的数据结构集具体包括
串行算法:针对单个的处理核对进行处理,得到若干分支结果;
并行算法:针对串行算法得到的分支结果进行合并处理,并得到整合结果。
在上述的方法,所述串行算法具体包括:
步骤SS2,对数据项
Figure SMS_1
的处理,具体如下:
步骤SS21,若数据结构集中的数据结构
Figure SMS_2
的数据项/>
Figure SMS_3
与所述获取的数据项/>
Figure SMS_4
相同,则数据结构/>
Figure SMS_5
的统计频度/>
Figure SMS_6
加1;
步骤SS22,若所述获取的数据项
Figure SMS_7
没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器/>
Figure SMS_8
,/>
Figure SMS_9
表示空,则将获取的数据项/>
Figure SMS_10
分配给空闲的计数器/>
Figure SMS_11
,并设置统计频度/>
Figure SMS_12
为1;
步骤SS23,若所述获取的数据项
Figure SMS_13
没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器/>
Figure SMS_14
,则数据结构集中的所有数据结构/>
Figure SMS_15
的数据项/>
Figure SMS_16
的统计频度/>
Figure SMS_17
均减1;
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构
Figure SMS_18
统计频度/>
Figure SMS_19
,则对其累积误差加1得到/>
Figure SMS_20
步骤SS32,如果数据结构集中的数据结构
Figure SMS_21
统计频度/>
Figure SMS_22
,则使数据结构/>
Figure SMS_23
在上述的方法,所述并行算法包括数据分块和概要合并两大部分,定义输入流S由n个数据元素构成,P为并行处理核的个数,则并行算法步骤包括:
步骤SP1,数据分块;在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块可按照数据项
Figure SMS_24
下标的奇偶次序进行均分,并使得每个处理核分到/>
Figure SMS_25
或/>
Figure SMS_26
个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块可按照数据项
Figure SMS_27
下标次序的模运算结果进行划分,并使得每个处理核分到到/>
Figure SMS_28
或/>
Figure SMS_29
个元素即可;
步骤SP2,每个处理核对分配到数据项
Figure SMS_30
,依照串行算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,一般按照数据结构/>
Figure SMS_31
存储,数据项/>
Figure SMS_32
为关键字,另还包含该数据项/>
Figure SMS_33
对应的统计频度/>
Figure SMS_34
以及累积误差/>
Figure SMS_35
步骤SP3,令各路哈希表按照数据项的统计频度
Figure SMS_36
进行排序,一般按照频度排序,记录下每张哈希表/>
Figure SMS_37
统计频度最小项的频度值/>
Figure SMS_38
Figure SMS_39
,/>
Figure SMS_40
表示求最小值;
步骤SP4,对步骤SP2中提取的各路数据概要进行合并,分为二路并行和N路并行,N>2;
步骤SP41,若为二路并行,具体步骤为:
步骤SP411,步骤SP2生成的两张哈希表分别为S1、S2,概要合并策略可描述为:首先遍历扫描S1每一个数据项,检查S1中的每一项是否出现在S2中;
步骤SP412,若S1中数据项同时出现在S2中,则将数据项相同的S1、S2的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表S3,同时从S2中删除刚进行求和运算的数据结构;
步骤SP413,若S1中数据项没有出现在S2中,则将S1中该数据结构的统计频次、累积误差分别加上步骤SP3中S2所对应的
Figure SMS_41
值/>
Figure SMS_42
,最后将求和结果存入结果哈希表S3;
步骤SP42,若为N路并行,具体步骤为:
步骤SP421,步骤SP2生成的N张哈希表分别为S1,S2,…Sn,“概要合并”策略可描述为:首先遍历扫描S1每一个数据项,检查S1中的每一项是否出现在余下所有哈希表S2,…Sn中;
步骤SP422,若S1中数据项同时出现在余下所有哈希表S2,…Sn中,则将数据项相同的S1,S2,…Sn的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表Sn+1中,同时从S2,…Sn中删除刚进行求和运算的数据结构;
步骤SP423,若S1中数据项没有出现在S2,…Sn之中某一个哈希表Si中,则将S1中该数据结构的统计频次、累积误差分别加上步骤SP3中Si所对应的
Figure SMS_43
值/>
Figure SMS_44
以及加上除Si以外其他哈希表对应的统计频次和累积误差,同时从除Si以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP5,进一步处理;
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,S1全部数据项扫描完毕后,对S2进行类似的遍历扫描,在步骤SP4操作中,由于S2中数据项与S1重复的数据结构已全部被删除,故S2余下的数据项一定都是S2独有的;
步骤SP512,对S2中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中S1所对应的
Figure SMS_45
值/>
Figure SMS_46
,最后将所有结果存入哈希表S3中即可;
步骤SP52,若为N路并行,具体步骤为:
步骤SP521,S1全部数据项扫描完毕后,对S2,…Sn依次挨个进行类似S1的遍历扫描;
步骤SP522,S2,…Sn+1中任何表Si遍历扫描操作均与S1相同:
步骤SP5221,首先遍历扫描Si每一个数据项,检查Si中的每一项是否出现在余下所有哈希表S1,Si-1,Si+1,…Sn中
步骤SP5222,若Si中数据项同时出现在余下所有哈希表S1,Si-1,Si+1,…Sn中,则将数据项相同的S1,S2,…Sn数据结构进行合并,将对应的统计频次和累积误差求和,并将数据结构的求和结果存入结果哈希表Sn+1中,同时从S1,Si-1,Si+1,…Sn中删除刚进行过求和运算的数据结构;
步骤SP5223,若Si中数据项没有出现在S1,Si-1,Si+1,…Sn之中某一个哈希表
Figure SMS_47
中,则将Si中该数据结构的统计频次、累积误差分别加上步骤SP3中/>
Figure SMS_48
所对应的/>
Figure SMS_49
值/>
Figure SMS_50
以及加上除/>
Figure SMS_51
以外其他哈希表对应的统计频次和累积误差,同时从除/>
Figure SMS_52
以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP523,S1…Sn-1全部数据项扫描完毕后,对Sn进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与S1…Sn-1重复的数据结构已全部被删除,故Sn余下的数据项一定都是Sn独有的;
步骤SP524,对Sn中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中S1…Sn-1各表所对应的
Figure SMS_53
值/>
Figure SMS_54
…/>
Figure SMS_55
,最后将所有结果存入哈希表Sn中即可;
步骤SP6,分块数据和概要合并过程完成;若对查询语句的返回结果的数量进行限制,则可按照限定获得查询结果。
本申请避免了对每个计数器的误差维护,因而计数频率可以构成真实频率的上界。同时,伴随新的低频数据项的不断到来,不会出现高频数据项统计值的递减而增加统计误差的现象。
附图说明
图1为本申请实施例的获取数据流频繁项的方法的流程图。
具体实施方式
下面,结合附图对本申请的具体实施例进行详细的描述,但不作为本申请的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所公开的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请提供一种获取数据流频繁项的方法。在下面的实施例中逐一进行详细说明。
对本申请提供的第一实施例,即一种获取数据流频繁项的方法的实施例。
下面结合图1对本实施例进行详细说明,其中,图1为一种获取数据流频繁项的方法的流程图。
步骤S101,从数据流中获取数据项;
步骤S102,在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集;
其中,所述数据结构中包括与数据项相关联的统计信息。
可选的,所述数据结构,至少包括以下数据:数据项,数据项的统计频度和累计误差。
下面对核心算法进行详细描述。
假设某段时间内,获得的数据流
Figure SMS_57
容量为/>
Figure SMS_58
,其中每一项数据形式为/>
Figure SMS_60
,表示任意数据项/>
Figure SMS_63
频度1。为统计样本集/>
Figure SMS_64
的概要信息,建立预设数量的数据结构集,用于保存频繁项的数据,将数据结构定义为/>
Figure SMS_65
,其中/>
Figure SMS_66
为数据项、/>
Figure SMS_56
为数据项/>
Figure SMS_59
的统计频度、
Figure SMS_61
为数据项/>
Figure SMS_62
的累积误差。
考虑到数据流信息挖掘算法仅需保存数据流中高频数据,伴随数据流分布的变化,算法在内存中保存了数据流的概要信息
Figure SMS_67
,并对其动态变化进行实时维护。该方法的核心在于数据结构集中的数据结构不足时,替换过程兼顾了累积误差和统计频度的当前状态。考虑一个高频(真实频度较大)数据项/>
Figure SMS_68
,在其连续两次命中期间通常会有新数据项交替到来,若/>
Figure SMS_69
不等于0则/>
Figure SMS_70
的计数器/>
Figure SMS_71
不会被其他数据项替换;与此同时,最近长期未命中的统计频度单调递减、且其累积误差也单调递增。基于此过程,算法可以保证一个长效周期内的低频计数器不断被释放,因而新到来的数据项总可以找到空闲计数器,且累积误差/>
Figure SMS_72
在每次变化过程中总能够补偿计数形成任意一个数据项的计数上界。
核心算法的步骤如下:
步骤SS1,从数据流中获取数据项
Figure SMS_73
步骤SS2,对数据项
Figure SMS_74
的处理,具体如下:
步骤SS21,若数据结构集中的数据结构
Figure SMS_75
的数据项/>
Figure SMS_76
与所述获取的数据项/>
Figure SMS_77
相同,则数据结构/>
Figure SMS_78
的统计频度/>
Figure SMS_79
加1;
步骤SS22,若所述获取的数据项
Figure SMS_80
没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器/>
Figure SMS_81
,/>
Figure SMS_82
表示空,则将获取的数据项/>
Figure SMS_83
分配给空闲的计数器/>
Figure SMS_84
,并设置统计频度/>
Figure SMS_85
为1;
步骤SS23,若所述获取的数据项
Figure SMS_86
没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器/>
Figure SMS_87
,则数据结构集中的所有数据结构/>
Figure SMS_88
的数据项/>
Figure SMS_89
的统计频度/>
Figure SMS_90
均减1。
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构
Figure SMS_91
统计频度/>
Figure SMS_92
,则对其累积误差加1得到/>
Figure SMS_93
步骤SS32,如果数据结构集中的数据结构
Figure SMS_94
统计频度/>
Figure SMS_95
,则使数据结构/>
Figure SMS_96
下面结合具体应用对核心算法进行描述。
并行算法策略其关键组成步骤可大致描述为“数据分块”和“概要合并”两大部分。假定输入流S由n个数据元素构成,P为并行处理核的个数,则并行算法步骤可描述如下:
步骤SP1,数据分块。在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块可按照数据项
Figure SMS_97
下标的奇偶次序进行均分,并使得每个处理核分到/>
Figure SMS_98
或/>
Figure SMS_99
个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块可按照数据项
Figure SMS_100
下标次序的模运算结果进行划分,并使得每个处理核分到到/>
Figure SMS_101
或/>
Figure SMS_102
个元素即可;
步骤SP2,每个处理核对分配到数据项
Figure SMS_103
,依照上述核心算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,一般按照数据结构
Figure SMS_104
存储,数据项/>
Figure SMS_105
为关键字,另还包含该数据项/>
Figure SMS_106
对应的统计频度/>
Figure SMS_107
以及累积误差/>
Figure SMS_108
步骤SP3,令各路哈希表按照数据项的统计频度
Figure SMS_109
进行排序,一般按照频度排序,记录下每张哈希表/>
Figure SMS_110
统计频度最小项的频度值/>
Figure SMS_111
Figure SMS_112
,/>
Figure SMS_113
表示求最小值;
步骤SP4,对步骤SP2中提取的各路数据概要进行合并,分为二路并行和N路并行,N>2;
步骤SP41,若为二路并行,具体步骤为:
步骤SP411,步骤SP2生成的两张哈希表分别为S1、S2,“概要合并”策略可描述为:首先遍历扫描S1每一个数据项,检查S1中的每一项是否出现在S2中;
步骤SP412,若S1中数据项同时出现在S2中,则将数据项相同的S1、S2的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表S3,同时从S2中删除刚进行求和运算的数据结构;
步骤SP413,若S1中数据项没有出现在S2中,则将S1中该数据结构的统计频次、累积误差分别加上步骤SP3中S2所对应的
Figure SMS_114
值/>
Figure SMS_115
,最后将求和结果存入结果哈希表S3;
步骤SP42,若为N路并行,具体步骤为:
步骤SP421,步骤SP2生成的N张哈希表分别为S1,S2,…Sn,“概要合并”策略可描述为:首先遍历扫描S1每一个数据项,检查S1中的每一项是否出现在余下所有哈希表S2,…Sn中。
步骤SP422,若S1中数据项同时出现在余下所有哈希表S2,…Sn中,则将数据项相同的S1,S2,…Sn的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表Sn+1中,同时从S2,…Sn中删除刚进行求和运算的数据结构;
步骤SP423,若S1中数据项没有出现在S2,…Sn之中某一个哈希表Si中,则将S1中该数据结构的统计频次、累积误差分别加上步骤SP3中Si所对应的
Figure SMS_116
值/>
Figure SMS_117
以及加上除Si以外其他哈希表对应的统计频次和累积误差,同时从除Si以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP5,进一步处理。
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,S1全部数据项扫描完毕后,对S2进行类似的遍历扫描,在步骤SP4操作中,由于S2中数据项与S1重复的数据结构已全部被删除,故S2余下的数据项一定都是S2独有的;
步骤SP512,对S2中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中S1所对应的
Figure SMS_118
值/>
Figure SMS_119
,最后将所有结果存入哈希表S3中即可;
步骤SP52,若为N路并行,具体步骤为:
步骤SP521,S1全部数据项扫描完毕后,对S2,…Sn依次挨个进行类似S1的遍历扫描;
步骤SP522,S2,…Sn+1中任何表Si遍历扫描操作均与S1相同:
步骤SP5221,首先遍历扫描Si每一个数据项,检查Si中的每一项是否出现在余下所有哈希表S1,Si-1,Si+1,…Sn中
步骤SP5222,若Si中数据项同时出现在余下所有哈希表S1,Si-1,Si+1,…Sn中,则将数据项相同的S1,S2,…Sn数据结构进行合并,将对应的统计频次和累积误差求和,并将数据结构的求和结果存入结果哈希表Sn+1中,同时从S1,Si-1,Si+1,…Sn中删除刚进行过求和运算的数据结构;
步骤SP5223,若Si中数据项没有出现在S1,Si-1,Si+1,…Sn之中某一个哈希表
Figure SMS_120
中,则将Si中该数据结构的统计频次、累积误差分别加上步骤SP3中/>
Figure SMS_121
所对应的/>
Figure SMS_122
值/>
Figure SMS_123
以及加上除/>
Figure SMS_124
以外其他哈希表对应的统计频次和累积误差,同时从除/>
Figure SMS_125
以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP523,S1…Sn-1全部数据项扫描完毕后,对Sn进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与S1…Sn-1重复的数据结构已全部被删除,故Sn余下的数据项一定都是Sn独有的;
步骤SP524,对Sn中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中S1…Sn-1各表所对应的
Figure SMS_126
值/>
Figure SMS_127
…/>
Figure SMS_128
,最后将所有结果存入哈希表Sn中即可;
步骤SP6,“分块数据”的“概要合并”过程已基本完成。如果对查询语句的返回结果的数量进行限制,则可按照限定获得查询结果。
本申请实施例具备以下优势:
1、本申请的核心方法,采用增量误差累积计数构建频繁项计数的最小误差。通过该误差度量频繁项的计数下界,并作为频繁项归并的最小截断误差。优化算法基于对“统计频度”和“累积误差”的两方兼顾,得以保证在一段较长时间内计数器序列中低频计数器总能得到机会被释放,考虑到数据流挖掘算法本质上仅需准确保存高频数据项集便可基本保证算法精确度,新算法理论上的整体误差表现要优于经典算法。
2、基于二路合并构建并行算法,采用最小下界对并行数据流进行残项截断,以减小合并数据流的误差。
该算法具有较为重要的应用价值,可处理许多资源受限的频繁项挖掘问题。例如,其可用于路由器网络监控。互联网的IP地址空间巨大,而伴随着移动互联网和IPV6的日益广泛应用,更多具有网络标识的设备将进一步扩大设备地址字典表。路由器监控应用中,管理人员需要知道某段时间内(一般一个月或更久)被访问最为频繁的若干目的地址、或给定包内容关键字的“热点”目的地址。考虑到查询需求多变,系统需要在较长时间段内维护多个查询需求,因而每个查询能够分配的内存容量就会受到限制;与此同时,目的地址空间巨大、访问频度分布极不均衡,系统无法为每个查询的每个目的地址配置一个计数器。在该应用中,数据流系统需要高效的算法以尽可能小的空间开销完成对大量地址空间的访问频度统计,从而得到任意时刻的“最为频繁”或“相对频繁”的目的地址。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理方法所应用于的电子设备,可以参考前述产品实施例中的对应描述,在此不再赘述。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

Claims (2)

1.一种获取数据流频繁项的方法,其特征在于,包括:
从数据流中获取数据项;
在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集, 具体包括
串行算法:针对单个的处理核对进行处理,得到若干分支结果;
并行算法:针对串行算法得到的分支结果进行合并处理,并得到整合结果;
并行算法包括数据分块和概要合并两大部分,定义输入流S由n个数据元素构成,
Figure QLYQS_1
为并行处理核的个数,则并行算法步骤包括:
步骤SP1,数据分块;在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块按照数据项
Figure QLYQS_2
下标的奇偶次序进行均分,并使得每个处理核分到/>
Figure QLYQS_3
或/>
Figure QLYQS_4
个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块按照数据项
Figure QLYQS_5
下标次序的模运算结果进行划分,并使得每个处理核分到到/>
Figure QLYQS_6
或/>
Figure QLYQS_7
个元素即可;
步骤SP2,每个处理核对分配到数据项
Figure QLYQS_8
,依照串行算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,按照数据结构/>
Figure QLYQS_9
存储,数据项/>
Figure QLYQS_10
为关键字,另还包含该数据项/>
Figure QLYQS_11
对应的统计频度/>
Figure QLYQS_12
以及累积误差/>
Figure QLYQS_13
步骤SP3,令各路哈希表按照数据项的统计频度
Figure QLYQS_14
进行排序,按照频度排序,记录下每张哈希表/>
Figure QLYQS_15
统计频度最小项的频度值/>
Figure QLYQS_16
Figure QLYQS_17
,/>
Figure QLYQS_18
表示求最小值;
步骤SP4,对步骤SP2中提取的各路数据概要进行合并,分为二路并行和N路并行,N>2;
步骤SP41,若为二路并行,具体步骤为:
步骤SP411,步骤SP2生成的两张哈希表分别为
Figure QLYQS_19
、/>
Figure QLYQS_20
,概要合并策略描述为:首先遍历扫描/>
Figure QLYQS_21
每一个数据项,检查/>
Figure QLYQS_22
中的每一项是否出现在/>
Figure QLYQS_23
中;
步骤SP412,若
Figure QLYQS_24
中数据项同时出现在/>
Figure QLYQS_25
中,则将数据项相同的/>
Figure QLYQS_26
、/>
Figure QLYQS_27
的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表/>
Figure QLYQS_28
,同时从/>
Figure QLYQS_29
中删除刚进行求和运算的数据结构;
步骤SP413,若
Figure QLYQS_30
中数据项没有出现在/>
Figure QLYQS_31
中,则将/>
Figure QLYQS_32
中该数据结构的统计频次、累积误差分别加上步骤SP3中/>
Figure QLYQS_33
所对应的/>
Figure QLYQS_34
值/>
Figure QLYQS_35
,最后将求和结果存入结果哈希表/>
Figure QLYQS_36
步骤SP42,若为N路并行,具体步骤为:
步骤SP421,步骤SP2生成的N张哈希表分别为
Figure QLYQS_37
,/>
Figure QLYQS_38
,…/>
Figure QLYQS_39
,“概要合并”策略描述为:首先遍历扫描/>
Figure QLYQS_40
每一个数据项,检查/>
Figure QLYQS_41
中的每一项是否出现在余下所有哈希表/>
Figure QLYQS_42
,…/>
Figure QLYQS_43
中;
步骤SP422,若
Figure QLYQS_44
中数据项同时出现在余下所有哈希表/>
Figure QLYQS_46
,…/>
Figure QLYQS_48
中,则将数据项相同的
Figure QLYQS_49
,/>
Figure QLYQS_50
,…/>
Figure QLYQS_51
的数据结构进行合并,对相应的统计频次和累积误差求和,并将数据结构中数据的求和结果存入结果哈希表/>
Figure QLYQS_52
中,同时从/>
Figure QLYQS_45
,…/>
Figure QLYQS_47
中删除刚进行求和运算的数据结构;
步骤SP423,若
Figure QLYQS_53
中数据项没有出现在/>
Figure QLYQS_55
,…/>
Figure QLYQS_58
之中某一个哈希表/>
Figure QLYQS_60
中,则将/>
Figure QLYQS_61
中该数据结构的统计频次、累积误差分别加上步骤SP3中/>
Figure QLYQS_62
所对应的/>
Figure QLYQS_63
值/>
Figure QLYQS_54
以及加上除/>
Figure QLYQS_56
以外其他哈希表对应的统计频次和累积误差,同时从除/>
Figure QLYQS_57
以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表/>
Figure QLYQS_59
步骤SP5,进一步处理;
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,
Figure QLYQS_64
全部数据项扫描完毕后,对/>
Figure QLYQS_65
进行类似的遍历扫描,在步骤SP4操作中,由于/>
Figure QLYQS_66
中数据项与/>
Figure QLYQS_67
重复的数据结构已全部被删除,故/>
Figure QLYQS_68
余下的数据项一定都是/>
Figure QLYQS_69
独有的;
步骤SP512,对
Figure QLYQS_70
中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中/>
Figure QLYQS_71
所对应的/>
Figure QLYQS_72
值/>
Figure QLYQS_73
,最后将所有结果存入哈希表/>
Figure QLYQS_74
中即可;
步骤SP52,若为N路并行,具体步骤为:
步骤SP521,
Figure QLYQS_75
全部数据项扫描完毕后,对/>
Figure QLYQS_76
,…/>
Figure QLYQS_77
依次挨个进行类似/>
Figure QLYQS_78
的遍历扫描;
步骤SP522,
Figure QLYQS_79
,…/>
Figure QLYQS_80
中任何表Si遍历扫描操作均与/>
Figure QLYQS_81
相同:
步骤SP5221,首先遍历扫描Si每一个数据项,检查
Figure QLYQS_82
中的每一项是否出现在余下所有哈希表/>
Figure QLYQS_83
,/>
Figure QLYQS_84
,/>
Figure QLYQS_85
,…/>
Figure QLYQS_86
步骤SP5222,若Si中数据项同时出现在余下所有哈希表
Figure QLYQS_88
,/>
Figure QLYQS_89
,/>
Figure QLYQS_91
,…/>
Figure QLYQS_93
中,则将数据项相同的/>
Figure QLYQS_95
,/>
Figure QLYQS_96
,…/>
Figure QLYQS_97
数据结构进行合并,将对应的统计频次和累积误差求和,并将数据结构的求和结果存入结果哈希表Sn+1中,同时从/>
Figure QLYQS_87
,/>
Figure QLYQS_90
,/>
Figure QLYQS_92
,…/>
Figure QLYQS_94
中删除刚进行过求和运算的数据结构;
步骤SP5223,若
Figure QLYQS_99
中数据项没有出现在/>
Figure QLYQS_100
,/>
Figure QLYQS_103
,/>
Figure QLYQS_104
,…/>
Figure QLYQS_106
之中某一个哈希表/>
Figure QLYQS_108
中,则将/>
Figure QLYQS_110
中该数据结构的统计频次、累积误差分别加上/>
Figure QLYQS_98
所对应的/>
Figure QLYQS_101
值/>
Figure QLYQS_102
以及加上除
Figure QLYQS_105
以外其他哈希表对应的统计频次和累积误差,同时从除/>
Figure QLYQS_107
以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表/>
Figure QLYQS_109
步骤SP523,
Figure QLYQS_111
…/>
Figure QLYQS_112
全部数据项扫描完毕后,对/>
Figure QLYQS_113
进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与/>
Figure QLYQS_114
…/>
Figure QLYQS_115
重复的数据结构已全部被删除,故/>
Figure QLYQS_116
余下的数据项一定都是/>
Figure QLYQS_117
独有的;
步骤SP524,对
Figure QLYQS_118
中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中/>
Figure QLYQS_119
…/>
Figure QLYQS_120
各表所对应的/>
Figure QLYQS_121
值/>
Figure QLYQS_122
…/>
Figure QLYQS_123
,最后将所有结果存入哈希表/>
Figure QLYQS_124
中即可;
步骤SP6,分块数据和概要合并过程完成;若对查询语句的返回结果的数量进行限制,则按照限定获得查询结果;
其中,所述数据结构中包括与数据项相关联的统计信息;
所述串行算法具体包括:
步骤SS2,对数据项
Figure QLYQS_125
的处理,具体如下:
步骤SS21,若数据结构集中的数据结构
Figure QLYQS_126
的数据项/>
Figure QLYQS_127
与所述获取的数据项/>
Figure QLYQS_128
相同,则数据结构/>
Figure QLYQS_129
的统计频度/>
Figure QLYQS_130
加1;
步骤SS22,若所述获取的数据项
Figure QLYQS_131
没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器/>
Figure QLYQS_132
,/>
Figure QLYQS_133
表示空,则将获取的数据项/>
Figure QLYQS_134
分配给空闲的计数器
Figure QLYQS_135
,并设置统计频度/>
Figure QLYQS_136
为1;
步骤SS23,若所述获取的数据项
Figure QLYQS_137
没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器/>
Figure QLYQS_138
,则数据结构集中的所有数据结构/>
Figure QLYQS_139
的数据项/>
Figure QLYQS_140
的统计频度/>
Figure QLYQS_141
均减1;
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构
Figure QLYQS_142
统计频度/>
Figure QLYQS_143
,则对其累积误差加1得到/>
Figure QLYQS_144
步骤SS32,如果数据结构集中的数据结构
Figure QLYQS_145
统计频度/>
Figure QLYQS_146
,则使数据结构
Figure QLYQS_147
2.根据权利要求1所述的方法,其特征在于,所述数据结构,至少包括以下数据:数据项,数据项的统计频度和累计误差。
CN201810857265.1A 2018-07-31 2018-07-31 一种获取数据流频繁项的方法 Active CN109165241B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810857265.1A CN109165241B (zh) 2018-07-31 2018-07-31 一种获取数据流频繁项的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810857265.1A CN109165241B (zh) 2018-07-31 2018-07-31 一种获取数据流频繁项的方法

Publications (2)

Publication Number Publication Date
CN109165241A CN109165241A (zh) 2019-01-08
CN109165241B true CN109165241B (zh) 2023-06-30

Family

ID=64898379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810857265.1A Active CN109165241B (zh) 2018-07-31 2018-07-31 一种获取数据流频繁项的方法

Country Status (1)

Country Link
CN (1) CN109165241B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535825B (zh) * 2019-07-16 2020-08-14 北京大学 一种特征网络流的数据识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650730A (zh) * 2009-09-08 2010-02-17 中国科学院计算技术研究所 数据流中带权值频繁项挖掘方法和系统
CN102760132A (zh) * 2011-04-28 2012-10-31 中国移动通信集团浙江有限公司 一种数据流频繁项挖掘方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899144B1 (ko) * 2007-10-26 2009-05-27 연세대학교 산학협력단 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650730A (zh) * 2009-09-08 2010-02-17 中国科学院计算技术研究所 数据流中带权值频繁项挖掘方法和系统
CN102760132A (zh) * 2011-04-28 2012-10-31 中国移动通信集团浙江有限公司 一种数据流频繁项挖掘方法和装置

Also Published As

Publication number Publication date
CN109165241A (zh) 2019-01-08

Similar Documents

Publication Publication Date Title
US20210226920A1 (en) Methods, systems, and computer readable media for adaptive packet filtering
US11709600B2 (en) System and method for performing live partitioning in a data store
US11757739B2 (en) Aggregation of select network traffic statistics
US20210103604A1 (en) System and method for implementing a scalable data storage service
US8707313B1 (en) Scheduler for search engine crawler
US20230280908A1 (en) System and method for providing a committed throughput level in a data store
US9672234B2 (en) Database and database processing methods
US11423085B2 (en) Graph database super vertex partitioning
US20140258232A1 (en) System and method for performing replica copying using a physical copy mechanism
CN108566296B (zh) 网络设备分层方法、网络管理设备及计算机可读存储介质
WO2013046664A1 (ja) 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体
CN100539578C (zh) 在通信网络中管理高速缓存信息的方法、系统和网络节点
CN110825794B (zh) 分区合并方法和数据库服务器
Awad et al. Dynamic graphs on the GPU
US20220050663A1 (en) System and method for improving load balancing in large database management system
Patgiri et al. Role of bloom filter in big data research: A survey
AU2014253497B2 (en) Entity resolution from documents
CN109165241B (zh) 一种获取数据流频繁项的方法
CN107203623B (zh) 网络爬虫系统的负载均衡调节方法
WO2021082936A1 (zh) 一种网页访客数量统计方法及装置
CN107908713A (zh) 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法
CN107045535B (zh) 数据库表索引
CN111061719B (zh) 数据收集方法、装置、设备和存储介质
CN108449226B (zh) 信息快速分类的方法和系统
JP5871698B2 (ja) 情報蓄積検索装置

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