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

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

Info

Publication number
CN109165241A
CN109165241A CN201810857265.1A CN201810857265A CN109165241A CN 109165241 A CN109165241 A CN 109165241A CN 201810857265 A CN201810857265 A CN 201810857265A CN 109165241 A CN109165241 A CN 109165241A
Authority
CN
China
Prior art keywords
data
data item
data structure
item
hash table
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
CN201810857265.1A
Other languages
English (en)
Other versions
CN109165241B (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

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,对数据项si的处理,具体如下:
步骤SS21,若数据结构集中的数据结构ci的数据项ai与所述获取的数据项si相同,则数据结构ci的统计频度fi加1;
步骤SS22,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器ci=(null,0,0),null表示空,则将获取的数据项si分配给空闲的计数器ci=(null,0,0),并设置统计频度fi为1;
步骤SS23,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器ci=(null,0,0),则数据结构集中的所有数据结构ci的数据项ai的统计频度fi均减1;
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi>0,则对其累积误差加1得到ci=(ai,fi,ei+1);
步骤SS32,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi=0,则使数据结构ci=(null,0,0)。
在上述的方法,所述并行算法包括数据分块和概要合并两大部分,定义输入流S由n个数据元素构成,P为并行处理核的个数,则并行算法步骤包括:
步骤SP1,数据分块;在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块可按照数据项si下标的奇偶次序进行均分,并使得每个处理核分到个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块可按照数据项si下标次序的模运算结果进行划分,并使得每个处理核分到到个元素即可;
步骤SP2,每个处理核对分配到数据项si,依照串行算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,一般按照数据结构ci=(ai,fi,ei)存储,数据项ai为关键字,另还包含该数据项ai对应的统计频度fi以及累积误差ei
步骤SP3,令各路哈希表按照数据项的统计频度F=[f1,…,f1,…,FII]进行排序,一般按照频度排序,记录下每张哈希表S'统计频度最小项的频度值min',
min'=min(F=[f1,…,f1,…,FII]),min表示求最小值;
步骤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所对应的min'值min2,最后将求和结果存入结果哈希表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所对应的min'值mini以及加上除Si以外其他哈希表对应的统计频次和累积误差,同时从除Si以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP5,进一步处理;
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,S1全部数据项扫描完毕后,对S2进行类似的遍历扫描,在步骤SP4操作中,由于S2中数据项与S1重复的数据结构已全部被删除,故S2余下的数据项一定都是S2独有的;
步骤SP512,对S2中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中S1所对应的min'值min1,最后将所有结果存入哈希表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之中某一个哈希表Si中,则将Si中该数据结构的统计频次、累积误差分别加上步骤SP3中Sj所对应的min'值minj以及加上除Sj以外其他哈希表对应的统计频次和累积误差,同时从除Sj以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP523,S1…Sn-1全部数据项扫描完毕后,对Sn进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与S1…Sn-1重复的数据结构已全部被删除,故Sn余下的数据项一定都是Sn独有的;
步骤SP524,对Sn中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中S1…Sn-1各表所对应的min'值min1…minN-1,最后将所有结果存入哈希表Sn中即可;
步骤SP6,分块数据和概要合并过程完成;若对查询语句的返回结果的数量进行限制,则可按照限定获得查询结果。
本申请避免了对每个计数器的误差维护,因而计数频率可以构成真实频率的上界。同时,伴随新的低频数据项的不断到来,不会出现高频数据项统计值的递减而增加统计误差的现象。
附图说明
图1为本申请实施例的获取数据流频繁项的方法的流程图。
具体实施方式
下面,结合附图对本申请的具体实施例进行详细的描述,但不作为本申请的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所公开的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请提供一种获取数据流频繁项的方法。在下面的实施例中逐一进行详细说明。
对本申请提供的第一实施例,即一种获取数据流频繁项的方法的实施例。
下面结合图1对本实施例进行详细说明,其中,图1为一种获取数据流频繁项的方法的流程图。
步骤S101,从数据流中获取数据项;
步骤S102,在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集;
其中,所述数据结构中包括与数据项相关联的统计信息。
可选的,所述数据结构,至少包括以下数据:数据项,数据项的统计频度和累计误差。
下面对核心算法进行详细描述。
假设某段时间内,获得的数据流S容量为n,其中每一项数据形式为(si,1),表示任意数据项si频度1。为统计样本集S的概要信息,建立预设数量的数据结构集,用于保存频繁项的数据,将数据结构定义为ci=(ai,fi,ei),其中ai为数据项、fi为数据项ai的统计频度、ei为数据项ai的累积误差。
考虑到数据流信息挖掘算法仅需保存数据流中高频数据,伴随数据流分布的变化,算法在内存中保存了数据流的概要信息ci,并对其动态变化进行实时维护。该方法的核心在于数据结构集中的数据结构不足时,替换过程兼顾了累积误差和统计频度的当前状态。考虑一个高频(真实频度较大)数据项ai,在其连续两次命中期间通常会有新数据项交替到来,若fi不等于0则ai的计数器ci不会被其他数据项替换;与此同时,最近长期未命中的统计频度单调递减、且其累积误差也单调递增。基于此过程,算法可以保证一个长效周期内的低频计数器不断被释放,因而新到来的数据项总可以找到空闲计数器,且累积误差ei在每次变化过程中总能够补偿计数形成任意一个数据项的计数上界。
核心算法的步骤如下:
步骤SS1,从数据流中获取数据项si
步骤SS2,对数据项si的处理,具体如下:
步骤SS21,若数据结构集中的数据结构ci的数据项ai与所述获取的数据项si相同,则数据结构ci的统计频度fi加1;
步骤SS22,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器ci=(null,0,0),null表示空,则将获取的数据项si分配给空闲的计数器ci=(null,0,0),并设置统计频度fi为1;
步骤SS23,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器ci=(null,0,0),则数据结构集中的所有数据结构ci的数据项ai的统计频度fi均减1。
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi>0,则对其累积误差加1得到ci=(ai,fi,ei+1);
步骤SS32,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi=0,则使数据结构ci=(null,0,0)。
下面结合具体应用对核心算法进行描述。
并行算法策略其关键组成步骤可大致描述为“数据分块”和“概要合并”两大部分。假定输入流S由n个数据元素构成,P为并行处理核的个数,则并行算法步骤可描述如下:
步骤SP1,数据分块。在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块可按照数据项si下标的奇偶次序进行均分,并使得每个处理核分到个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块可按照数据项si下标次序的模运算结果进行划分,并使得每个处理核分到到个元素即可;
步骤SP2,每个处理核对分配到数据项si,依照上述核心算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,一般按照数据结构ci=(ai,fi,ei)存储,数据项ai为关键字,另还包含该数据项ai对应的统计频度fi以及累积误差ei
步骤SP3,令各路哈希表按照数据项的统计频度F=[f1,…,f1,…,FII]进行排序,一般按照频度排序,记录下每张哈希表S'统计频度最小项的频度值min',
min'=min(F=[f1,…,f1,…,FII]),min表示求最小值;
步骤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所对应的min'值min2,最后将求和结果存入结果哈希表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所对应的min'值mini以及加上除Si以外其他哈希表对应的统计频次和累积误差,同时从除Si以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP5,进一步处理。
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,S1全部数据项扫描完毕后,对S2进行类似的遍历扫描,在步骤SP4操作中,由于S2中数据项与S1重复的数据结构已全部被删除,故S2余下的数据项一定都是S2独有的;
步骤SP512,对S2中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中S1所对应的min'值min1,最后将所有结果存入哈希表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之中某一个哈希表Si中,则将Si中该数据结构的统计频次、累积误差分别加上步骤SP3中Sj所对应的min'值minj以及加上除Sj以外其他哈希表对应的统计频次和累积误差,同时从除Sj以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP523,S1…Sn-1全部数据项扫描完毕后,对Sn进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与S1…Sn-1重复的数据结构已全部被删除,故Sn余下的数据项一定都是Sn独有的;
步骤SP524,对Sn中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中S1…Sn-1各表所对应的min'值min1…minN-1,最后将所有结果存入哈希表Sn中即可;
步骤SP6,“分块数据”的“概要合并”过程已基本完成。如果对查询语句的返回结果的数量进行限制,则可按照限定获得查询结果。
本申请实施例具备以下优势:
1、本申请的核心方法,采用增量误差累积计数构建频繁项计数的最小误差。通过该误差度量频繁项的计数下界,并作为频繁项归并的最小截断误差。优化算法基于对“统计频度”和“累积误差”的两方兼顾,得以保证在一段较长时间内计数器序列中低频计数器总能得到机会被释放,考虑到数据流挖掘算法本质上仅需准确保存高频数据项集便可基本保证算法精确度,新算法理论上的整体误差表现要优于经典算法。
2、基于二路合并构建并行算法,采用最小下界对并行数据流进行残项截断,以减小合并数据流的误差。
该算法具有较为重要的应用价值,可处理许多资源受限的频繁项挖掘问题。例如,其可用于路由器网络监控。互联网的IP地址空间巨大,而伴随着移动互联网和IPV6的日益广泛应用,更多具有网络标识的设备将进一步扩大设备地址字典表。路由器监控应用中,管理人员需要知道某段时间内(一般一个月或更久)被访问最为频繁的若干目的地址、或给定包内容关键字的“热点”目的地址。考虑到查询需求多变,系统需要在较长时间段内维护多个查询需求,因而每个查询能够分配的内存容量就会受到限制;与此同时,目的地址空间巨大、访问频度分布极不均衡,系统无法为每个查询的每个目的地址配置一个计数器。在该应用中,数据流系统需要高效的算法以尽可能小的空间开销完成对大量地址空间的访问频度统计,从而得到任意时刻的“最为频繁”或“相对频繁”的目的地址。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理方法所应用于的电子设备,可以参考前述产品实施例中的对应描述,在此不再赘述。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

Claims (5)

1.一种获取数据流频繁项的方法,其特征在于,包括:
从数据流中获取数据项;
在预设数量的数据结构集中,根据所述数据项生成频繁项的数据结构集;
其中,所述数据结构中包括与数据项相关联的统计信息。
2.根据权利要求1所述的方法,其特征在于,所述数据结构,至少包括以下数据:数据项,数据项的统计频度和累计误差。
3.根据权利要求1所述的方法,其特征在于,根据所述数据项生成频繁项的数据结构集具体包括
串行算法:针对单个的处理核对进行处理,得到若干分支结果;
并行算法:针对串行算法得到的分支结果进行合并处理,并得到整合结果。
4.根据权利要求1所述的方法,其特征在于,所述串行算法具体包括:
步骤SS2,对数据项si的处理,具体如下:
步骤SS21,若数据结构集中的数据结构ci的数据项ai与所述获取的数据项si相同,则数据结构ci的统计频度fi加1;
步骤SS22,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,但存在空闲计数器ci=(null,0,0),null表示空,则将获取的数据项si分配给空闲的计数器ci=(null,0,0),并设置统计频度fi为1;
步骤SS23,若所述获取的数据项si没有与数据结构集中的数据结构的数据项相同的,也不存在空闲计数器ci=(null,0,0),则数据结构集中的所有数据结构ci的数据项ai的统计频度fi均减1;
步骤SS3,整理数据结构集,具体步骤如下:
步骤SS31,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi>0,则对其累积误差加1得到ci=(ai,fi,ei+1);
步骤SS32,如果数据结构集中的数据结构ci=(ai,fi,ei)统计频度fi=0,则使数据结构ci=(null,0,0)。
5.根据权利要求1所述的方法,其特征在于,所述并行算法包括数据分块和概要合并两大部分,定义输入流S由n个数据元素构成,P为并行处理核的个数,则并行算法步骤包括:
步骤SP1,数据分块;在此部分,每一个处理核将遵循一定的规则,把当前到来的所有数据进行分块,具体的分块规则根据具体应用而定,具体步骤如下:
步骤SP11,若为二路并行,数据分块可按照数据项si下标的奇偶次序进行均分,并使得每个处理核分到个元素即可;
步骤SP12,若为N路并行,其中N>2,数据分块可按照数据项si下标次序的模运算结果进行划分,并使得每个处理核分到到个元素即可;
步骤SP2,每个处理核对分配到数据项si,依照串行算法所描述的方法进行数据概要的提取,提取结果存入哈希表中以备后续汇合部分使用,一般按照数据结构ci=(ai,fi,ei)存储,数据项ai为关键字,另还包含该数据项ai对应的统计频度fi以及累积误差ei
步骤SP3,令各路哈希表按照数据项的统计频度F=[f1,…,f1,…,FII]进行排序,一般按照频度排序,记录下每张哈希表S'统计频度最小项的频度值min',
min'=min(F=[f1,…,f1,…,FII]),min表示求最小值;
步骤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所对应的min'值min2,最后将求和结果存入结果哈希表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所对应的min'值mini以及加上除Si以外其他哈希表对应的统计频次和累积误差,同时从除Si以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP5,进一步处理;
步骤SP51,若为二路并行,具体步骤为:
步骤SP511,S1全部数据项扫描完毕后,对S2进行类似的遍历扫描,在步骤SP4操作中,由于S2中数据项与S1重复的数据结构已全部被删除,故S2余下的数据项一定都是S2独有的;
步骤SP512,对S2中剩下的每一个数据结构,只需在其统计频次及累积误差项上加上步骤SP3中S1所对应的min'值min1,最后将所有结果存入哈希表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之中某一个哈希表Si中,则将Si中该数据结构的统计频次、累积误差分别加上步骤SP3中Sj所对应的min'值minj以及加上除Sj以外其他哈希表对应的统计频次和累积误差,同时从除Sj以外其他哈希表中删除刚进行过求和运算的数据结构,最后将求和结果存入结果哈希表Sn+1
步骤SP523,S1…Sn-1全部数据项扫描完毕后,对Sn进行类似的遍历扫描,在步骤SP42、SP52操作中,由于Sn中数据项与S1…Sn-1重复的数据结构已全部被删除,故Sn余下的数据项一定都是Sn独有的;
步骤SP524,对Sn中剩下的每一个数据结构,只需在统计频次及累积误差项上加上步骤SP3中S1…Sn-1各表所对应的min'值min1…minN-1,最后将所有结果存入哈希表Sn中即可;
步骤SP6,分块数据和概要合并过程完成;若对查询语句的返回结果的数量进行限制,则可按照限定获得查询结果。
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 true CN109165241A (zh) 2019-01-08
CN109165241B 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)

Cited By (1)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090112863A1 (en) * 2007-10-26 2009-04-30 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for finding maximal frequent itmesets over data streams
CN101650730A (zh) * 2009-09-08 2010-02-17 中国科学院计算技术研究所 数据流中带权值频繁项挖掘方法和系统
CN102760132A (zh) * 2011-04-28 2012-10-31 中国移动通信集团浙江有限公司 一种数据流频繁项挖掘方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090112863A1 (en) * 2007-10-26 2009-04-30 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for finding maximal frequent itmesets over data streams
CN101650730A (zh) * 2009-09-08 2010-02-17 中国科学院计算技术研究所 数据流中带权值频繁项挖掘方法和系统
CN102760132A (zh) * 2011-04-28 2012-10-31 中国移动通信集团浙江有限公司 一种数据流频繁项挖掘方法和装置

Cited By (2)

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

Also Published As

Publication number Publication date
CN109165241B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN104424229B (zh) 一种多维度拆分的计算方法及系统
CN103699676B (zh) 基于mssql server表分区及自动维护方法及系统
CN105989129A (zh) 实时数据统计方法和装置
CN106462578A (zh) 数据库条目查询和更新的方法
CN105630955A (zh) 一种高效动态的数据集合成员管理方法
CN107229751A (zh) 一种面向流式数据的并行增量式关联规则挖掘方法
CN106570145B (zh) 一种基于分层映射的分布式数据库结果缓存方法
CN101650730B (zh) 数据流中带权值频繁项挖掘方法和系统
CN110232074A (zh) 流数据与维表关联方法及流计算装置
CN107766529A (zh) 一种用于污水处理行业的海量数据存储方法
CN103853838A (zh) 一种数据处理方法和装置
CN104699757A (zh) 云环境下分布式网络信息采集方法
CN104346458A (zh) 数据存储方法和存储设备
CN109739903A (zh) 一种排行榜数据的生成方法及相关装置
CN107276854B (zh) 一种大数据下molap统计分析的方法
CN109165241A (zh) 一种获取数据流频繁项的方法
CN104573082B (zh) 基于访问日志信息的空间小文件数据分布存储方法及系统
CN107291878A (zh) 一种分布式存储文件系统的数据删除方法及装置
KR20170016168A (ko) 타일 기반의 지도 데이터 갱신 시스템 및 그 방법
CN103220379A (zh) 一种域名反向解析方法和装置
CN106909624B (zh) 一种海量数据实时排序优化方法
CN112445776A (zh) 基于Presto的动态分桶方法、系统、设备及可读存储介质
CN105677840B (zh) 一种基于多维渐增数据模型的数据查询方法
CN107085603A (zh) 一种数据处理方法及装置
Li et al. Ladderfilter: Filtering infrequent items with small memory and time overhead

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