一种面向分位数查询的概要数据动态分裂与维护方法

文档序号:9326892阅读:712来源:国知局
一种面向分位数查询的概要数据动态分裂与维护方法
【技术领域】
[0001] 本发明属于信息技术领域,提出一种以q-digit为基础的概要数据动态分裂以及 维护方法,该方法包括概要数据结构的分裂点选择、动态分裂算法、以及分裂后误差估算方 法等。该方法可用于分布式环境下q-digit概要数据的动态管理,有效支持大数据环境下 概要数据的维护与管理,有效支持分位数查询与计算。
【背景技术】
[0002] 在流式大数据环境下,一类重要的查询方法是在流式数据上的进行分位数 (Quantile)查询,通常表示为Φ-分位数查询,其物理意义是对数据进行排序之后返回第 ΓφΝ?项,简称分位数查询。分位数Φ的取值范围是0到1之间的一个实数,即:(0, 1]。1-分 位数(Φ = 1)就是查询数据集中的最大值,0.5-分位数(Φ = 1)则是数据集中的中值, 又称作中位数。例如:给定流式数据集D = {6, 1,8, 7, 9, 0, 4, 2, 5, 3},经过排序以后得IV = {0, 1,2, 3, 4, 5, 6, 7, 8, 9},0. 1-分位数查询返回0 ;0. 5-分位数查询返回4,1-分位数的 查询返回最大值9。
[0003] 在流数据环境下,由于无法获取全部数据,因此无法有效对数据进行排序,此时分 位数查询显得尤为重要,例如,实时监控各个地方的温度走势,查询某一个传感器节点在最 近一段时间之内的最高温度(1-分位数),中间温度(〇. 5-分位数),甚至是全部比率的温 度分布情况。此外分位数查询还应用在股票市场趋势分析、web聚集查询、日志挖掘、分布 式存储数据管理等领域。
[0004] 由于流数据高速到达、无法获得并存储全部的完整数据,目前业界更多采用近似 分位数查询方法,通过部分的采样数据,获得近似的分位数查询,以达到流数据环境下的实 时分位数计算的目标。
[0005] 目前近似分位数计算的研究主要集中在相关算法的计算效率以及存储效率的优 化上。典型的研究成果概述如下:Manku等提的MRL99算法(G. S. Manku, S. Rajagopalan, and B.G. Lindsay. Random sampling techniques for space efficient online computation of order statistics of large datasets. In ACM SIGM0D,1999.)是一种基于一次 扫描的查询算法。该算法的空间复杂度为〇 (il嗯2(εΛ〇),:返回确定的一致性近似 e 结果εΝ)。这个算法不足之处是事先知道数据流中确切的数据项数目N。 Greenwald 与 Khanna 提出另一种分位数查询算法-GK 算法(Μ. Greenwald and S. Khanna. Space-efficient online computation of quantile summaries. In ACM SIGM0D,200L)〇 该算法不仅将上一个算法空间复杂度降低到了 〇(li〇g (wo),同时也不必事先预知数据项 ε 数Ntj在数据流值域已知的情况下,Cormode与Muthukrishnan进一步提出应用count-min 技术(G. Cormode,S. Muthukrishnan. An improved data stream summary: the count-min sketch and its applications. Journal of Algorithms. 2005, vol. 55, no. I. pp. 58-75.) 进行区间管理,空间复杂度为
:,这个算法空间复杂度仅与划分的值 域有关而与数据流中的实际到达的数据项个数无关,降低了空间消耗,但是这一方法无法 有效支持任意值域区间的动态划分。
[0006] Shrivastava 等提出的 q-digit 近似查询方法(N. Shrivastava, C. Buragohain, D. Agrawal, and S. Suri. Medians and beyond:New aggregation techniques for sensor networks. In ACM SenSys, 2004.),在数据项不断到达时,可以动态调整概要数据负责的数 值区间,通过一定的遍历规则,支持流数据分位数查询。q-digit所构建的概要数据可以近 似地捕获数据分布特征,而不必对所有达到的具体数据进行存储和排序。概要数据构建的 核心思想是根据数据的分布,对概要数据中的样本数值进行自动分组,并将其放到可变大 小的具有相似权重的桶中。q-digit可以进一步支持一些复杂的操作,如查询中点、位数查 询、反转分位数查询、范围查询频繁项查询、及协调控制查询等。
[0007] 另外,q-digit算法具有误差可控的特征。如果数据项关键字取值的整数范围 是[1,0],q-digit概要数据中样本数据大小为m,则进行分位数查询的结果误差小于 0 (log ( σ )/m)。q-digit是目前在流数据中广泛采用的分位数据查询方法。

【发明内容】

[0008] 目前关于分位数查询的算法和相关应用主要是在集中存储环境下展开,重点研究 如何提高算法的近似计算精度与算法的效率。但是分布式环境下,数据分布在不同的存储 设备和加载设备上,需要构建彼此独立的数据分区模块,随着数据的不断写入,每个分区内 对应的概要数据也面临着的分离和合并等操作。
[0009] 本发明针对分布式环境下,支持分位数查询的概要数据,提出高精度的概要数据 分离/分裂方法,将一个分区的概要数据结构,选择数据量均等的中间点(Φ =0.5)进行 分离,分裂成两个数据量近似均等的概要数据结构。每个概要数据结构在分裂以后独立支 持后续的数据查询与处理。
[0010] 具体来说,本发明采用的技术方案如下:
[0011] -种面向分位数查询的概要数据分裂方法,其步骤包括:
[0012] 1)对写入的数据项进行采样,构建q-digit概要数据;
[0013] 2)按照q-digit后序遍历的分位数查询规则,查询q-digit概要数据中数据项的 中间点;
[0014] 3)以中间点为基础逆序遍历q-digit概要数据,建立分割路径,根据分割路径把 q-digit概要数据分裂成两个数据量近似均等的概要数据结构。
[0015] 进一步地,步骤1)所述q-digit概要数据的数据组织结构可以采用树形结构、数 组、链表等。
[0016] 优选地,所述q-digit概要数据的数据组织结构为树形结构,对其进行分裂的具 体步骤包括:
[0017] a)根据分裂点的要求,按照q-digit后序遍历的分位数查询规则找到中间点,作 为分裂点;
[0018] b)以分裂点为起点,沿着树形结构逆序到父节点,直到根节点为止,从而得到分割 路径;以该分割路径为基础,将q-digit概要数据的节点分为左右两颗子树,该分割路径上 的节点在左子树和右子树中分别保存;
[0019] c)在左右两棵子树上,分别修改内节点所负责的数据空间的值域的范围,当中间 节点负责范围相同时,合并中间节点。
[0020] -种面向分位数查询的概要数据动态维护方法,在负载出现不均衡时,或者需要 增加新处理设备时,采用上述方法对概要数据进行分裂操作,将一部分数据分摊到其他处 理节点上,分裂以后的概要数据独立的支持分裂以后的数据区间内的数据查询。
[0021] 本发明技术关键点主要是下面三点:
[0022] 1.结合分位数查询规则和误差分析方法,提出一种逆序遍历q-digit的方法。 Q-digit查询过程中,采用至底而上的遍历方法,以此获得任意点的分位数查询结果。根 据这一查询规则,本发明提出一种从任意分位点,采用tree型结构逆序遍历方法,上述方 法可以有效建立任意分位点的分割路径,分割路径可以分成两个一定比例的两个概要数据 集;
[0023] 2.利用方法1中提出的分割路径,提出q-digit的分裂方法。方法首先根据Φ = 〇. 5的中间点建立分割路径,采用后序遍历的方法获得左右两个二叉子树,并修改各个二叉 树中间内节点对应的数据的区间范围,进而完成新数据区间内q-digit概要数据的重新构 建;
[0024] 3.对方法(1) (2)下分离后的概要数据进行误差估算和分析,经过理论分析,分裂 以后的概要数据可以完全独立的支持分裂以后的数据区间内的数据查询,并保持最大误差 不发生改变。
[0025] 与现有技术相比,本发明的有益效果如下:
[0026] 1.本发明提出的分裂方法是根据q-digit查询规则进行,保证了分裂结果不改变 q-digit原有的查询方法、误差估算方法以及与其相关的各种应用,使得本发明方法具备很 好的应用前景与理论基础;
[0027] 2.本发明仅仅利用到了 q-digit原有的概要数据结构,实现了概要数据的分裂功 能,保证了分裂过程快速执行。分裂以后每个结构仍然是独立的q-digit结构,可以正常接 收并处理新到达的数据源,因此本方法可以有效支持分布式环境下任意数据分区的动态分 裂与合并等处理。
[0028] 3.本发明可用于分布式环境下q-digit概要数据的动态维护和管理,在任何时刻 都可以按照本发明的方法可以获得对应的结构。比如负载出现不均衡时,增加新处理设备 时,此时都可以采用本发明的方法分摊一部分数据到其他处理节点上。上层业务可以按照 本发明提出的方法,根据当时的情况,来触发分裂操作。
【附图说明】
[0029] 图1是实施例中q-digit概要数据结构示意图。
[0030] 图2是实施例中根据分裂路径进行分裂后生成的左子树ql和右子树q2示意图, 其中(a)图为ql子树不例图,(b)图为q2子树不例图。
[0031] 图3是实施例中分裂后左子树ql维护示意图,其中(a)图为分裂后修改ql节点 范围示意图,(b)图为分裂后ql节点合并示意图。
[0032] 图4是实施例中分裂后右子树q2节点维护示意图,其中(a)图为分裂后修改q2 节点范围示意图,(b)图为分裂后q2节点合并示意图,(c)图为分裂后右子树q2节点合并 最终结果示意图。
[0033] 图5是实施例中q-digit在分布式环境下应用示意图。
【具体实施方式】
[0034] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和 附图,对本发明做进一步说明。
[0035] 本发明以q-digit为基础,根据分位数查询规则,可以查询到数据项的中间点,即 Φ =0.5。然后以中间点为基础,按照逆序遍历q-digit概要数据方法,建立分割路径,根 据分割路径把概要数据分
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1