一种大数据分布式存储及并行索引系统的构建方法

文档序号:9288455阅读:681来源:国知局
一种大数据分布式存储及并行索引系统的构建方法
【技术领域】
[0001] 本发明涉及分布式大数据的云计算领域,特别是一种大数据分布式存储及并行索 引系统的构建方法。
【背景技术】
[0002] 当今社会中,信息数据呈爆炸化的增长,而爆炸化的数据增长导致了数据存储困 难、检索复杂和可靠性降低等多重问题,云计算和云存储技术的出现,为海量数据的处理与 存储提供了有效的解决途径。
[0003] 现有技术中,通常的云计算解决方案利用Hadoop(-种分布式系统基础架构) 的HDFS(-种分布式文件系统)虽然能够方便的实现海量数据存储,同时有效防止单点 故障,避免不必要的损失,但是,在HDFS上进行数据检索时,常用的方法是开启全局搜索 MapReduce(大规模数据并行运算),这需要完整过滤一遍HDFS上存储的所有数据;
[0004] 然而在云计算中,尤其是在海量数据情况下,该方案会对系统资源造成巨大的浪 费,耗费大量的时间,其工作效率也因此大大降低,这显然不是一个适合投入现实生产环境 的方式,同时也是本发明所要针对解决的重要问题。

【发明内容】

[0005] 本发明所要解决的技术问题是,克服现有技术的缺点,提供一种大数据分布式存 储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中 海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。
[0006] 为了解决以上技术问题,本发明提供一种大数据分布式存储及并行索引系统的构 建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+ 树结构。
[0007] 本发明进一步限定的技术方案是:
[0008] 进一步的,前述的大数据分布式存储及并行索引系统的构建方法,将数据分布式 入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,具体方法 为:
[0009] 对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索 引分别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节 点上,查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引 的内容,检索出相关源文件记录后再过滤汇总,形成完整的结果;
[0010] 多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;
[0011] 对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来 说,其查找的时间复杂度为0(l〇gm+(n+l)/2);因此对于值匹配和范围查找来说,其速度大 大的加快,此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺 序查找。
[0012] 前述的大数据分布式存储及并行索引系统的构建方法,每一条新的记录只需要插 入到B+树结构中;
[0013] 当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限 值,每插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时, 需要将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地 址;
[0014] 在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行 节点分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根;
[0015] 当新的记录积累到若干条(可根据需要任意设定)或经过一定时间(可根据需要 任意设定)时,对于存储在MemCache(分布式缓存服务器)中的字段索引,能够将这些数据 记录对应的索引记录一次性批量写入;当新的记录积累到若干条(可根据需要人已设定) 或经过一定时间(可根据需要任意设定)时,能够将这些数据记录对应的索引记录一次性 批量写入HDFS (固态磁盘)上的索引文件;
[0016] 对重要字段建立索引,存储在HDFS(固态磁盘)上。将最近常用的字段索引加载 到MemCache (高性能的分布式的内存对象缓存系统)中,同时删除最不常用的字段索引以 节省空间;对于每次查询,系统统计每个字段索引被调用的次数,对于被调用次数最多的那 些字段索引就被加载到MemCache中,而在MemCache中被调用次数最少的某些字段将被删 除。
[0017] 前述的大数据分布式存储及并行索引系统的构建方法,当新的记录到来时,将新 的数据记录对应的一条索引记录插入到所有的字段索引中。
【附图说明】
[0018] 图1为本发明所设计的数据立方存储索引结构的原理图;
[0019] 图2为本发明中单一关键字字段基于B+树的索引结构示意图。
【具体实施方式】
[0020] 本实施例提供的一种大数据分布式存储及并行索引系统的构建方法,如图1所 示,数据立方存储索引结构由全局数据表1、索引面2组成,全局数据表1中,x轴方向表示 不同的关键字字段3,y轴方向表示不同的数据记录4,数据记录与关键字字段组合组成了 不同数据记录及其关键字字段内容的对应关系,不同关键字字段构成不同的索引面,每一 张索引面分别某一字段基于B+树的索引表。
[0021] 如图2所示,索引表按如下方式建立索引建立时对数据中重要字段建立索引,以 B+树的结构生成,每一条新的记录只需要插入到B+树中,B+树的插入仅在叶结点上进行; 每插入一个(关键码-指针)索引项后都要判断结点中的子树棵数是否超出范围;当插入 后结点中的子树棵数大于m时,需要将叶结点分裂为两个结点,它们的双亲结点中应同时 包含这两个结点的最大关键码和结点地址,在非叶结点中关键码的插入和叶结点的插入类 似,非叶结点中的子树棵数的上限为m,超出这个范围也要进行结点分裂;在做根结点分裂 时,因为没有双亲结点,就必须创建新的双亲结点,作为树的新根,这样树的高度就增加一 层了。
[0022] 当有新的记录到来时,我们要将新的数据记录对应的一条索引记录插入到所有的 字段索引中,这时要采取一定的写入策略:
[0023] 当新的记录积累到nl条或经过一定时间tl时,对于存储在MemCache中的字段索 弓丨,能够将这些数据记录对应的索引记录一次性批量写入;当新的记录积累到n2条或经过 一定时间t2时,能够将这些数据记录对应的索引记录一次性批量写入HDFS(固态磁盘)上 的索引文件。
[0024] 对B+树的查找类似于二分查找,对于m阶,叶子节点中记录个数为n的B+树来 说,其查找的时间复杂度为〇 (l〇gm+(n+1)/2);因此对于值匹配和范围查找来说,有很快的 速度;此外,由于对值按照大小顺序进行了指针链接,因此m阶B+树还能够对值进行顺序查 找。
[0025] 将最近常用的字段索引加载到MemCache(高性能的分布式的内存对象缓存系统) 中,同时删除最不常用的字段索引以节省空间。对于每次查询,系统统计每个字段索引被调 用的次数,对于被调用次数最多的那些字段索引就被加载到MemCache中,而在MemCache中 被调用次数最少的某些字段将被删除。
[0026] 我们选取了下面几组实验数据对本实施例的优势进行展示:
[0027] 广州移动测试:
[0028] 【1】云创存储测试成果:
[0029] 云创存储采用的自主研发的Datacube平台,以下为系统查询测试:
[0030]
[0031
[0032]【2】华为测试成果:
[0033] 华为采用的是Greenplum的平台,以下为平台查询测试:
[0034]

[0035] 【3】中兴测试成果:
[0036] 中兴采用的是hbase的平台,以下为平台查询测试:
[0037]
[0038] 【4】中创测试成果:
[0039] 中创采用的是hbase的平台,以下为平台查询测试:
[0040]
[0041] 数据入库性能:
[0042]
[0043] 以上实施例仅为说明本发明的技术思想,具体实现该技术方案的方法和途径很 多,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还能 够做出若干改进和润饰,这些改进和润饰也应该视为本发明的保护范围;本实施例中未明 确的各组成内容和功能均可用现有技术加以实现。
【主权项】
1. 一种大数据分布式存储及并行索引系统的构建方法,其特征在于,数据在建立及存 储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构。2. 根据权利要求1所述的大数据分布式存储及并行索引系统的构建方法,其特征在 于,将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建 立索引,具体方法为: 对数据设定1个或多个关键字字段,针对各个关键字字段分别建立索引,每张索引分 别生成一张独立的B+树结构,各个关键字字段的索引被分布式存储在不同的数据节点上, 查询索引的过程是一个同步的查询过程,每一台数据节点的机器都去查找各自索引的内 容,检索出相关源文件记录后再过滤汇总,形成完整的结果; 多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构。3. 根据权利要求2所述的大数据分布式存储及并行索引系统的构建方法,其特征在 于,每一条新的记录只需要插入到B+树结构中; 当B+树结构的插入仅在叶节点上进行,为各个数据节点中的子树棵树设定上限值,每 插入一个索引项后都要判断数据节点中的子树棵数是否超出范围,当大于上限值时,需要 将叶节点分裂为两个,它们的双亲节点中同时包含这两个节点的最大关键码和节点地址; 在非叶结点插入时,为非叶节点中的子树棵数设定上限值,当大于上限值时,进行节点 分裂,在做根节点分裂时,创建新的双亲结点,作为树的新根。4. 根据权利要求3所述的大数据分布式存储及并行索引系统的构建方法,其特征在 于,当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中。
【专利摘要】本发明公开了一种大数据分布式存储及并行索引系统的构建方法,数据在建立及存储的同时,还建立有数据立方索引,所述数据立方索引中插入有B+树结构;将数据分布式入库到各个数据节点上,每个数据节点分别对该节点上的数据独立的建立索引,多个B+树结构堆叠在一起,与数据存储形成一个完整的数据立方结构;每一条新的记录只需要插入到B+树结构中;当新的记录到来时,将新的数据记录对应的一条索引记录插入到所有的字段索引中本发明所设计的大数据分布式存储及并行索引系统的构建方法,构建后的系统通过索引查询的方法,能够提高在云计算中海量数据检索的速度,降低资源浪费,节省时间,同时保障云计算系统内数据的安全。
【IPC分类】G06F17/30
【公开号】CN105005621
【申请号】CN201510438030
【发明人】张真
【申请人】张真
【公开日】2015年10月28日
【申请日】2015年7月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1