CN104657450B - 面向大数据环境的概要信息动态构建与查询方法及装置 - Google Patents
面向大数据环境的概要信息动态构建与查询方法及装置 Download PDFInfo
- Publication number
- CN104657450B CN104657450B CN201510061345.2A CN201510061345A CN104657450B CN 104657450 B CN104657450 B CN 104657450B CN 201510061345 A CN201510061345 A CN 201510061345A CN 104657450 B CN104657450 B CN 104657450B
- Authority
- CN
- China
- Prior art keywords
- data
- count
- sketch
- value
- min sketch
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000010276 construction Methods 0.000 title claims abstract description 12
- 241001269238 Data Species 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100001678 Emericella variicolor andM gene Proteins 0.000 description 1
- 241000545442 Radix Species 0.000 description 1
- 238000002679 ablation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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
- G06F16/2228—Indexing 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种面向大数据环境的概要信息动态构建与查询方法及装置。该方法以Count‑Min Sketch方法为基础,采用数据流的第一范数描述数据规模,采用数据的基数值描述数据的分布情况;首先为流式大数据分配一较小空间的Count‑min Sketch结构,随着数据不断加载,当Count‑min Sketch结构记录的数据项个数达到阈值且数值空间基数达到阈值以后,建立新的Count‑min Sketch结构,用以接收后续到来的新数据。本发明能够根据数据量和数值基数自动建立新的Sketch结构,以较高精度统计数据,有效支持流式大数据的高精度的实时统计和分析。
Description
技术领域
本发明属于信息技术领域,具体涉及一种面向大数据环境的概要信息动态构建与查询方法及装置。
背景技术
流式大数据是指以数据流的方式高速到达并实时写入到存储管理系统中的数据源,也称为FastData。流式大数据不但具有高吞吐率、体量巨大的特点,而且数据规模与数据值范围往往不可预知。例如海量微博数据,实时的交易日志,门户网站的click stream等。有效处理并分析上述数据,可以充分挖掘隐藏在海量数据源中的有价值信息,统计数据的规律,为决策者提供重要的决策支持依据。
但是针对流式大数据,传统的统计方法与系统已经不再适用。与本发明相类似的技术领域是大数据存储管理技术与在线流数据处理技术。
传统的数据库以及基于Hadoop的相关大数据存储管理系统与方法,是基于批处理模式实现的,批处理模式是先存储后处理,无法应对流式大数据高速达到的应用特征。尽管Storm,Spark Streaming等系统基于内存计算可以提高对于高速到达数据的响应时间,但是由于二者是精确计算方法,即,需要维护与原始数据等量的内存空间来支持数据的统计查询,因此存储的数据量有限,很难适应流式大数据海量数据的规模特征。
在线流数据处理技术可以有效处理按时间次序不断到达的有序数据序列。流数据的研究核心就是设计高效的单遍数据集的方法,在一个远小于数据规模的内存空间里不断更新压缩后的数据结构,这一结构成为数据的概要信息(Sketching)。目前针对流数据典型的概要信息构建方法是基于Hash技术,构建以位为单位的概要数据结构。常用于估计数据集的二阶矩大小、估计数据集自连接的大小、获得数据集中频繁项列表等。典型的概要数据技术包括:Count Sketch(M.Charikar,K.Chen,and M.Farach-Colton.Finding frequentitems in data streams.In International Colloquium on Automata,Languages andProgramming(ICALP),2002.)、Count-Min Sketch(G.Cormode,S.Muthukrishnan.Animproved data stream summary:the count-min sketch and itsapplications.Journal of Algorithms.2005,vol.55,no.1.pp.58-75.)、AMS Sketch(N.Alon,Y.Matias,andM.Szegedy.Thespace complexity ofapproximatingthefrequencymoments.In Proceedings of the Twenty-Eighth Annual ACM Symposium on theTheory of Computing,pages 20–29,1996.Journal version in Journal of Computerand System Sciences,58:137–147,1999.)等;用来查找基数的Sketch结构有LinearSpace Solution(G.M.Lee,H.Liu,Y.Yoon,andY.Zhang.Improving sketchreconstruction accuracy using linear least squares method.In InternetMeasurement Conference(IMC),2005.)、Flajolet-Martin Sketches(K.Y.Whang,B.T.Vander-Zanden,and H.M.Taylor.A linear-time probabilistic countingalgorithm for database applications.ACM Transactions on Database Systems,15(2):208,1990.)、Distinct Sampling(P.Gibbons.Distinct sampling for highly-accurate answers to distinct values queries and event reports.InInternational Conference on Very Large Data Bases,2001.P.Gibbons andS.Tirthapura.Estimating simple functions on the union of data streams.In ACMSymposium on Parallel Algorithms and Architectures(SPAA),2001.)等,此外还有基于sketch方法建立采样、小波、柱状图模型等方法。概要数据结构一般通过常驻内存方式,可以快速的支持针对任意原始数据的查询与处理,通常的概要数据可以提供限定误差的统计与分析计算,广泛应用于流数据的统计与分析中。但是由于流式大数据数据规模不可预知,数据的值域空间无法预先获得,导致传统的概要数据方法无法有效应对数据规模不断增长的流式大数据规模。
本发明以Count-Min Sketching为基础,进一步提出一种适应流式大数据应用特点动态增长的概要信息构建和对应的统计查询过程。Count-Min Sketch是流数据统计中通常采用的技术,基于随机映射,使用Hash函数并在内存中维护一个二维计数数组来追踪数据的统计值,以多个计数器中的最小值作为查询返回值,从而解决了Sketch中查询准确性的问题,并以1-σ的概率保证空间代价为Count-Min Sketch具有亚线性空间数据结构模型,具有构建方法简单、时空复杂度低等优点,因而得到了广泛的关注和使用。近年已经涌现大量的针对Count-Min查询精度优化技术与成果。Gene Moo Lee等提出lsquare方法(G.M.Lee,H.Liu,Y.Yoon,andY.Zhang.Improving sketch reconstructionaccuracy using linear least squares method.In Internet Measurement Conference(IMC),2005.),利用最小二乘法来寻找最优解,提高Count-Min Sketching的估算精度。Deng和Rafiei在2007年提出CMM Sketch(Count-Mean-Min Sketch)(Fan Deng and DavoodRafiei.2007.Nnew estimation algorithms for streaming data:count-min can domore.),CMM利用均值来代替原始Count-Min Sketch统计过程中的最小值,可以在无偏统计中去掉噪声,提高在大数据规模下的统计精度。目前Count-Min Sketch技术已经广泛应用于DDoS攻击检测、海量自然语言处理,多维流数据统计查询等领域。
综上所述,目前基于Hadoop的数据管理和分析技术,采用离线批处理模式,无法适应流式大数据高速达到、实时统计的计算需求;Storm Spark Streaming等基于内存计算的数据分析系统,由于采用精确的计算方法,存储数据规模有限,无法海量数据的查询与处理;以Count-Min Sketch为代表的,基于概要的数据近似查询方法,都面临着“过饱和”的问题。以Count-Min Sketch为例,需要预分配d×w(d为哈希函数的个数,w为二维数组的宽度)空间单位的计数器,才能保证较高查询的准确率。如分配过大的空间,在流式大数据初始应用阶段浪费大量的内存空间;如果分配的空间过小,则随着大数据的不断写入,Count-MinSketch中hash冲突率增高,则计算的准确度会迅速降低。目前流数据中采用的方法是仅维持一段时间内的数据,当超过时间范围,则丢弃掉历史数据,这一方法称为滑动窗口技术。这一方法仅能维持针对窗口内的数据的查询,无法针对超过滑动窗口的数据进行统计。
发明内容
针对流式大数据高速达到、规模与数值空间未知以及高实时统计的应用需求,本发明以Count-Min Sketch为基础,提出了一种动态扩展概要信息构建方法—DynamicCount-Min Sketch(DCM)方法,以及对应的统计查询方法。随着数据规模不断膨胀,或数值空间分布不均匀时,导致统计误差不满足计算要求时,本发明能够根据数据量和数值基数,自动建立新的Sketch结构,以较高精度统计数据,有效支持流式大数据的高精度的实时统计和分析。
为实现上述目的,本发明采用如下技术方案:
一种面向大数据环境的概要信息动态构建方法,其步骤包括:
1)以Count-Min Sketch方法为基础,采用数据流的第一范数描述数据规模,采用数据的基数值描述数据的分布情况;
2)为流式大数据分配一较小空间的Count-min Sketch结构(比如Count-minSketch的宽度w可取0.5×e/ε,即取原来Count-min Sketch的五分之一),随着数据不断加载,当Count-min Sketch结构记录的数据项个数达到阈值且数值空间基数达到阈值以后,建立新的Count-min Sketch结构,用以接收后续到来的新数据。
进一步地,为每个Count-Min Sketch结构构建Bloomfilter,用于统计每个Count-Min Sketch内部数据的存在性,每个Count-Min Sketch接收的数据同时写入到Bloomfilter中,并进行d次hash运算,生成一个d维的hash数组。
进一步地,进行数据写入的具体流程为:设到达的数据项为<key,Value>,当有新数据到达时,首先把key写入全局基数估算器中,并实时计算当前的数据的基数Di,然后统计当前Count-Min Sketch所统计数据的第一范数的值||a||1;
如果||a||1<N,则把key加入到Bloomfilter中,并根据Count-Min Sketch更新原理,把CM[j][hashj(key)]位置的计数器加上value,其中j为二维计数数组的第j行,N为预先设定的所要存储数据的第一范数;
如果||a||1>=N,则判断Di-Di-1是否大于r×w,如果Di-Di-1<r×w则继续写入,否则创建新的Bloomfilter和Count-Min Sketch并接收新写入的数据;其中r是预先设定的比率值,根据hash函数的碰撞概率计算获得;w为二维计数数组的宽度;Di-1表示到第i-1个Count-MinSketch为止的全部数据的基数估算值。
进一步地,采用Hyperloglog算法获得数据的基数值。
一种面向大数据环境的数据查询方法,其步骤包括:
1)采用上述方法建立Count-Min Sketch结构,并写入和更新数据;
2)查询数据项<key,value>时,首先利用Bloomfilter找到第一个含有关键字key的Count-Min Sketch,记录所得估计值,然后判断这个Count-Min Sketch的基数,若基数<=r×w,停止查询;若基数>r×w,继续利用Bloomfilter查询余下的Count-Min Sketch是否包含关键字为key的数据项,并记录估计值,直到时查完所有的Count-Min Sketch为止;
3)将所有Count-Min Sketch的估计值相加,得到的总和作为此数据数的频数的估计值,并估计误差。
一种面向大数据环境的概要信息动态构建装置,包括:全局基数统计器,Bloomfilter,Count-Min Sketch和控制模块;全局基数统计器用于计算数据的基数值;Bloomfilter用来统计每个Count-Min Sketch内部数据的存在性,每个Count-Min Sketch接收的数据同时写入到Bloomfilter中;控制模块监控Count-Min Sketch记录的数据项个数和数据的基数,当Count-MinSketch记录的数据项个数达到阈值且数值空间基数达到阈值以后,建立新的Count-Min Sketch结构,用以接收后续到来的新数据。
进一步地,所述装置还包括查询模块,用于利用Count-Min Sketch估算基本原理和建立的Bloomfilter结构,对所有历史数据给出统计结果,实现点查询、区间查询或者自交查询。
本发明的技术关键点在于:
1、设计了双参数控制的概要数据动态增长方法。双参数包括:利用数据流的第一范数描述数据规模,利用基数估算器刻画当前数据分布情况。这两个方面的参数有效描述了流式大数据的应用特征,在本发明中进一步给出了上述参数的在具体计算过程和方法。
2、设计了一种有效加速多种概要数据共存时的查询方法。本发明为每个基础的Count-MinSketch引入Bloomfilter结构,在查询过程中通过Bloomfilter首先判断数据是否存在于本Count-Min Sketch中,对于存在的数据进一步通过Count-Min Sketch进行具体的计算,提高概要数据的估算效率。
与现有技术相比,本发明的有益效果如下:
1、在流式大数据达到以后,根据实时统计的结果,可以增量的分配内存空间,实现了概要数据动态管理方法,同时不影响基础的Count-Min Sketch概要数据结构以及估算算法条件下,有效处理了流式大数据不断膨胀的数据规模和数据分布不均匀等查询情况;
2、在不影响计算误差的条件下,通过利用基数估算参数,描述Count-Min Sketch数据的分布不均匀情况,有效处理了数据倾斜对于Count-Min Sketch概要数据空间分配、计算误差等反面带来的影响。在本发明提出的DCM中,利用基数可以明显提高Count-MinSketch空间的利用率,即利用Count-Min Sketch可以在保证误差的条件下,存储更多的数据量;
3.提出了与DCM(Dynamic Count-Min Sketch)相对应的数据写入,概要数据更新,以及数据查询过程。利用本方法同时仅需写入当时活跃的概要数据结构,消耗O(1)时间复杂度,在查询时,利用已有的Count-Min Sketch估算基本原理,对所有历史数据在一定置信区间内给出限定误差的统计结果,有效处理了流式大数据高速到达和实时查询的应用需求。
附图说明
图1是DCM总体结构图。
图2是数据写入流程图。
图3是数据查询示意图。
图4是数据查询流程图。
图5是Count-Min Sketch和DCM构建过程和所占空间示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明涉及如下参数,符号表示与具体含义说明如表1所示:
表1.符号表示与具体含义说明
本发明设计的DCM sketch的基本思想是:预先分配一个较小空间的Count-MinSketch,随着数据不断加载,当初始的Count-Min Sketch所记录的数据项个数达到阈值且数值空间基数达到阈值r×w以后(r是预先设定的比率值,此时Count-Min Sketch内几乎没有“碰撞”,w为二维计数数组的宽度),另外开辟一个新的Count-Min Sketch,接收后续到来的新数据,而原始的Count-Min Sketch不再接收新数据(所存数据基数为r×w的Count-MinSketch除外),仅作为查询使用。同时为每个Count-Min Sketch构建Bloomfilter,标记本概要数据内存在的数据项。图1给出了DCM的基本原理与结构示意图。下面具体说明。
1.DCM整体设计
Count-Min Sketch是一种限定误差的概要设计方法,在概率参数为δ、误差参数为ε条件下,有以下不等式保证最大单点误差不超过ε||a||1:
其中:ai为待查询的数据的真值,是由Count-Min Sketch所得ai的估计值,||a||1为Count-Min Sketch所统计数据的第一范数(即数据项个数);e为自然对数的底数,d为Count-MinSketch结构中hash数组的个数。
由不等式得出,Count-Min Sketch的误差与||a||1相关,即与Count-Min Sketch中记录的数据项的总数目相关。在具体应用中,另外一个影响Count-Min Sketch估算误差的因素是当前数据的基数值。Count-Min Sketch可以针对数据倾斜(data skew)情况下的数据分布获得较高精度的统计值,即当部分数据项的数值较高,而部分数据值较少时,可以有效降低冲突概率,提高统计精度。例如在一种极端情况下,只少数几个key(或一个key)对应数据项频繁到达时,总和超过百万的规模,||a||1>1,000,000,根据传统的Count-MinSketch计算公式,在置信区间为95%,单点误差不超过10,000,即ε<1%时,根据Count-MinSketch估算理论,w=e/ε,d=log1/δ,则所占空间为w×d=272×4.3=1176,显然这是不必要的,因为仅仅几个hash值(或一个hash值)对应的基数单位是有意义的,其他空间都是浪费的。因此本发明采用基数值作为当前数据分布均匀程度的描述参数。
DCM由三个基本部分构成,包括:全局基数统计器,Bloomfilter以及基本的Count-MinSketch。全局基数统计器是采用Hyperloglog基数算法,用以计算获得数据的基数值,Hyperloglog算法利用较低的内存可以针对大规模数据进行基数估算。Bloomfilter用来统计每个Count-Min Sketch内部数据的存在性,每个Count-Min Sketch接收的数据同时写入到Bloomfilter中,然后进行d次hash运算,生成一个d维的hash数组;只有当||a||1>=N并且Di-Di-1>=r×w时,重新创建新Count-Min Sketch和对应的Bloomfilter,其中N为预先设定的所要存储数据项个数的阈值。
2.DCM的工作原理
DCM首先建立全局的基数估算器,长度为m的Bloomfilter,和Count-Min Sketch结构。
设到达的数据项为:<key,value>。当有新数据到达时,首先把key写入全局基数估算器中,并实时计算当前的基数规模,设为Di,然后统计当前的Count-Min Sketch的第一范数的值,设为||a||1,如果||a||1<N,则把key加入到Bloomfilter中,并根据Count-MinSketch更新原理,把CM[j][hashj(key)]位置的计数器加上value,其中j为二维数组的第j行)。如果||a||1>=N,进一步判断Di-Di-1是否大于r×w,如果Di-Di-1<r×w则继续写入,否则创建新的Bloomfilter和Count-Min Sketch并接收新写入的数据。其中:r是预先设定的比率值,根据hash函数的碰撞概率计算获得,一般设置为0.3左右,Di-1表示到第i-1个Count-Min Sketch为止的全部数据的基数估算值。具体流程图如图2所示。
当进行数据查询时,例如,查询关键字key=k对应的计数的值,首先按顺序依次访问每组的Bloomfilter,判断key是否属于相应的Bloomfilter中,如果存在,则进一步利用Count-MinSketch基本估算公式获得具体的估算结果值,最后将所有估计值相加之和作为key的估计值(如果k属于基数小于r×w的Count-Min Sketch,则用查询到的值作为最终估计值)。其他估算方法,如区间查询,self-join等可以仿照Count-Min Sketch基本估算公式获得,查询数据的查询过程如图3和图4所示,图4中n1表示开辟的Count-Min Sketch个数。每个Count-Min Sketch的估算结果设为Ek,其中k=1,2,…,n,Ek通过如下的估算公式进行计算:
(1)点查询(point query):查询满足关键字为key的数据项的统计值,即Ek=min(CMk[j][hashj(key)]),其中j=1,2,…d。
(2)区间查询(range-query):查询满足key1和key2区间的数据项统计值,即其中fi是区间[key1,key2]中数据项ai在第k个Count-Min Sketch中的统计值。
(3)自交查询(self-join):查询满足自连接条件的数据项的统计值,即Ek=∑i∈ Dfi 2,其中fi是数据项ai在第k个Count-Min Sketch中的统计值,D是关键字的值域。
则,DCM整体的计算结果为表示为Estimate(k),
3.实验数据与结论
根据Count-Min Sketch原理,在保持最大单点误差不超过εN条件下,所需要的总存储空间为w×d,其中w=e/ε,d为hash函数的个数。DCM根据数据规模与分布动态构建Count-Min Sketch,所需空间大小为上述DCM各部分之和。
1)在基数占总数据规模较小时,DCM所使用的内存明显优于传统的CM。
为了叙述简单,假设数据规模(数据项个数)N=1000000,基数为1000(数据项key不同的值)。跟据公式建立Count-Min Sketch,如果要求最大误差为1000,则宽度为w1应取20000。DCM自动构建Count-Min Sketch,如果取DCM中每个单元中Count-Min Sketch宽度w2=4,000,此时误差近似相等,各自所占用空间如表2所示:
表2.占用空间列表
depth=5,width=1000 | CM所占空间 | DCM所占空间 |
所占空间计算方法 | w×d=20,000×5=100,000 | w×d=4000×5=20000 |
2)在大数据流式到达时,DCM比传统的Count-Min Sketch明显节约内存空间。
在数据统计过程中,因为传统Count-Min Sketch构建只考虑数据第一范数,往往开辟空间过大,造成空间浪费。而DCM根据数据规模,动态构建Count-Min Sketch。在大数据流式写入过程中,Count-Min Sketch和DCM的所需存储空间如图5所示。图中,用平行于横轴并穿过坐标(t4,D4)点左下部分可以表示传统Count-Min Sketch所占空间,DCM所开辟的空间用递增的阶梯状表示(图中阴影部分),二者之差是DCM在大数据流式达到过程中可以节省的内存空间(图中斜线标记部分)。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (8)
1.一种面向大数据环境的概要信息动态构建方法,其步骤包括:
1)以Count-Min Sketch方法为基础,采用数据流的第一范数描述数据规模,采用数据的基数值描述数据的分布情况;
2)为流式大数据分配一较小空间的Count-Min Sketch结构,随着数据不断加载,当初始的Count-Min Sketch记录的数据项个数达到阈值且数值空间基数达到阈值以后,建立新的Count-Min Sketch结构,用以接收后续到来的新数据;为每个Count-Min Sketch结构构建Bloomfilter,用于统计每个Count-Min Sketch内部数据的存在性,每个Count-MinSketch接收的数据同时写入到Bloomfilter中;
进行数据写入的具体流程为:设到达的数据项为<key,value>,当有新数据到达时,首先把key写入全局基数估算器中,并实时计算当前的基数规模Di,然后统计当前Count-MinSketch的第一范数的值||a||1;
如果||a||1<N,则把key加入到Bloomfilter中,并根据Count-Min Sketch更新原理,把CM[j][hashj(key)]位置的计数器加上value,其中j为二维数组的第j行,N为预先设定的所要存储的数据的第一范数;
如果||a||1>=N,则判断Di-Di-1是否大于r×w,如果Di-Di-1<r×w则继续写入,否则创建新的Bloomfilter和Count-Min Sketch并接收新写入的数据;其中r是预先设定的比率值,根据hash函数的碰撞概率计算获得;w为二维计数数组的宽度;Di-1表示到第i-1个Count-Min Sketch为止的全部数据的基数估算值。
2.如权利要求1所述的方法,其特征在于:所述Count-Min Sketch结构采用限定误差的概要设计方法,在概率参数为δ,误差参数为ε条件下,可容忍的最大单点误差满足如下不等式:
其中:ai为待查询的变量,是由Count-Min Sketch所得ai的估计值,||a||1为Count-Min Sketch统计获得的数据的第一范数,即当前Count-Min Sketch中频数的总和,e为自然对数的底数,d为Count-Min Sketch结构中hash数组的个数。
3.如权利要求1所述的方法,其特征在于:采用Hyperloglog算法获得数据的基数值。
4.一种面向大数据环境的数据查询方法,其步骤包括:
1)利用权利要求1~3中任一项所述方法建立Count-Min Sketch结构,并在Count-MinSketch结构中写入和更新数据;
2)查询数据项<key,value>时,首先利用Bloomfilter找到第一个含有关键字key的Count-Min Sketch,记录所得估计值,然后判断这个Count-Min Sketch的基数,若基数<=r×w,停止查询;若基数>r×w,继续利用Bloomfilter查询余下的Count-Min Sketch是否包含关键字为key的数据项,并记录估计值,直到查完所有的Count-Min Sketch为止;
3)将所有Count-Min Sketch的估计值相加,得到的总和作为此数据数的频数的估计值,并估计误差。
5.如权利要求4所述的方法,其特征在于:进行点查询,即查询关键字key对应的计数的值的方法是:首先按顺序依次访问各Bloomfilter,判断key是否存在于相应的Bloomfilter中,如果存在,则进一步利用Count-Min Sketch基本估算公式获得具体的估算结果值,最后将所有估计值相加之和作为key的估计值;如果key属于基数小于r×w的Count-MinSketch,则用查询到的值作为最终估计值。
6.如权利要求5所述的方法,其特征在于,设每个Count-Min Sketch的估算结果为Ek,其中k=1,2,…,n,其中n表示共有n个Count-Min Sketch结构,则Ek的估算公式为:
a)点查询,即查询满足关键字为key的数据项的统计值:
Ek=min(CMk[j][hashj(key)]),其中j=1,2,…d;d为Count-Min Sketch结构中hash数组的个数;
b)区间查询,即查询满足key1和key2区间的数据项统计值:
其中fi是区间[key1,key2]中数据项xi在第i个Count-MinSketch中的统计值;
c)自交查询,即查询满足自连接条件的数据项的统计值:
Ek=∑i∈Dfi 2,其中fi是数据项xi在第i个Count-Min Sketch中的统计值,D是关键字的值域。
7.一种采用权利要求1所述方法的面向大数据环境的概要信息动态构建装置,其特征在于,包括全局基数统计器,Bloomfilter,Count-Min Sketch和控制模块;全局基数统计器用于计算数据的基数值;Bloomfilter用来统计每个Count-Min Sketch内部数据的存在性,每个Count-Min Sketch接收的数据同时写入到Bloomfilter中;控制模块监控Count-MinSketch记录的数据项个数和数据的基数,当Count-Min Sketch记录的数据项个数达到阈值且数值空间基数达到阈值以后,建立新的Count-Min Sketch结构,用以接收后续到来的新数据。
8.如权利要求7所述的装置,其特征在于:还包括查询模块,用于利用Count-MinSketch估算基本原理和建立的Bloomfilter结构,对所有历史数据给出统计结果,实现点查询、区间查询或者自交查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061345.2A CN104657450B (zh) | 2015-02-05 | 2015-02-05 | 面向大数据环境的概要信息动态构建与查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510061345.2A CN104657450B (zh) | 2015-02-05 | 2015-02-05 | 面向大数据环境的概要信息动态构建与查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657450A CN104657450A (zh) | 2015-05-27 |
CN104657450B true CN104657450B (zh) | 2018-09-25 |
Family
ID=53248578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510061345.2A Expired - Fee Related CN104657450B (zh) | 2015-02-05 | 2015-02-05 | 面向大数据环境的概要信息动态构建与查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657450B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304404B (zh) * | 2017-01-12 | 2022-02-11 | 北京大学 | 一种基于改进的Sketch结构的数据频率估计方法 |
US10467433B2 (en) * | 2017-03-17 | 2019-11-05 | Mediasift Limited | Event processing system |
CN107193862A (zh) * | 2017-04-01 | 2017-09-22 | 国家计算机网络与信息安全管理中心 | 一种基于Spark Streaming的方差优化直方图构建方法及装置 |
CN107391560B (zh) * | 2017-06-08 | 2022-12-30 | 国家计算机网络与信息安全管理中心 | 一种方差优化直方图的构建方法和装置 |
CN108388603B (zh) * | 2018-02-05 | 2022-05-17 | 中国科学院信息工程研究所 | 基于Spark框架的分布式概要数据结构的构建方法及查询方法 |
CN110768856B (zh) * | 2018-07-27 | 2022-01-14 | 华为技术有限公司 | 网络流测量的方法、网络测量设备以及控制面设备 |
CN109542939B (zh) * | 2018-11-21 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种基于纠删码的count-min摘要方法及装置 |
CN110049061B (zh) * | 2019-04-29 | 2021-08-17 | 南京邮电大学 | 高速网络上轻量级DDoS攻击检测装置及检测方法 |
CN110535825B (zh) * | 2019-07-16 | 2020-08-14 | 北京大学 | 一种特征网络流的数据识别方法 |
CN112632118A (zh) * | 2019-09-24 | 2021-04-09 | 华为技术有限公司 | 查询数据的方法、装置、计算设备和存储介质 |
CN111694860A (zh) * | 2020-04-28 | 2020-09-22 | 国家计算机网络与信息安全管理中心 | 安全检测的时序数据实时异常发现方法及电子装置 |
CN111970176B (zh) * | 2020-10-21 | 2021-01-15 | 中国人民解放军国防科技大学 | 用于IPv4和IPv6双栈网络的数据摘要方法及设备 |
CN112787950B (zh) * | 2021-01-28 | 2022-07-12 | 西安交通大学 | 一种公平网络流量管控方法及装置 |
CN114625760B (zh) * | 2022-02-15 | 2024-09-03 | 北京大学 | 基于连接简图的数据库连接基数估计方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456069A (zh) * | 2011-08-03 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 一种数据流增量聚集统计、查询方法及查询系统 |
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
CN103647670A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于sketch的数据中心网络流量分析方法 |
WO2014200991A1 (en) * | 2013-06-10 | 2014-12-18 | University Of Virginia Patent Foundation | System, method and computer readable medium for rapid dna identification |
-
2015
- 2015-02-05 CN CN201510061345.2A patent/CN104657450B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456069A (zh) * | 2011-08-03 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 一种数据流增量聚集统计、查询方法及查询系统 |
WO2014200991A1 (en) * | 2013-06-10 | 2014-12-18 | University Of Virginia Patent Foundation | System, method and computer readable medium for rapid dna identification |
CN103544258A (zh) * | 2013-10-16 | 2014-01-29 | 国家计算机网络与信息安全管理中心 | 一种大数据多区间查询条件下的基数估计方法及装置 |
CN103647670A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于sketch的数据中心网络流量分析方法 |
Non-Patent Citations (1)
Title |
---|
"基于Sketch的数据流频繁项集挖掘研究";豆飞飞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130315;第13-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104657450A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657450B (zh) | 面向大数据环境的概要信息动态构建与查询方法及装置 | |
Wang et al. | A survey of queries over uncertain data | |
CN106709001A (zh) | 一种面向流式大数据的基数估计方法 | |
Dai et al. | IOGP: An incremental online graph partitioning algorithm for distributed graph databases | |
Li et al. | Parallelizing skyline queries over uncertain data streams with sliding window partitioning and grid index | |
El Sibai et al. | Sampling algorithms in data stream environments | |
Park et al. | Cell trees: An adaptive synopsis structure for clustering multi-dimensional on-line data streams | |
CN104951503A (zh) | 一种新鲜度敏感的大数据概要信息维护及聚合值查询方法 | |
US9454570B2 (en) | Dynamic database indexing | |
Cheng et al. | Evaluation of probabilistic queries over imprecise data in constantly-evolving environments | |
Sun et al. | Spatio-temporal join selectivity | |
Li et al. | Efficient skyline computation over distributed interval data | |
Huang | Indexing and querying moving objects with uncertain speed and direction in spatiotemporal databases | |
Svynchuk et al. | Modification of Query Processing Methods in Distributed Databases Using Fractal Trees. | |
Wang et al. | AQP++: a hybrid approximate query processing framework for generalized aggregation queries | |
Zhao | Complex event processing under constrained resources by state-based load shedding | |
Kumar et al. | Cache based query optimization approach in distributed database | |
Tao et al. | Performance analysis of R*-trees with arbitrary node extents | |
Shein et al. | Multi-query optimization of incrementally evaluated sliding-window aggregations | |
Xiang et al. | A data stream outlier detection algorithm based on grid | |
Murugan et al. | A time efficient and accurate retrieval of range aggregate queries using fuzzy clustering means (FCM) approach | |
Wang et al. | Skew‐aware online aggregation over joins through guided sampling | |
Wu et al. | Towards Adaptive Continuous Trajectory Clustering Over a Distributed Web Data Stream | |
Liu et al. | Design of Management Platform Architecture and Key Algorithm for Massive Monitoring Big Data | |
Zhang et al. | An agile sample maintenance approach for agile analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180925 |
|
CF01 | Termination of patent right due to non-payment of annual fee |