CN101419630A - 一种数据流中Top-k项的挖掘方法及系统 - Google Patents

一种数据流中Top-k项的挖掘方法及系统 Download PDF

Info

Publication number
CN101419630A
CN101419630A CNA200810239188XA CN200810239188A CN101419630A CN 101419630 A CN101419630 A CN 101419630A CN A200810239188X A CNA200810239188X A CN A200810239188XA CN 200810239188 A CN200810239188 A CN 200810239188A CN 101419630 A CN101419630 A CN 101419630A
Authority
CN
China
Prior art keywords
data item
node
binary tree
value
counter
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
CNA200810239188XA
Other languages
English (en)
Other versions
CN101419630B (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.)
Yantai Zhong Ke network technical institute
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN200810239188XA priority Critical patent/CN101419630B/zh
Publication of CN101419630A publication Critical patent/CN101419630A/zh
Application granted granted Critical
Publication of CN101419630B publication Critical patent/CN101419630B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据流中Top-k项的挖掘方法和系统,方法包括:步骤1,初始化平衡二叉树,所述平衡二叉树的节点用于存储数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值;步骤2,将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数;步骤3,按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。本发明能够降低了最差处理时间,降低了存储空间,提高了挖掘的准确性。

Description

一种数据流中Top-k项的挖掘方法及系统
技术领域
本发明涉及数据流挖掘领域,尤其涉及一种数据流中Top-k项的挖掘方法及系统。
背景技术
近年来,数据流挖掘被广泛应用到传感器网络通信、Web服务器点击日志、网络安全监控与异常检测、股票交易、通话记录、环境监测等领域,因此已成为国内外各界研究的热点。
一般地,数据流可以被认为是一种连续的无穷的数据序列。相对于传统的静态数据挖掘,数据流挖掘面临着实时性、空间性和近似性等技术挑战。目前,针对数据流挖掘的研究工作主要包括聚类分析、数据分类、频繁模式(项)和Top-k项挖掘等方面,其中,Top-k项挖掘在网络安全监控与异常检测领域具有重要意义,它能够有效发现用户最关注的前k个数据项,如网络流量中流向目的IP地址的Top-k流量统计,从而为网络安全监控与网络异常检测提供可靠的技术手段。Top-k项挖掘研究所面临的主要问题为在满足实时性处理需求的前提下,如何利用有限存储空间来尽可能准确地挖掘出用户定义的Top-k数据项。
当前,针对数据流频繁模式(项)的研究工作很多,并取得了很好的研究成果,然而在数据流Top-k项挖掘方面的研究并不多,仅有的一些工作往往集中在Top-k频繁项的挖掘,其中效果最好的研究成果为Metwally等人公开的一种Top-k频繁项的挖掘方法,Space-Saving(空间节约)方法“An IntegratedEfficient Solution for Computing Frequent and Top-k Elements in DataStreams”,A.Metwal ly,D.Agrawal,And A.E.Abbadi,ACM Transact ionson Database Systems.2006,31(3):1095-1133,同时也公开了一种用于存储和查找最小频繁项的链表结构Stream-Summary(流摘要结构)。该方法的核心思想是考察数据流中的每一个数据项,如果数据项在存储结构Stream-Summary中,将数据项对应的的计数器的值加1;否则,用该数据项替换掉Stream-Summary计数器值最小的数据项,并将计数器的值置为存储的原计数器的值同1的加和。
Space-Saving方法及其Stream-Summary链表结构主要适用于频繁项统计,即加1操作;而针对数据项属性值统计,即加n操作,问题,该方法的最差时间复杂度将降为0(k),同时由于Stream-Summary链表结构本身固有的机制也导致了该方法空间复杂度的提高以及准确性的下降。
发明内容
为了解决上述的技术问题,本发明提供了一种数据流中Top-k项的挖掘方法及系统,能够降低了最差处理时间,降低了存储空间,提高了挖掘的准确性。
本发明公开了一种数据流中Top-k项的挖掘方法,包括:
步骤1,初始化平衡二叉树,所述平衡二叉树的节点用于存储数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值;
步骤2,将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数;
步骤3,按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
所述步骤2进一步包括:
步骤21,从所述数据流中取出当前到达的数据项,判断所述平衡二叉树是否已存储所述数据项的信息,如果是,则执行步骤22,否则,执行步骤23;
步骤22,更新所述平衡二叉树中存储的所述数据项对应的时间戳和计数器的值,按所述排序规则调整所述数据项对应节点在所述平衡二叉树中的位置;
步骤23,从所述平衡二叉树中确定一个节点,所述节点存储所述数据项对应的时间戳和计数器的值,按所述排序规则确定所述节点在所述平衡二叉树中的位置。
所述步骤23进一步包括:
步骤31,判断所述二叉树是否已经存满,如果是,则执行步骤32,否则,执行步骤33;
步骤32,从所述平衡二叉树中选择存储的计数器的值最小的节点,采用所述被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则调整所述节点在所述平衡二叉树中的位置;
步骤33,所述平衡二叉树增加一个新节点,所述新节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则将所述新节点插入到所述平衡二叉树中。
所述步骤22中更新所述平衡二叉树中存储的所述数据项对应计数器的值进一步为更新所述数据项对应的计数器的值为所述计数器的值同所述数据项的属性值的加和;
所述步骤32中采用所述被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值进一步为所述存储的时间戳最小的节点存储所述数据项对应的计数器的值为所述节点存储的原计数器的值同所述数据项的属性值的加和;
所述步骤33中所述新节点存储所述数据项对应的计数器的值进一步为所述新节点存储所述数据项对应的计数器的值为所述数据项的属性值。
所述步骤1还包括初始化系统时间戳;
所述步骤21还包括更新系统时间戳为所述系统时间戳同1的加和;
所述步骤22中更新所述平衡二叉树中存储的所述数据项对应的时间戳进一步为更新所述数据项对应的时间戳为所述系统时间戳;
所述步骤23中所述节点存储所述数据项对应的时间戳进一步为所述节点存储所述数据项对应的时间戳为所述系统时间戳。
所述平衡二叉树的节点的数量最多为Top-k项的参数k个;
所述步骤31中判断所述二叉树是否已经存满进一步为判断所述平衡二叉树中节点的数量是否小于k,如果是,则所述平衡二叉树没有存满,否则,所述平衡二叉树已经存满。
所述排序规则为,
所述平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
本发明还公开了一种数据流中Top-k项的挖掘系统,包括:
初始化模块,用于初始化平衡二叉树,所述平衡二叉树的节点用于存储所述数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值;
平衡二叉树模块,用于将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数;
结果输出模块,用于按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
所述平衡二叉树模块进一步包括:
判断模块,用于从所述数据流中取出当前到达的数据项,判断所述平衡二叉树是否已存储所述数据项的信息,如果是,则启动更新模块,否则,启动创建模块;
所述更新模块,用于更新所述平衡二叉树中存储的所述数据项对应的时间戳和计数器的值,按所述排序规则调整所述数据项对应节点在所述平衡二叉树中的位置;
所述创建模块,用于从所述平衡二叉树中确定一个节点,所述节点存储所述数据项对应的时间戳和计数器的值,按所述排序规则确定所述节点在所述平衡二叉树中的位置。
所述创建模块进一步用于判断所述二叉树是否已经存满,如果是,则从所述平衡二叉树中选择存储的计数器的值最小的节点,确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则调整所述节点在所述平衡二叉树中的位置,否则,在所述平衡二叉树中增加一个新节点,确定应用所述新节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则将所述新节点插入到所述平衡二叉树中。
所述更新模块在更新所述平衡二叉树中存储的所述数据项对应计数器的值时进一步用于更新所述数据项对应的计数器的值为所述计数器的值同所述数据项的属性值的加和;
所述创建模块在确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值进一步用于在所述存储的时间戳最小的节点中存储所述数据项对应的计数器的值为所述节点存储的原计数器的值同所述数据项的属性值的加和;
所述创建模块在确定应用所述新节点存储所述数据项对应的计数器的值进一步用于在所述新节点中存储所述数据项对应的计数器的值为所述数据项的属性值。
所述初始化模块还用初始化系统时间戳;
所述判断模块还用于更新系统时间戳为所述系统时间戳同1的加和;
所述更新模块在更新所述平衡二叉树中存储的所述数据项对应的时间戳时进一步用于更新所述数据项对应的时间戳为所述系统时间戳;
所述创建模块在所述节点中存储所述数据项对应的时间戳时进一步用于在所述节点中存储所述数据项对应的时间戳为所述系统时间戳。
所述平衡二叉树的节点的数量最多为Top-k项的参数k个;
所述创建模块在判断所述二叉树是否已经存满时进一步用于判断所述平衡二叉树中节点的数量是否小于k,如果是,则所述平衡二叉树没有存满,否则,所述平衡二叉树已经存满。
所述排序规则为,
所述平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
本发明的有益效果在于通过应用计数器累计叠加属性值,本发明更适用于加n操作;通过采用平衡二叉树存储数据项信息,降低空间复杂度和时间复杂度;通过引入时间戳,提高挖掘的准确性。
附图说明
图1是本发明数据流中Top-k项的挖掘方法的流程图;
图2是本发明方法的具体实施例流程图;
图3是平衡二叉树和哈希表的组织结构图;
图4是本发明数据流中Top-k项的挖掘系统的结构图;
图5是平衡二叉树模块的结构图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明的方法流程如图1所示,包括:
步骤S101,初始化平衡二叉树,平衡二叉树的节点用于存储数据项的信息,信息包括所述数据项对应的时间戳和计数器的值。
步骤S102,将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,排序规则以所述数据项对应的时间戳和计数器的值为参数。
步骤S103,按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
本发明方法具体实施例流程如图2所示。
步骤S201,初始化平衡二叉树,平衡二叉树表示为D,平衡二叉树的节点用于存储数据项的信息;初始化哈希表,哈希表表示为H,哈希表用于快速查找数据项是否在平衡二叉树中;初始化系统时间戳,系统时间戳表示为t,初始化时t=0。
Top-k项的参数为k。平衡二叉树中节点的个数最多为k个。由此,确定了本方法近似结果的最大误差为
Σ i ∈ S N i k ,
其中S为数据流中数据项的集合,Ni为数据项i的属性值。
数据项信息包括数据项对应的计数器的值和时间戳,以及数据项名称。
存储数据项的信息的节点在平衡二叉树中按排序规则排序,排序规则以数据项对应的时间戳和计数器的值为参数。具体规则如下:
平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
平衡二叉树和哈希表的组织结构如图3所示。
e表示数据项的名称,唯一标识一个数据项,如目的IP地址。
Ce表示数据项e对应的计数器的值,用于记录数据项的个数或属性值的累加和,如属性值为发向某目的IP地址的字节数。
Te表示数据项e对应的时间戳,记录值为数据项e最近一次更新时的时间戳,用于判断该数据项在近期的频繁程度。
Pleft表示该节点的左儿子节点。
Pright表示该节点的右儿子节点。
Pnext表示该节点在哈希表中相同哈希值链表上的下一个节点。
步骤S202,从数据流S中取出当前到达的数据项e,更新系统时间戳为t=t+1,使得每个数据项都对应一个唯一的时间戳。
步骤S203,判断数据项e是否在平衡二叉树中存储,如果是,执行步骤S204,否则,执行步骤S205。
判断方法为在哈希表中对数据项e的名称进行快速查找。
步骤S204,将数据项e的计数器器的值Ce更新为Ce=Ce+Ne,将数据项e的时间戳更新为Te=t,t为系统时间戳,执行步骤S208。
步骤S205,判断平衡二叉树是否已经存满,如果是,则执行步骤S207,否则,执行步骤S206。
判断方法为判断平衡二叉树中节点的数量是否小于k,如果是,则平衡二叉树没有存满,否则,所述平衡二叉树已经存满,其中k为Top-k项的参数。
步骤S206,平衡二叉树增加一个新节点,新节点存储数据项e对应的计数器的值为Ce=Ne,时间戳为Te=t,按排序规则将新节点插入到所述平衡二叉树中;并将数据项e加入到哈希表中,执行步骤S209。
步骤S207,从平衡二叉树中选择存储的计数器的值最小的节点,被选择节点中存储的时间戳最小的节点,该节点为平衡二叉树最左儿子节点,该节点对应数据项表示为ek,将ek从哈希表中删除,将数据项的名称ek修改为e,存储数据项e对应的计数器的值为Ce=Cek+Ne,时间戳为Te=t,将数据项e加入到哈希表中。
步骤S208,按排序规则调整该节点在平衡二叉树中的位置。
调整方法为从平衡二叉树中取出更新或替换的节点,然后将该节点重新插入到平衡二叉树中,以保证平衡二叉树中的数据项始终按排序规则进行排序。
步骤S209,判断是否需要输出结果,如果是执行步骤S210,否则,执行步骤S202。
步骤210,按后根顺序遍历平衡二叉树,输出降序排列的Top-k项的统计结果。
本发明的系统结构如图4所示,包括:
初始化模块401,用于初始化平衡二叉树,所述平衡二叉树的节点用于存储所述数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值。
初始化模块401还用初始化系统时间戳。
平衡二叉树模块402,用于将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数。
平衡二叉树模块402的结构如图5所示,包括:
判断模块501,用于从所述数据流中取出当前到达的数据项,判断所述平衡二叉树是否已存储所述数据项的信息,如果是,则启动更新模块502,否则,启动创建模块503。
判断模块501还用于更新系统时间戳为所述系统时间戳同1的加和。
更新模块502,用于更新所述平衡二叉树中存储的所述数据项对应的时间戳和计数器的值,按所述排序规则调整所述数据项对应节点在所述平衡二叉树中的位置。
更新模块502在更新所述平衡二叉树中存储的所述数据项对应计数器的值时进一步用于更新所述数据项对应的计数器的值为所述计数器的值同所述数据项的属性值的加和。
更新模块502在更新所述平衡二叉树中存储的所述数据项对应的时间戳时进一步用于更新所述数据项对应的时间戳为所述系统时间戳。
创建模块503,用于从所述平衡二叉树中确定一个节点,所述节点存储所述数据项对应的时间戳和计数器的值,按所述排序规则确定所述节点在所述平衡二叉树中的位置。
创建模块503进一步用于判断所述二叉树是否已经存满,如果是,则从所述平衡二叉树中选择存储的计数器的值最小的节点,确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则调整所述节点在所述平衡二叉树中的位置,否则,在所述平衡二叉树中增加一个新节点,确定应用所述新节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则将所述新节点插入到所述平衡二叉树中。
创建模块503在确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值进一步用于在所述存储的时间戳最小的节点中存储所述数据项对应的计数器的值为所述节点存储的原计数器的值同所述数据项的属性值的加和。
创建模块503在确定应用所述新节点存储所述数据项对应的计数器的值进一步用于在所述新节点中存储所述数据项对应的计数器的值为所述数据项的属性值。
创建模块503在所述节点中存储所述数据项对应的时间戳时进一步用于在所述节点中存储所述数据项对应的时间戳为所述系统时间戳。
平衡二叉树的节点的数量最多为Top-k项的参数k个;
创建模块503在判断所述二叉树是否已经存满时进一步用于判断所述平衡二叉树中节点的数量是否小于k,如果是,则所述平衡二叉树没有存满,否则,所述平衡二叉树已经存满。
所述排序规则为,
所述平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
结果输出模块403,用于按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (14)

1.一种数据流中Top-k项的挖掘方法,其特征在于,包括:
步骤1,初始化平衡二叉树,所述平衡二叉树的节点用于存储数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值;
步骤2,将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数;
步骤3,按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
2.如权利要求1所述的数据流中Top-k项的挖掘方法,其特征在于,所述步骤2进一步包括:
步骤21,从所述数据流中取出当前到达的数据项,判断所述平衡二叉树是否已存储所述数据项的信息,如果是,则执行步骤22,否则,执行步骤23;
步骤22,更新所述平衡二叉树中存储的所述数据项对应的时间戳和计数器的值,按所述排序规则调整所述数据项对应节点在所述平衡二叉树中的位置;
步骤23,从所述平衡二叉树中确定一个节点,所述节点存储所述数据项对应的时间戳和计数器的值,按所述排序规则确定所述节点在所述平衡二叉树中的位置。
3.如权利要求2所述的数据流中Top-k项的挖掘方法,其特征在于,
所述步骤23进一步包括:
步骤31,判断所述二叉树是否已经存满,如果是,则执行步骤32,否则,执行步骤33;
步骤32,从所述平衡二叉树中选择存储的计数器的值最小的节点,采用所述被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则调整所述节点在所述平衡二叉树中的位置;
步骤33,所述平衡二叉树增加一个新节点,所述新节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则将所述新节点插入到所述平衡二叉树中。
4.如权利要求3所述的数据流中Top-k项的挖掘方法,其特征在于,
所述步骤22中更新所述平衡二叉树中存储的所述数据项对应计数器的值进一步为更新所述数据项对应的计数器的值为所述计数器的值同所述数据项的属性值的加和;
所述步骤32中采用所述被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值进一步为所述存储的时间戳最小的节点存储所述数据项对应的计数器的值为所述节点存储的原计数器的值同所述数据项的属性值的加和;
所述步骤33中所述新节点存储所述数据项对应的计数器的值进一步为所述新节点存储所述数据项对应的计数器的值为所述数据项的属性值。
5.如权利要求2所述的数据流中Top-k项的挖掘方法,其特征在于,
所述步骤1还包括初始化系统时间戳;
所述步骤21还包括更新系统时间戳为所述系统时间戳同1的加和;
所述步骤22中更新所述平衡二叉树中存储的所述数据项对应的时间戳进一步为更新所述数据项对应的时间戳为所述系统时间戳;
所述步骤23中所述节点存储所述数据项对应的时间戳进一步为所述节点存储所述数据项对应的时间戳为所述系统时间戳。
6.如权利要求3所述的数据流中Top-k项的挖掘方法,其特征在于,
所述平衡二叉树的节点的数量最多为Top-k项的参数k个;
所述步骤31中判断所述二叉树是否已经存满进一步为判断所述平衡二叉树中节点的数量是否小于k,如果是,则所述平衡二叉树没有存满,否则,所述平衡二叉树已经存满。
7.如权利要求1所述的数据流中Top-k项的挖掘方法,其特征在于,
所述排序规则为,
所述平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
8.一种数据流中Top-k项的挖掘系统,其特征在于,包括:
初始化模块,用于初始化平衡二叉树,所述平衡二叉树的节点用于存储所述数据流中数据项的信息,所述信息包括所述数据项对应的时间戳和计数器的值;
平衡二叉树模块,用于将数据流中的数据项的信息存储到所述平衡二叉树节点中,所述节点在平衡二叉树中的位置依据排序规则,所述排序规则以所述数据项对应的时间戳和计数器的值为参数;
结果输出模块,用于按用户需求遍历所述平衡二叉树,输出Top-k项的统计结果。
9.如权利要求8所述的数据流中Top-k项的挖掘系统,其特征在于,
所述平衡二叉树模块进一步包括:
判断模块,用于从所述数据流中取出当前到达的数据项,判断所述平衡二叉树是否已存储所述数据项的信息,如果是,则启动更新模块,否则,启动创建模块;
所述更新模块,用于更新所述平衡二叉树中存储的所述数据项对应的时间戳和计数器的值,按所述排序规则调整所述数据项对应节点在所述平衡二叉树中的位置;
所述创建模块,用于从所述平衡二叉树中确定一个节点,所述节点存储所述数据项对应的时间戳和计数器的值,按所述排序规则确定所述节点在所述平衡二叉树中的位置。
10.如权利要求9所述的数据流中Top-k项的挖掘系统,其特征在于,
所述创建模块进一步用于判断所述二叉树是否已经存满,如果是,则从所述平衡二叉树中选择存储的计数器的值最小的节点,确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则调整所述节点在所述平衡二叉树中的位置,否则,在所述平衡二叉树中增加一个新节点,确定应用所述新节点存储所述数据项对应的计数器的值和时间戳,按所述排序规则将所述新节点插入到所述平衡二叉树中。
11.如权利要求10所述的数据流中Top-k项的挖掘系统,其特征在于,
所述更新模块在更新所述平衡二叉树中存储的所述数据项对应计数器的值时进一步用于更新所述数据项对应的计数器的值为所述计数器的值同所述数据项的属性值的加和;
所述创建模块在确定应用被选择节点中存储的时间戳最小的节点存储所述数据项对应的计数器的值进一步用于在所述存储的时间戳最小的节点中存储所述数据项对应的计数器的值为所述节点存储的原计数器的值同所述数据项的属性值的加和;
所述创建模块在确定应用所述新节点存储所述数据项对应的计数器的值进一步用于在所述新节点中存储所述数据项对应的计数器的值为所述数据项的属性值。
12.如权利要求9所述的数据流中Top-k项的挖掘系统,其特征在于,
所述初始化模块还用初始化系统时间戳;
所述判断模块还用于更新系统时间戳为所述系统时间戳同1的加和;
所述更新模块在更新所述平衡二叉树中存储的所述数据项对应的时间戳时进一步用于更新所述数据项对应的时间戳为所述系统时间戳;
所述创建模块在所述节点中存储所述数据项对应的时间戳时进一步用于在所述节点中存储所述数据项对应的时间戳为所述系统时间戳。
13.如权利要求10所述的数据流中Top-k项的挖掘系统,其特征在于,
所述平衡二叉树的节点的数量最多为Top-k项的参数k个;
所述创建模块在判断所述二叉树是否已经存满时进一步用于判断所述平衡二叉树中节点的数量是否小于k,如果是,则所述平衡二叉树没有存满,否则,所述平衡二叉树已经存满。
14.如权利要求8所述的数据流中Top-k项的挖掘系统,其特征在于,
所述排序规则为,
所述平衡二叉树中左儿子节点中数据项对应的计数器的值小于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中右儿子节点中数据项对应的计数器的值大于父亲节点中数据项对应的计数器的值;
所述平衡二叉树中儿子节点中数据项对应的计数器的值等于父亲节点中数据项对应的计数器的值时,左儿子节点中数据项对应的时间戳小于父亲节点中数据项对应的时间戳;右儿子节点中数据项对应的时间戳大于父亲节点中数据项对应的时间戳。
CN200810239188XA 2008-12-11 2008-12-11 一种数据流中Top-k项的挖掘方法及系统 Expired - Fee Related CN101419630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810239188XA CN101419630B (zh) 2008-12-11 2008-12-11 一种数据流中Top-k项的挖掘方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810239188XA CN101419630B (zh) 2008-12-11 2008-12-11 一种数据流中Top-k项的挖掘方法及系统

Publications (2)

Publication Number Publication Date
CN101419630A true CN101419630A (zh) 2009-04-29
CN101419630B CN101419630B (zh) 2011-03-23

Family

ID=40630419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810239188XA Expired - Fee Related CN101419630B (zh) 2008-12-11 2008-12-11 一种数据流中Top-k项的挖掘方法及系统

Country Status (1)

Country Link
CN (1) CN101419630B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521334A (zh) * 2011-12-07 2012-06-27 广东工业大学 一种基于分类特性和平衡二叉树的数据存储、查询方法
CN103116641A (zh) * 2013-02-21 2013-05-22 新浪网技术(中国)有限公司 获取排序的统计数据的方法及排序装置
WO2013167080A2 (zh) * 2013-01-24 2013-11-14 中兴通讯股份有限公司 一种存储信息的处理方法及装置
CN109815238A (zh) * 2019-01-18 2019-05-28 武汉轻工大学 用严格平衡二叉树实现数据库的动态添加方法及装置
CN110019657A (zh) * 2017-07-28 2019-07-16 北京搜狗科技发展有限公司 处理方法、装置和机器可读介质
CN110287240A (zh) * 2019-06-27 2019-09-27 浪潮软件集团有限公司 一种基于Top-K频繁项集的挖掘算法
CN111385056A (zh) * 2018-12-27 2020-07-07 中国电子科技集团公司第十五研究所 面向有效载荷数据的实时流处理方法
CN112417227A (zh) * 2021-01-21 2021-02-26 国能信控互联技术有限公司 一种基于哈希表和红黑树的实时数据存储与查询方法
CN115460111A (zh) * 2022-07-26 2022-12-09 西安电子科技大学 基于HINOC协议的Top-k流的统计方法及其系统
CN116737727A (zh) * 2023-08-15 2023-09-12 杭州卡方分布信息科技有限公司 基于树结构的股票交易数据列式存储方法及服务器

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521334A (zh) * 2011-12-07 2012-06-27 广东工业大学 一种基于分类特性和平衡二叉树的数据存储、查询方法
WO2013167080A2 (zh) * 2013-01-24 2013-11-14 中兴通讯股份有限公司 一种存储信息的处理方法及装置
WO2013167080A3 (zh) * 2013-01-24 2014-01-03 中兴通讯股份有限公司 一种存储信息的处理方法及装置
CN103116641A (zh) * 2013-02-21 2013-05-22 新浪网技术(中国)有限公司 获取排序的统计数据的方法及排序装置
CN103116641B (zh) * 2013-02-21 2016-05-11 新浪网技术(中国)有限公司 获取排序的统计数据的方法及排序装置
CN110019657A (zh) * 2017-07-28 2019-07-16 北京搜狗科技发展有限公司 处理方法、装置和机器可读介质
CN110019657B (zh) * 2017-07-28 2021-05-25 北京搜狗科技发展有限公司 处理方法、装置和机器可读介质
CN111385056A (zh) * 2018-12-27 2020-07-07 中国电子科技集团公司第十五研究所 面向有效载荷数据的实时流处理方法
CN109815238A (zh) * 2019-01-18 2019-05-28 武汉轻工大学 用严格平衡二叉树实现数据库的动态添加方法及装置
CN110287240A (zh) * 2019-06-27 2019-09-27 浪潮软件集团有限公司 一种基于Top-K频繁项集的挖掘算法
CN112417227A (zh) * 2021-01-21 2021-02-26 国能信控互联技术有限公司 一种基于哈希表和红黑树的实时数据存储与查询方法
CN115460111A (zh) * 2022-07-26 2022-12-09 西安电子科技大学 基于HINOC协议的Top-k流的统计方法及其系统
CN116737727A (zh) * 2023-08-15 2023-09-12 杭州卡方分布信息科技有限公司 基于树结构的股票交易数据列式存储方法及服务器
CN116737727B (zh) * 2023-08-15 2023-12-01 杭州卡方分布信息科技有限公司 基于树结构的股票交易数据列式存储方法及服务器

Also Published As

Publication number Publication date
CN101419630B (zh) 2011-03-23

Similar Documents

Publication Publication Date Title
CN101419630B (zh) 一种数据流中Top-k项的挖掘方法及系统
AU2012209157B2 (en) Formatting data by example
US8423616B2 (en) Identifying and correlating electronic mail messages
US20040111668A1 (en) Annotation validity using partial checksums
CN109033186A (zh) 数据一致性检测方法、装置、存储介质及电子设备
US10089334B2 (en) Grouping of database objects
US20060248128A1 (en) Efficient mechanism for tracking data changes in a database system
KR20100115818A (ko) 스프레드시트 셀들을 위한 동적 수식들
CN102164186A (zh) 一种实现云搜索服务的方法及系统
CN107040576A (zh) 信息推送方法及装置、通讯系统
CN111190814A (zh) 软件测试用例的生成方法、装置、存储介质及终端
CN101122978A (zh) 合约风险转嫁系统及方法
WO2019195482A1 (en) Database lock
CN102546205A (zh) 一种故障关系生成及故障确定方法及装置
CN103593345A (zh) 网页流程图编辑方法及系统
CN109918439A (zh) 数据同步方法及其应用的环路检测方法和相关装置
CN112651840B (zh) 基于区块链和数字金融的业务数据日志处理方法及系统
CN114707953A (zh) 一种主数据全生命周期管理方法、系统、引擎及存储介质
CN113434745A (zh) 基于聚类算法的用户行为分析方法、装置、设备及介质
CN107609008A (zh) 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法
CN112579605B (zh) 一种数据存储方法、装置、存储介质及服务器
US20240241869A1 (en) Data ingestion and cleansing tool
CN109145081A (zh) 一种财务数据检索方法和系统
US11947973B1 (en) Systems and methods for auditing data processing operations
CN111311329B (zh) 标签数据获取方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: YANTAI ZHONGKE NETWORK TECHNOLOGY INSTITUTE

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20140411

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 264003 YANTAI, SHANDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140411

Address after: 264003, Blue Ocean International Software Park, No. 1 Blue Sea Road, Yantai, Shandong

Patentee after: Yantai Zhong Ke network technical institute

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110323

Termination date: 20201211